[
  {
    "path": ".gitmodules",
    "content": "[submodule \"vscode-extension/codegeex-vscode-extension\"]\n\tpath = vscode-extension/codegeex-vscode-extension\n\turl = git@github.com:CodeGeeX/codegeex-vscode-extension.git\n"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [yyyy] [name of copyright owner]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "MODEL_LICENSE",
    "content": "The CodeGeeX License\n\n1. Definitions\n\n“Licensor” means the CodeGeeX Model Team that distributes its Software.\n\n“Software” means the CodeGeeX model parameters made available under this license.\n\n2. License Grant\n\nSubject to the terms and conditions of this License, the Licensor hereby grants to you a non-exclusive, worldwide, non-transferable, non-sublicensable, revocable, royalty-free copyright license to use the Software solely for your non-commercial research purposes.\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n3. Restriction\n\nYou will not use, copy, modify, merge, publish, distribute, reproduce, or create derivative works of the Software, in whole or in part, for any commercial, military, or illegal purposes.\n\nYou will not use the Software for any act that may undermine China's national security and national unity, harm the public interest of society, or infringe upon the rights and interests of human beings.\n\n4. Disclaimer\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n5. Limitation of Liability\n\nEXCEPT TO THE EXTENT PROHIBITED BY APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER BASED IN TORT, NEGLIGENCE, CONTRACT, LIABILITY, OR OTHERWISE WILL ANY LICENSOR BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES, OR ANY OTHER COMMERCIAL LOSSES, EVEN IF THE LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n\n6. Dispute Resolution\n\nThis license shall be governed and construed in accordance with the laws of People’s Republic of China. Any dispute arising from or in connection with this License shall be submitted to Haidian District People's Court in Beijing.\n\nNote that the license is subject to update to a more comprehensive version. For any questions related to the license and copyright, please contact us at report@aminer.cn."
  },
  {
    "path": "README.md",
    "content": "<img src=\"resources/logo/codegeex_logo.png\">\n\n<p align=\"center\">\n    🏠 <a href=\"https://codegeex.cn\" target=\"_blank\">Homepage</a> | 📖 <a href=\"https://models.aminer.cn/codegeex/blog/\" target=\"_blank\">Blog</a> | 🪧 <a href=\"https://models.aminer.cn/codegeex/playground\" target=\"_blank\">DEMO</a> | 🤖 <a href=\"https://codegeex.cn/download/request\" target=\"_blank\">Download Model</a> | 📄 <a href=\"https://arxiv.org/abs/2303.17568\" target=\"_blank\">Paper</a> | 🌐 <a href=\"README_zh.md\" target=\"_blank\">中文</a>\n</p>\n<p align=\"center\">\n    🛠 <a href=\"https://marketplace.visualstudio.com/items?itemName=aminer.codegeex\" target=\"_blank\">VS Code</a>, <a href=\"https://plugins.jetbrains.com/plugin/20587-codegeex\" target=\"_blank\">Jetbrains</a>, <a href=\"https://plugins.jetbrains.com/plugin/20587-codegeex\" target=\"_blank\">Cloud Studio</a> supported | 👋 Join our <a href=\"https://discord.gg/8gjHdkmAN6\" target=\"_blank\">Discord</a>, <a href=\"https://join.slack.com/t/codegeexworkspace/shared_invite/zt-1s118ffrp-mpKKhQD0tKBmzNZVCyEZLw\" target=\"_blank\">Slack</a>, <a href=\"https://t.me/+IipIayJ32B1jOTg1\" target=\"_blank\">Telegram</a>, <a href=\"resources/zh/wechat.md\"target=\"_blank\">WeChat</a>\n</p>\n\n\n\n🌟 The newest [CodeGeeX4](https://github.com/THUDM/CodeGeeX4) has been released. | 最新一代 [CodeGeeX4](https://github.com/THUDM/CodeGeeX4) 模型已经正式开源。\n\n- [CodeGeeX: A Multilingual Code Generation Model](#codegeex-a-multilingual-code-generation-model)\n  - [News](#news)\n  - [Getting Started](#getting-started)\n    - [Installation](#installation)\n    - [Model Weights](#model-weights)\n    - [Inference on GPUs](#inference-on-gpus)\n    - [VS Code and Jetbrains Extension Guidance](#vs-code-and-jetbrains-extension-guidance)\n  - [CodeGeeX: Architecture, Code Corpus, and Implementation](#codegeex-architecture-code-corpus-and-implementation)\n  - [HumanEval-X: A new benchmark for Multilingual Program Synthesis](#humaneval-x-a-new-benchmark-for-multilingual-program-synthesis)\n    - [Multilingual Code Generation](#multilingual-code-generation)\n    - [Crosslingual Code Translation](#crosslingual-code-translation)\n    - [How to use HumanEval-X and contribute to it?](#how-to-use-humaneval-x-and-contribute-to-it)\n  - [License](#license)\n  - [Citation](#citation)\n\n# CodeGeeX: A Multilingual Code Generation Model\n\nWe introduce CodeGeeX, a large-scale multilingual code generation model with 13 billion parameters, pre-trained on a large code corpus of more than 20 programming languages. As of **June 22**, 2022, CodeGeeX has been trained on more than 850 billion tokens on a cluster of 1,536 [Ascend 910 AI Processors](https://e.huawei.com/en/products/servers/ascend). CodeGeeX has several unique features:\n* **Multilingual Code Generation**: CodeGeeX has good performance for generating executable programs in several mainstream programming languages, including Python, C++, Java, JavaScript, Go, etc. [DEMO](https://models.aminer.cn/codegeex)\n* **Crosslingual Code Translation**: CodeGeeX supports the translation of code snippets between different languages. Simply by one click, CodeGeeX can transform a program into any expected language with a high accuracy. [DEMO](https://models.aminer.cn/codegeex/codeTranslator)\n* **Customizable Programming Assistant**: CodeGeeX is available in the VS Code extension marketplace **for free**. It supports code completion, explanation, summarization and more, which empower users with a better coding experience. [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=aminer.codegeex)\n* **Open-Source and Cross-Platform**: All codes and model weights are publicly available for research purposes. CodeGeeX supports both Ascend and NVIDIA platforms. It supports inference in a single Ascend 910, NVIDIA V100 or A100. [Apply Model Weights](https://models.aminer.cn/codegeex/download/request)\n\n**HumanEval-X for Realistic Multilingual Benchmarking.** To help standardize the evaluation of multilingual code generation and translation, we develop and release the **HumanEval-X** Benchmark. HumanEval-X is a new multilingual benchmark that contains **820 human-crafted** coding problems in **5** programming languages (Python, C++, Java, JavaScript, and Go), each of these problems is associated with tests and solutions. [Usage](codegeex/benchmark/README.md)  [🤗 Available in HuggingFace](https://huggingface.co/datasets/THUDM/humaneval-x)\n\n<img src=\"resources/en/hx_boxplot.png\">\n\n<p align=\"center\"><i>CodeGeeX achieves the highest average performance compared with other open-sourced multilingual baselines.</i> </p>\n\n## News\n\n* 🌟 **2023-07-24**: [CodeGeeX2](https://github.com/THUDM/CodeGeeX2) has been released, more powerful, faster, and lightweight. Support 100+ languages and many new features.\n\n* **2023-5-16**: CodeGeeX paper has been accepted by [KDD 2023, Long Beach](https://kdd.org/kdd2023/) and will be represented during the conference.\n\n* **2023-03-30**: CodeGeeX paper is now available at [arxiv](https://arxiv.org/abs/2303.17568).\n\n* **2023-02-14**: CodeGeeX now supports [Cloud Studio](https://cloudstudio.net/), a fantastic web IDE from Tencent. Click on the badge on top of this page to quickly launch an environment to test CodeGeeX.\n\n* **2023-02-13**: Thanks a lot to [OneFlow](https://github.com/Oneflow-Inc/oneflow) team for adding oneflow backend for CodeGeeX's inference (Even faster than FasterTransformer under FP16!). Check more details [here](https://github.com/THUDM/CodeGeeX/pull/65).\n\n* **2023-02**: We are hosting [CodeGeeX \"Coding With AI\" Hackathon](https://dorahacks.io/hackathon/codegeex/), design cool applications based on CodeGeeX and win prizes (RTX 4090, DJI drone, etc)!\n\n* **2022-12-31**: We release the FasterTransformer version of CodeGeeX in [codegeex-fastertransformer](https://github.com/CodeGeeX/codegeex-fastertransformer). The INT8 accelerated version reaches an a verage speed of <15ms/token. Happy new year to everyone!\n\n* **2022-12-13**: We release the source code of CodeGeeX VS Code extension in [codegeex-vscode-extension](https://github.com/CodeGeeX/codegeex-vscode-extension). Follow [QuickStart](https://github.com/CodeGeeX/codegeex-vscode-extension/blob/main/doc/quickstart.md) to start development.\n\n* **2022-12-11**: CodeGeeX is now available for Jetbrains IDEs (IntelliJ IDEA, PyCharm, GoLand, CLion, etc), download it [here](https://plugins.jetbrains.com/plugin/20587-codegeex).\n\n* **2022-12-04**: We release source code of quantization (requires less GPU RAM: 27GB -> 15GB) and model parallelism (possible to run on multiple GPUs with <8G RAM).\n \n* **2022-09-30**: We release the cross-platform source code and models weights for both Ascend and NVIDIA platforms.\n\n## Getting Started\n\nCodeGeeX is initially implemented in Mindspore and trained Ascend 910 AI Processors. We provide a torch-compatible version based on [Megatron-LM](https://github.com/NVIDIA/Megatron-LM) to facilitate usage on GPU platforms.\n### Installation\n\nPython 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+ are required. Install ``codegeex`` package via: \n```bash\ngit clone git@github.com:THUDM/CodeGeeX.git\ncd CodeGeeX\npip install -e .\n```\nOr use [CodeGeeX docker](https://hub.docker.com/r/codegeex/codegeex) to quickly set up the environment (with [nvidia-docker](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) installed):\n```bash\ndocker pull codegeex/codegeex:latest\n# To enable GPU support, clarify device ids with --device\ndocker run --gpus '\"device=0,1\"' -it --ipc=host --name=codegeex codegeex/codegeex\n```\n\n### Model Weights\n\nApply and download model weights through this [link](https://models.aminer.cn/codegeex/download/request). You'll receive by mail ```urls.txt``` that contains temporary download links. We recommend you to use [aria2](https://aria2.github.io/) to download it via the following command (Please make sure you have enough disk space to download the checkpoint (~26GB)):\n```bash\naria2c -x 16 -s 16 -j 4 --continue=true -i urls.txt \n```\nRun the following command to get the full model weights:\n```bash\ncat codegeex_13b.tar.gz.* > codegeex_13b.tar.gz\ntar xvf codegeex_13b.tar.gz\n```\n\n### Inference on GPUs\n\nHave a try on generating the first program with CodeGeeX. First, specify the path of the model weights in ``configs/codegeex_13b.sh``. Second, write the prompt (natural language description or code snippet) into a file, e.g., ``tests/test_prompt.txt``, then run the following script:\n```bash\n# On a single GPU (with more than 27GB RAM)\nbash ./scripts/test_inference.sh <GPU_ID> ./tests/test_prompt.txt\n\n# With quantization (with more than 15GB RAM)\nbash ./scripts/test_inference_quantized.sh <GPU_ID> ./tests/test_prompt.txt\n\n# On multiple GPUs (with more than 6GB RAM, need to first convert ckpt to MP_SIZE partitions)\nbash ./scripts/convert_ckpt_parallel.sh <LOAD_CKPT_PATH> <SAVE_CKPT_PATH> <MP_SIZE>\nbash ./scripts/test_inference_parallel.sh <MP_SIZE> ./tests/test_prompt.txt\n```\n\n### VS Code and Jetbrains Extension Guidance\n\nBased on CodeGeeX, we also develop free extentions for VS Code and Jetbrains IDEs, and more in the future. \n\nFor VS Code, search \"codegeex\" in Marketplace or install it [here](https://marketplace.visualstudio.com/items?itemName=aminer.codegeex). Detailed instructions can be found in \n[VS Code Extension Guidance](vscode-extension/README.md). For developers, we have also released the source code in [codegeex-vscode-extension](https://github.com/CodeGeeX/codegeex-vscode-extension), please follow [QuickStart](https://github.com/CodeGeeX/codegeex-vscode-extension/blob/main/doc/quickstart.md) to start development.\n\nFor Jetbrains IDEs, search \"codegeex\" in Plugins or install it [here](https://plugins.jetbrains.com/plugin/20587-codegeex). \nMake sure your IDE version is 2021.1 or later. CodeGeeX now supports IntelliJ IDEA, PyCharm, GoLand, CLion, Android Studio, AppCode, Aqua, DataSpell, DataGrip, Rider, RubyMine, and WebStorm. \n\n## CodeGeeX: Architecture, Code Corpus, and Implementation\n\n**Architecture**: CodeGeeX is a large-scale pre-trained programming language model based on transformers. It is a left-to-right autoregressive decoder, which takes code and natural language as input and predicts the probability of the next token. CodeGeeX contains 40 transformer layers with a hidden size of 5,120 for self-attention blocks and 20,480 for feed-forward layers, making its size reach 13 billion parameters. It supports a maximum sequence length of 2,048.\n\n<img src=\"resources/en/codegeex_training.png\">\n<p align=\"center\"><i><b>Left:</b> the proportion of programming languages in CodeGeeX's training data. \n  <b>Right:</b> the plot of training loss against the training steps of CodeGeeX.</i></p>\n\n**Code Corpus**: Our training data contains two parts. The first part is from open-sourced code datasets, [The Pile](https://pile.eleuther.ai/) and [CodeParrot](https://github.com/huggingface/transformers/tree/main/examples/research_projects/codeparrot). The Pile contains a subset of code corpus that collects public repositories with more than 100 stars from GitHub, from which we select codes in 23 popular programming languages. The second part is supplementary data directly scrapped from the public GitHub repositories that do not appear in previous datasets, including Python, Java and C++. To obtain data of potentially higher quality, repositories with at least one star and its size smaller than 10MB are chosen. A file is filtered out if it 1) has more than 100 characters per line on average, 2) is automatically generated, 3) has a ratio of alphabet less than 40%, or 4) is bigger than 100KB or smaller than 1KB. To help the model distinguish different languages, we add a language-specific prefix at the beginning of each segment in the form of ``[Comment sign] language: [LANG]``, e.g., ``# language: Python``. For tokenization, we use the same tokenizer as GPT-2 and process whitespaces as extra tokens, resulting in a vocabulary of 50,400 tokens. In total, the code corpus has 23 programming languages with 158.7B tokens.\n\n**Training**: We implement CodeGeeX in [Mindspore 1.7](https://www.mindspore.cn/) and train it on 1,536 Ascend 910 AI Processor (32GB). The model weights are under FP16 format, except that we use FP32 for layer-norm and softmax for higher precision and stability. The entire model consumes about 27GB of memory. To increase the training efficiency, we adopt an 8-way model parallel training together with 192-way data parallel training, with ZeRO-2 optimizer enabled. The micro-batch size is 16 and the global batch size reaches 3,072. Moreover, we adopt techniques to further boost the training efficiency including the element-wise operator fusion, fast gelu activation, matrix multiplication dimension optimization, etc. The entire training process takes nearly two months, spanning from April 18 to June 22, 2022, during which 850B tokens were passed for training, i.e., 5+ epochs.\n\n## HumanEval-X: A new benchmark for Multilingual Program Synthesis\nTo better evaluate the multilingual ability of code generation models, we propose a new benchmark HumanEval-X. While previous works evaluate multilingual program synthesis under semantic similarity (e.g., [CodeBLEU](https://arxiv.org/abs/2009.10297)) which is often misleading, HumanEval-X evaluates the functional correctness of the generated programs. HumanEval-X consists of 820 high-quality human-crafted data samples (each with test cases) in Python, C++, Java, JavaScript, and Go, and can be used for various tasks.\n\n<img src=\"resources/en/hx_tasks.png\">\n\n<p align=\"center\"><i>An illustration of tasks supported by <b>HumanEval-X</b>. Declarations, docstrings, and solutions are marked with red, green, and blue respectively. <b>Code generation</b> uses declaration and docstring as input, to generate solution. <b>Code translation</b> uses declaration in both languages and translate the solution in source language to the one in target language.</i></p>\n\nIn HumanEval-X, every sample in each language contains declaration, docstring, and solution, which can be combined in various ways to support different downstream tasks including generation, translation, summarization, etc. We currently focus on two tasks: **code generation** and **code translation**. For code generation, the model uses declaration and docstring as input to generate the solution. For code translation, the model uses declarations in both languages and the solution in the source language as input, to generate solutions in the target language. We remove the description during code translation to prevent the model from directly solving the problem. For both tasks, we use the unbiased pass@k metric proposed in [Codex](https://arxiv.org/abs/2107.03374): $\\text{pass}@k:= \\mathbb{E}[1-\\frac{\\tbinom{n-c}{k}}{\\tbinom{n}{k}}]$, with $n=200$ and $k\\in(1,10,100)$.\n\n### Multilingual Code Generation\n\n<img src=\"resources/en/hx_generattion_radar_horizon.png\">\n<p align=\"center\"><i><b>Left</b>: the detailed pass@k (k=1,10,100) performance on code generation task for five languages in HumanEval-X. <b>Right</b>: the average performance of all languages of each model. CodeGeeX achieves the highest average performance compared with InCoder-6.7B, CodeGen-Multi-6B and CodeGen-Multi-16B.</i></p>\n\n\nWe compare CodeGeeX with two other open-sourced code generation models, [InCoder](https://github.com/dpfried/incoder) (from Meta) and [CodeGen](https://github.com/salesforce/CodeGen) (from Salesforce). Specifically, InCoder-6.7B, CodeGen-Multi-6B and CodeGen-Multi-16B are considered. CodeGeeX significantly outperforms models with smaller scales (by 7.5%~16.3%) and is competitive with CodeGen-Multi-16B with a larger scale (average performance 54.76% vs. 54.39%). CodeGeeX achieves the best average performance across languages.\n\n### Crosslingual Code Translation\n\n<img src=\"resources/en/hx_translation.png\">\n\n<p align=\"center\"><i>Results on HumanEval-X <b>code translation</b> task. Best language-wise performance are <b>bolded</b>.</i></p>\n\nWe also evaluate the performance of translation across different programming languages. We test the zero-shot performance of CodeGeeX, as well as the fine-tuned CodeGeeX-13B-FT (fine-tuned using the training set of code translation tasks in [XLCoST](https://github.com/reddy-lab-code-research/XLCoST); Go is absent in the original set, we thus add a small set to it). The results indicate that models have a preference for languages, e.g., CodeGeeX is good at translating other languages to Python and C++, while CodeGen-Multi-16B is better at translating to JavaScript and Go; these could probably be due to the difference in language distribution in the training corpus. Among 20 translation pairs, we also observe that the performance of A-to-B and B-to-A are always negatively correlated, which might indicate that the current models are still not capable of learning all languages well. \n\n### How to use HumanEval-X and contribute to it?\n\nFor more details on how to use HumanEval-X, please see [usage](codegeex/benchmark/README.md). We highly welcome the community to contribute to HumanEval-X by adding more problems or extending it to other languages, please check out the [standard format](codegeex/benchmark/README.md#how-to-use-humaneval-x) of HumanEval-X and add a pull request. \n\nPlease kindly let us know if you have any comment or suggestion, via [codegeex@aminer.cn](mailto:codegeex@aminer.cn).\n\n<details>\n<summary><b>Examples of Generation</b></summary>\n<img src=\"resources/en/hx_examples.png\">\n</details>\n\n<details>\n<summary><b>Acknowledgement</b></summary>\n<br/>\nThis project is supported by the National Science Foundation for Distinguished Young Scholars (No. 61825602). \n\n### Lead Contributors\n\nQinkai Zheng ([Tsinghua KEG](http://keg.cs.tsinghua.edu.cn/glm-130b/)), Xiao Xia (Tsinghua KEG), Xu Zou (Tsinghua KEG)\n\n### Contributors\n\nTsinghua KEG---The Knowledge Engineering Group at Tsinghua: Aohan Zeng, Wendi Zheng, Lilong Xue\n\nZhilin Yang's Group at Tsinghua IIIS: Yifeng Liu, Yanru Chen,  Yichen Xu (BUPT, work was done when visiting Tsinghua)\n\nPeng Cheng Laboratory: Qingyu Chen, Zhongqi Li, Gaojun Fan\n\nZhipu\\.AI: Yufei Xue, Shan Wang, Jiecai Shan, Haohan Jiang, Lu Liu, Xuan Xue, Peng Zhang\n\nAscend and Mindspore Team: Yifan Yao, Teng Su, Qihui Deng, Bin Zhou\n\n### Data Annotations\n\nRuijie Cheng (Tsinghua), Peinan Yu (Tsinghua), Jingyao Zhang (Zhipu\\.AI), Bowen Huang (Zhipu\\.AI), Shaoyu Wang (Zhipu\\.AI) \n    \n### Advisors\n\n[Zhilin Yang](https://kimiyoung.github.io/) (Tsinghua IIIS), Yuxiao Dong (Tsinghua KEG), Wenguang Chen (Tsinghua PACMAN), Jie Tang (Tsinghua KEG)\n    \n\n### Computation Sponsors\n\n[Peng Cheng Laboratory](https://www.pcl.ac.cn/index.html)\n\n[Zhipu.AI](https://www.zhipu.ai/)---an AI startup that aims to teach machines to think like humans\n\n### Project Leader \n\n[Jie Tang](http://keg.cs.tsinghua.edu.cn/jietang/) (Tsinghua KEG & BAAI)\n</details>\n\n## License\n\nOur code is licensed under the [Apache-2.0 license](LICENSE).\nOur model is licensed under the [license](MODEL_LICENSE).\n\n## Citation\n\nIf you find our work useful, please cite:\n\n```\n@inproceedings{zheng2023codegeex,\n  title={CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Benchmarking on HumanEval-X},\n  author={Qinkai Zheng and Xiao Xia and Xu Zou and Yuxiao Dong and Shan Wang and Yufei Xue and Zihan Wang and Lei Shen and Andi Wang and Yang Li and Teng Su and Zhilin Yang and Jie Tang},\n  booktitle={Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining},\n  pages={5673--5684},\n  year={2023}\n}\n```\n"
  },
  {
    "path": "README_zh.md",
    "content": "<img src=\"resources/logo/codegeex_logo.png\">\n\n<p align=\"center\">\n    🏠 <a href=\"https://models.aminer.cn/codegeex/zh-CN\" target=\"_blank\">主页</a> | 📖 <a href=\"https://models.aminer.cn/codegeex/blog/index_zh.html\" target=\"_blank\">博客</a> | 🪧 <a href=\"https://models.aminer.cn/codegeex/zh-CN/playground\" target=\"_blank\">示例</a> | 🤖 <a href=\"https://models.aminer.cn/codegeex/download/request\" target=\"_blank\">模型下载</a> | 📄 <a href=\"https://arxiv.org/abs/2303.17568\" target=\"_blank\">论文</a> | 🌐 <a href=\"https://github.com/THUDM/CodeGeeX/blob/main/README.md\" target=\"_blank\">English</a>\n</p>\n<p align=\"center\">\n    🛠 <a href=\"https://marketplace.visualstudio.com/items?itemName=aminer.codegeex\" target=\"_blank\">VS Code</a>, <a href=\"https://plugins.jetbrains.com/plugin/20587-codegeex\" target=\"_blank\">Jetbrains</a>, <a href=\"https://plugins.jetbrains.com/plugin/20587-codegeex\" target=\"_blank\">Cloud Studio</a> 插件 | 👋 欢迎加入 <a href=\"resources/zh/wechat.md\"target=\"_blank\">微信开发者交流群</a> \n</p>\n\n🌟 [CodeGeeX2](https://github.com/THUDM/CodeGeeX2) 已推出，更强，更快，更轻量。\n\n- [CodeGeeX: 多语言代码生成模型](#codegeex-多语言代码生成模型)\n  - [新闻](#新闻)\n  - [使用指南](#使用指南)\n    - [安装](#安装)\n    - [模型权重](#模型权重)\n    - [用GPU进行推理](#用gpu进行推理)\n    - [插件使用指南](#插件使用指南)\n  - [CodeGeeX: 多语言代码生成模型](#codegeex-多语言代码生成模型-1)\n    - [国产平台实现与训练](#国产平台实现与训练)\n  - [HumanEval-X: 多语言代码生成基准](#humaneval-x-多语言代码生成基准)\n    - [多语言代码生成](#多语言代码生成)\n    - [跨语言代码翻译](#跨语言代码翻译)\n  - [许可证](#许可证)\n  - [引用](#引用)\n# CodeGeeX: 多语言代码生成模型\n\nCodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现，在鹏城实验室“鹏城云脑II”中的192个节点（共1536个国产[昇腾910 AI处理器](https://e.huawei.com/cn/products/servers/ascend)）上训练而成。截至2022年6月22日，CodeGeeX历时两个月在20多种编程语言的代码语料库（>8500亿Token）上预训练得到。CodeGeeX有以下特点：\n* **高精度代码生成**：支持生成Python、C++、Java、JavaScript和Go等多种主流编程语言的代码，在HumanEval-X代码生成任务上取得47%~60%求解率，较其他开源基线模型有更佳的平均性能。[代码生成示例](https://models.aminer.cn/codegeex/zh-CN)\n* **跨语言代码翻译**：支持代码片段在不同编程语言间进行自动翻译转换，翻译结果正确率高，在HumanEval-X代码翻译任务上超越了其它基线模型。[代码翻译示例](https://models.aminer.cn/codegeex/zh-CN/codeTranslator)\n* **自动编程插件**：CodeGeeX插件现已上架VSCode插件市场（完全免费），用户可以通过其强大的少样本生成能力，自定义代码生成风格和能力，更好辅助代码编写。[插件下载](https://marketplace.visualstudio.com/items?itemName=aminer.codegeex)\n* **模型跨平台开源**: 所有代码和模型权重开源开放，用作研究用途。CodeGeeX同时支持昇腾和英伟达平台，可在单张昇腾910或英伟达V100/A100上实现推理。[申请模型权重](https://models.aminer.cn/codegeex/download/request)\n\n**全新多编程语言评测基准HumanEval-X**：HumanEval-X是第一个支持功能正确性评测的多语言、多任务的基准，包含820个人工编写的高质量代码生成题目、测试用例与参考答案，覆盖5种编程语言（Python、C++、Java、JavaScript、Go），支持代码生成与代码翻译能力的评测。[如何使用](codegeex/benchmark/README_zh.md)\n\n<img src=\"resources/zh/hx_boxplot_zh.png\">\n\n<p align=\"center\"><i>在HumanEval-X代码生成任务上，与其它开源基线模型相比，CodeGeeX取得了最佳的平均性能。</i> </p>\n\n## 新闻\n\n* 🌟 **2023-07-24**: [CodeGeeX2](https://github.com/THUDM/CodeGeeX2) 已推出，更强，更快，更轻量。支持超过100种语言，并具有多种新特性。\n\n* **2023-5-16**: CodeGeeX 论文已被 [KDD 2023, Long Beach](https://kdd.org/kdd2023/) 接收，并将在会上做相关报告。\n\n* **2023-03-30**: CodeGeeX 论文已发表在[arxiv](https://arxiv.org/abs/2303.17568)。\n\n* **2023-02-14**: CodeGeeX 现已支持 [Cloud Studio](https://cloudstudio.net/), 一款腾讯推出、十分好用的在线编辑器。单击此页面顶部的徽章可快速启动环境测试 CodeGeeX。\n\n* **2023-02-13**: 感谢 [OneFlow](https://github.com/Oneflow-Inc/oneflow) 加入了oneflow版推理支持，在FP16下比FasterTransformer还要快！更多优化细节请点击[这里](https://github.com/THUDM/CodeGeeX/pull/65).\n\n* **2023-02**: [CodeGeeX \"Coding With AI\"黑客松](https://dorahacks.io/hackathon/codegeex/)正在进行中，为CodeGeeX设计应用并赢取奖品（RTX 4090、DJI无人机等）！\n\n* **2022-12-31**: 我们在 [codegeex-fastertransformer](https://github.com/CodeGeeX/codegeex-fastertransformer) 中发布了 CodeGeeX 的 FasterTransformer 版本。INT8加速版本达到 <15ms/token 的平均速度。祝大家新年快乐！\n\n* **2022-12-13**: 我们开源了VS Code插件源码：[codegeex-vscode-extension](https://github.com/CodeGeeX/codegeex-vscode-extension)，参考 [QuickStart](https://github.com/CodeGeeX/codegeex-vscode-extension/blob/main/doc/quickstart.md) 开始开发吧！\n\n* **2022-12-11**: CodeGeeX for Jetbrains IDEs已上线，支持IntelliJ IDEA, PyCharm, GoLand, CLion等，[点击下载](https://plugins.jetbrains.com/plugin/20587-codegeex)。\n  \n* **2022-12-04**: 我们开源了量化代码（需要更少的显存：27GB -> 15GB）以及模型并行代码（可以运行在多个显存至少8GB的GPUs上）。\n\n* **2022-09-30**: 我们开源了跨平台代码和模型权重，同时支持昇腾和英伟达平台。\n## 使用指南\n\nCodeGeeX最初使用Mindspore框架实现，并在昇腾910AI芯片上进行训练。为适配更多平台，我们将其转换到[Megatron-LM](https://github.com/NVIDIA/Megatron-LM)框架，支持Pytorch+GPU环境。\n### 安装\n\n需要Python 3.7+ / CUDA 11+ / PyTorch 1.10+ / DeepSpeed 0.6+，通过以下命令安装 ``codegeex``: \n```bash\ngit clone git@github.com:THUDM/CodeGeeX.git\ncd CodeGeeX\npip install -e .\n```\n\n### 模型权重\n\n通过[该链接](https://models.aminer.cn/codegeex/download/request)申请权重，您将收到一个包含临时下载链接文件```urls.txt```的邮件。推荐使用[aria2](https://aria2.github.io/)通过以下命令快速下载（请保证有足够的硬盘空间存放权重（～26GB））：\n```bash\naria2c -x 16 -s 16 -j 4 --continue=true -i urls.txt \n``` \n使用以下命令合并得到完整的权重：\n```bash\ncat codegeex_13b.tar.gz.* > codegeex_13b.tar.gz\ntar xvf codegeex_13b.tar.gz\n```\n\n### 用GPU进行推理\n\n尝试使用CodeGeeX模型生成第一个程序吧！首先，在配置文件``configs/codegeex_13b.sh``中写明存放权重的路径。其次，将提示（可以是任意描述或代码片段）写入文件``tests/test_prompt.txt``，运行以下脚本即可开始推理（需指定GPU序号）：\n```bash\n# On a single GPU (with more than 27GB RAM)\nbash ./scripts/test_inference.sh <GPU_ID> ./tests/test_prompt.txt\n\n# With quantization (with more than 15GB RAM)\nbash ./scripts/test_inference_quantized.sh <GPU_ID> ./tests/test_prompt.txt\n\n# On multiple GPUs (with more than 6GB RAM, need to first convert ckpt to MP_SIZE partitions)\nbash ./scripts/convert_ckpt_parallel.sh <LOAD_CKPT_PATH> <SAVE_CKPT_PATH> <MP_SIZE>\nbash ./scripts/test_inference_parallel.sh <MP_SIZE> ./tests/test_prompt.txt\n```\n\n### 插件使用指南\n\n基于CodeGeeX，我们开发了免费的插件，支持 VS Code 与 Jetbrains IDEs，未来会支持更多平台。\n\nVS Code版本，在应用市场搜索“codegeex”或通过[该链接](https://marketplace.visualstudio.com/items?itemName=aminer.codegeex)安装。详细的使用指南在[CodeGeeX VS Code插件使用指南](vscode-extension/README_zh.md)。我们也开源了VS Code插件源码：[codegeex-vscode-extension](https://github.com/CodeGeeX/codegeex-vscode-extension)，参考[QuickStart](https://github.com/CodeGeeX/codegeex-vscode-extension/blob/main/doc/quickstart_zh.md) 开始开发吧！\n\nJetbrains版本，在Plugins市场搜索“codegeex”或通过[该链接](https://plugins.jetbrains.com/plugin/20587-codegeex)安装。\n请确保IDE版本在2021.1或更高。CodeGeeX目前支持 IntelliJ IDEA, PyCharm, GoLand, CLion, Android Studio, AppCode, Aqua, DataSpell, DataGrip, Rider, RubyMine, WebStorm。 \n\n## CodeGeeX: 多语言代码生成模型\n\n**架构**：CodeGeeX是一个基于transformers的大规模预训练编程语言模型。它是一个从左到右生成的自回归解码器，将代码或自然语言标识符（token）作为输入，预测下一个标识符的概率分布。CodeGeeX含有40个transformer层，每层自注意力块的隐藏层维数为5120，前馈层维数为20480，总参数量为130亿。模型支持的最大序列长度为2048。\n\n<img src=\"resources/en/codegeex_training.png\">\n\n<p align=\"center\"><i><b>左侧：</b>CodeGeeX训练数据中各编程语言占比。\n<b>右侧：</b>CodeGeeX训练损失函数随训练步数下降曲线。</i></p>\n\n**语料**：CodeGeeX的训练语料由两部分组成。第一部分是开源代码数据集，[The Pile](https://pile.eleuther.ai/) 与 [CodeParrot](https://github.com/huggingface/transformers/tree/main/examples/research_projects/codeparrot)。The Pile包含GitHub上拥有超过100颗星的一部分开源仓库，我们从中选取了23种编程语言的代码。第二部分是补充数据，直接从GitHub开源仓库中爬取Python、Java、C++代码；为了获取高质量数据，我们根据以下准则选取代码仓库：1)至少拥有1颗星；2)总大小<10MB；3)不在此前的开源代码数据集中。我们还去掉了符合下列任一条件的文件：1)平均每行长度大于100字符；2)由自动生成得到；3)含有的字母不足字母表内的40%；4)大于100KB或小于1KB。为了让模型区分不同语言，我们在每个样本的开头加上一个前缀，其形式为``[注释符] language: [语言]``，例如：``# language: Python``。我们使用与GPT-2相同的分词器，并将空格处理为特殊标识符，词表大小为50400。整个代码语料含有23种编程语言、总计1587亿个标识符（不含填充符）。\n\n### 国产平台实现与训练\n我们在[Mindspore 1.7](https://www.mindspore.cn/)框架上实现了CodeGeeX模型，并使用鹏城实验室的全国产计算平台上进行训练。具体来说，CodeGeeX使用了其一个计算集群中的1536个昇腾910 AI处理器（32GB）进行了两个月左右的训练（2022年4月18日至6月22日）。除了Layer-norm与Softmax使用FP32格式以获得更高的精度与稳定性，模型参数整体使用FP16格式，最终整个模型需要占用约27GB显存。为了增加训练效率，我们使用8路模型并行和192路数据并行的训练策略，微批大小为16、全局批大小为3072，并采用ZeRO-2优化器降低显存占用。\n\n在开发与训练过程中，我们和华为Mindspore团队合作，对MindSpore框架进行了部分优化，进而大幅度提升训练效率。比如，我们发现矩阵乘法的计算时间占比仅为22.9%，大量时间被用于各类其它算子，因此实现了一系列算子融合，包括单元素算子融合、层归一化算子融合、FastGelu与矩阵乘法融合、批量矩阵乘法与加法融合等；再比如我们还对矩阵乘法算子的维度实现自动搜索调优，使其搜索出效率最高的计算维度组合。这些优化为训练速度带来了显著提升，在同等GPU卡数规模下（128卡），昇腾910对CodeGeeX这一模型的训练效率从约为NVIDIA A100的16.7%提升至43%；在千卡规模下，昇腾910训练效率相比自身优化前提升近300%。使用优化后的软硬件训练时，CodeGeeX单日训练量可达到54.3B个标识符（含填充符），证明了国产深度学习平台与工具的快速迭代能力以及强大竞争力。\n\n## HumanEval-X: 多语言代码生成基准\n为了更好地评测代码生成模型的多语言生成能力，我们构建了一个新基准HumanEval-X。此前，多语言代码生成能力是基于语义相似度（比如[CodeBLEU](https://arxiv.org/abs/2009.10297)）衡量的，具有一定误导性；HumanEval-X则可用于衡量生成代码的功能正确性。HumanEval-X包含820个高质量手写样本，覆盖Python、C++、Java、JavaScript、Go，可用于多种任务。\n\n<img src=\"resources/zh/hx_tasks_zh.png\">\n\n<p align=\"center\"><i><b>HumanEval-X</b>支持的任务示例。<font style='background-color:#F8CECC'>声明</font>、<font style='background-color:#D5E8D4'>描述</font>、<font style='background-color:#DAE8FC'>解答</font>分别用红、绿、蓝色标注。<i>代码生成</i>将声明与描述作为输入，输出解答。<i>代码翻译</i>将两种语言的声明与源语言的解答作为输入，输出目标语言的解答。</i></p>\n\nHumanEval-X中每个语言的样本，包含了声明、描述和解答，它们之间的组合可以支持不同的下游任务，包括生成、翻译、概括等。我们目前关注两个任务：**代码生成**与**代码翻译**。对于代码生成任务，模型将函数声明与文档字符串作为输入，输出函数实现；对于代码翻译任务，模型将两种语言的函数声明与源语言的实现作为输入，输出目标语言上的实现。我们在代码翻译任务中不将文档字符串输入模型，以避免模型直接通过描述生成答案。在两种任务下，我们都采用[Codex](https://arxiv.org/abs/2107.03374)所使用的无偏pass@k指标，判断生成代码的功能正确性: $\\text{pass}@k:= \\mathbb{E}[1-\\frac{\\tbinom{n-c}{k}}{\\tbinom{n}{k}}]$, $n=200$, $k\\in(1,10,100)$.\n\n### 多语言代码生成\n\n<img src=\"resources/zh/hx_generattion_radar_horizon_zh.png\">\n\n<p align=\"center\"><i><b>左侧</b>: HumanEval-X中五种语言具体的pass@k（k=1,10,100）性能。<b>右侧</b>: 模型在所有语言上的平均性能。CodeGeeX的平均表现优于InCoder-6.7B和CodeGen-Multi-6B/16B。</i></p>\n\n\n我们将CodeGeeX与另外两个开源代码生成模型进行比较，分别为Meta的[InCoder](https://github.com/dpfried/incoder)与Salesforce的[CodeGen](https://github.com/salesforce/CodeGen)，选取InCoder-6.7B、CodeGen-Multi-6B 与 CodeGen-Multi-16B。CodeGeeX能获得最佳的平均性能，显著超越了参数量更小的模型(7.5%~16.3%的提升)，与参数量更大的模型CodeGen-Multi-16B表现相当（平均性能 54.76% vs. 54.39%）。\n\n### 跨语言代码翻译\n\n<img src=\"resources/zh/hx_translation_zh.png\">\n\n<p align=\"center\"><i>HumanEval-X上的<b>代码翻译</b>任务结果。<b>加粗</b>结果表示在每种语言pass@k上的最佳效果。</i></p>\n\n我们还评测了模型在多语言间代码翻译上的性能。对于CodeGeeX，我们评测了未经微调的CodeGeeX-13B与经过微调的CodeGeeX-13B-FT（使用[XLCoST](https://github.com/reddy-lab-code-research/XLCoST)中代码翻译任务的训练集与一部分Go语言数据微调）。如上表显示，模型对特定语言存在偏好，比如CodeGeeX擅长将其他语言翻译为Python与C++，而CodeGen-Multi-16B擅长翻译为JavaScript和Go，这可能是由于训练集中的语料占比存在差异。在20个翻译对中，我们还观察到两种语言互相翻译的表现常常是呈负相关的，这可能说明现有的模型还不足以学好所有的语言。\n\n\n\n<details> \n<summary><b>在线生成与翻译DEMO</b></summary>\n<img src=\"resources/en/hx_examples.png\">\n我们为上述两个任务开发了DEMO：<a href=\"https://models.aminer.cn/codegeex/zh-CN/playground\" target=\"_blank\">代码生成</a>和<a href=\"https://models.aminer.cn/codegeex/zh-CN/codeTranslator\" target=\"_blank\">代码翻译</a>，欢迎点击体验！\n</details>\n\n<details>\n<summary><b>致谢</b></summary>\n<br/>\n这一项目由国家自然科学基金杰出青年科学基金项目（No. 61825602）支持。\n​    \n\n#### 学生负责人\n\n郑勤锴（[清华大学知识工程实验室](https://keg.cs.tsinghua.edu.cn/glm-130b/zh/posts/glm-130b/)），夏箫（清华大学知识工程实验室），邹旭（清华大学知识工程实验室）\n    \n#### 技术贡献\n\n清华大学知识工程实验室：曾奥涵，郑问迪，薛理龙\n\n清华大学交叉信息学院：刘益枫，陈彦儒，徐奕辰（北邮大四访问清华期间研究工作）\n\n鹏城实验室：陈庆玉，李忠琦，范高俊\n\n智谱AI：薛宇飞，王山，陕杰才，姜皓瀚，刘璐，薛旋，张鹏\n\n华为昇腾团队：姚逸璠，苏腾，邓启辉，周斌\n\n#### 数据标注\n程锐杰（清华大学），于沛楠（清华大学），张竞尧（智谱AI），黄铂文（智谱AI），王炤宇（智谱AI）\n    \n#### 指导教师\n\n[杨植麟](https://kimiyoung.github.io/)（清华大学交叉信息学院），东昱晓（清华大学知识工程实验室），陈文光（清华大学PACMAN实验室），[唐杰](http://keg.cs.tsinghua.edu.cn/jietang/)（清华大学知识工程实验室）\n    \n\n#### 计算资源支持\n\n[鹏城实验室](https://www.pcl.ac.cn/index.html)\n\n[智谱AI](https://www.zhipu.ai/)\n\n#### 项目总负责\n\n[唐杰](http://keg.cs.tsinghua.edu.cn/jietang/)（清华大学知识工程实验室 & 北京智源人工智能研究院）\n</details>\n\n如果遇到问题或有任何建议，欢迎通过邮件与我们联系[codegeex@aminer.cn](mailto:codegeex@aminer.cn).\n\n## 许可证\n\n代码使用[Apache-2.0许可证](LICENSE)\n模型使用[许可证](MODEL_LICENSE)\n\n## 引用\n\n如果觉得我们的工作有帮助，欢迎引用以下论文：\n\n```\n@inproceedings{zheng2023codegeex,\n  title={CodeGeeX: A Pre-Trained Model for Code Generation with Multilingual Benchmarking on HumanEval-X},\n  author={Qinkai Zheng and Xiao Xia and Xu Zou and Yuxiao Dong and Shan Wang and Yufei Xue and Zihan Wang and Lei Shen and Andi Wang and Yang Li and Teng Su and Zhilin Yang and Jie Tang},\n  booktitle={Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining},\n  pages={5673--5684},\n  year={2023}\n}\n```"
  },
  {
    "path": "api/README_zh.md",
    "content": "![codegeex_logo](../resources/logo/codegeex_logo.png)\n\n# 创建CodeGeeX API\n\n使用[天启 · API开放平台](https://tianqi.aminer.cn/open/)申请CodeGeeX API：\n\n<img src=\"../resources/api/api_step_1.png\">\n\n点击首页中的天启平台体验入口：\n<img src=\"../resources/api/api_step_2.png\">\n点击API应用：\n<img src=\"../resources/api/api_step_3.png\">\n输入任意名称，创建API应用。创建后会得到API Key/Secret，用于调用API：\n<img src=\"../resources/api/api_step_4.png\">\n\n在API信息中，可以查看代码生成/代码翻译的请求地址和使用文档：\n<img src=\"../resources/api/api_step_5.png\">\n\n根据文档中的描述使用API，Python版参考目录``api/codegeex-api-example-python``；JAVA版参考工程：``api/codegeex-api-example-java``\n"
  },
  {
    "path": "api/codegeex-api-example-java/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n\n  <groupId>cn.aminer</groupId>\n  <artifactId>codegeex-api-example-java</artifactId>\n  <version>1.0-SNAPSHOT</version>\n\n  <!--\n  如果没有下面的这段encoding配置，会导致编译的时候输出WARNING信息：\n  [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!\n  -->\n  <properties>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\n  </properties>\n\n  <build>\n    <plugins>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-compiler-plugin</artifactId>\n        <version>3.8.1</version>\n        <configuration>\n          <!-- 一般而言，target与source是保持一致的，但是，有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk，源代码中不能使用\n          低版本jdk中不支持的语法)，会存在target不同于source的情况 -->\n          <source>1.8</source><!-- 源代码使用的JDK版本 -->\n          <target>1.8</target><!-- 需要生成的目标class文件的编译版本 -->\n          <encoding>UTF-8</encoding><!-- 字符集编码 -->\n        </configuration>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-assembly-plugin</artifactId>\n        <version>3.3.0</version>\n        <configuration>\n          <descriptorRefs>\n            <descriptorRef>jar-with-dependencies</descriptorRef>\n          </descriptorRefs>\n        </configuration>\n        <!-- 有下面这段executions，才能打出包含所有dependency的fat jar -->\n        <executions>\n          <execution>\n            <phase>package</phase><!-- 指定在打包节点执行jar包合并操作 -->\n            <goals>\n              <goal>single</goal><!-- 该模块只运行一次 -->\n            </goals>\n          </execution>\n        </executions>\n      </plugin>\n    </plugins>\n  </build>\n\n  <dependencies>\n    <dependency>\n      <groupId>com.fasterxml.jackson.module</groupId>\n      <artifactId>jackson-module-parameter-names</artifactId>\n      <version>2.6.6</version>\n    </dependency>\n    <dependency>\n      <groupId>com.fasterxml.jackson.datatype</groupId>\n      <artifactId>jackson-datatype-jdk8</artifactId>\n      <version>2.6.6</version>\n    </dependency>\n    <dependency>\n      <groupId>com.fasterxml.jackson.datatype</groupId>\n      <artifactId>jackson-datatype-jsr310</artifactId>\n      <version>2.6.6</version>\n    </dependency>\n    <dependency>\n      <groupId>com.squareup.okhttp3</groupId>\n      <artifactId>okhttp</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>org.slf4j</groupId>\n      <artifactId>slf4j-log4j12</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>log4j</groupId>\n      <artifactId>log4j</artifactId>\n    </dependency>\n    <dependency>\n      <groupId>org.projectlombok</groupId>\n      <artifactId>lombok</artifactId>\n      <scope>provided</scope>\n    </dependency>\n  </dependencies>\n\n  <dependencyManagement>\n    <dependencies>\n      <dependency>\n        <groupId>com.fasterxml.jackson.module</groupId>\n        <artifactId>jackson-module-parameter-names</artifactId>\n      </dependency>\n      <dependency>\n        <groupId>com.fasterxml.jackson.datatype</groupId>\n        <artifactId>jackson-datatype-jdk8</artifactId>\n      </dependency>\n      <dependency>\n        <groupId>com.fasterxml.jackson.datatype</groupId>\n        <artifactId>jackson-datatype-jsr310</artifactId>\n      </dependency>\n      <dependency>\n        <groupId>com.fasterxml.jackson.core</groupId>\n        <artifactId>jackson-databind</artifactId>\n      </dependency>\n      <dependency>\n        <groupId>com.squareup.okhttp3</groupId>\n        <artifactId>okhttp</artifactId>\n        <version>4.10.0</version>\n      </dependency>\n      <dependency>\n        <groupId>log4j</groupId>\n        <artifactId>log4j</artifactId>\n        <version>1.2.17</version>\n      </dependency>\n      <dependency>\n        <groupId>org.slf4j</groupId>\n        <artifactId>slf4j-log4j12</artifactId>\n        <version>1.7.5</version>\n      </dependency>\n      <dependency>\n        <groupId>org.projectlombok</groupId>\n        <artifactId>lombok</artifactId>\n        <version>1.18.20</version>\n        <scope>provided</scope>\n      </dependency>\n    </dependencies>\n  </dependencyManagement>\n\n  <repositories>\n    <repository>\n      <!-- Maven 自带的中央仓库使用的id为central，如果其他的仓库声明也是用该id，就会覆盖中央仓库的配置 -->\n      <id>central</id>\n      <name>ALiYun</name>\n      <url>http://maven.aliyun.com/nexus/content/groups/public</url>\n    </repository>\n  </repositories>\n</project>\n"
  },
  {
    "path": "api/codegeex-api-example-java/src/main/java/cn/aminer/codegeex/example/CodeGenerationExample.java",
    "content": "package cn.aminer.codegeex.example;\n\nimport cn.aminer.codegeex.example.pojo.Payload;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport okhttp3.*;\n\nimport java.io.IOException;\n\n/**\n * 调用 CodeGeeX API 生成代码的例子。\n *\n * @author Darran Zhang @ codelast.com\n * @version 2023-01-20\n */\npublic class CodeGenerationExample {\n  public static final String API_KEY = \"your_api_key\";  // 在\"天启开放平台\"上申请到的API Key\n  public static final String API_SECRET = \"your_api_secret\";  // 在\"天启开放平台\"上申请到的API Secret\n  public static final int NUMBER = 3;  // 生成几个候选\n  public static final String LANGUAGE = \"Java\";  // 编程语言\n  public static final String REQUEST_URL = \"https://tianqi.aminer.cn/api/v2/multilingual_code_generate\";  // 请求地址\n\n  public static void main(String[] args) throws Exception {\n    CodeGenerationExample example = new CodeGenerationExample();\n    String prompt = \"// use OkHttpClient library to write a function to perform http post request\\n\\n\" +\n      \"public class HttpPost {\\n\" +\n      \"    public static void main(String[] args) {\\n\";\n    example.generateCode(prompt);\n  }\n\n  /**\n   * 生成代码。\n   *\n   * @param prompt 待补全的代码\n   */\n  public void generateCode(String prompt) throws Exception {\n    ObjectMapper objectMapper = new ObjectMapper();\n    Payload payload = new Payload().setApiKey(API_KEY).setApiSecret(API_SECRET).setPrompt(prompt).setNumber(NUMBER)\n      .setLanguage(LANGUAGE);\n    String response = performHttpPost(REQUEST_URL, objectMapper.writeValueAsString(payload));\n    System.out.println(response);\n  }\n\n  /**\n   * 发起 HTTP POST 请求。\n   *\n   * @param url     请求的URL\n   * @param payload 请求的JSON数据\n   * @return 请求返回的内容，若出错则返回 null。\n   */\n  public String performHttpPost(String url, String payload) {\n    HttpUrl.Builder builder = null;\n    try {\n      HttpUrl httpUrl = HttpUrl.parse(url);\n      if (httpUrl != null) {\n        builder = httpUrl.newBuilder();\n      }\n    } catch (IllegalArgumentException e) {\n      System.out.println(\"failed to create HttpUrl.Builder from url \" + url + \":\" + e);\n    }\n    if (builder == null) {\n      return null;\n    }\n    OkHttpClient client = new OkHttpClient();\n    RequestBody requestBody = RequestBody.create(payload, MediaType.parse(\"application/json; charset=utf-8\"));\n    Request request = new Request.Builder()\n      .url(builder.build())\n      .post(requestBody)\n      .build();\n\n    try {\n      Response response = client.newCall(request).execute();\n      ResponseBody body = response.body();\n      if (body == null) {\n        System.out.println(\"null response body\");\n        return null;\n      }\n      return body.string();\n    } catch (IOException e) {\n      System.out.println(\"failed to send POST request: \" + e);\n    }\n    return null;\n  }\n}\n"
  },
  {
    "path": "api/codegeex-api-example-java/src/main/java/cn/aminer/codegeex/example/pojo/Payload.java",
    "content": "package cn.aminer.codegeex.example.pojo;\n\nimport com.fasterxml.jackson.annotation.JsonIgnoreProperties;\nimport com.fasterxml.jackson.annotation.JsonProperty;\nimport lombok.Data;\nimport lombok.experimental.Accessors;\n\n/**\n * 发送到 CodeGeex API 的请求中包含的JSON payload对象。\n *\n * @author Darran Zhang @ codelast.com\n * @version 2023-01-20\n */\n@JsonIgnoreProperties(ignoreUnknown = true)\n@Data\n@Accessors(chain = true)\npublic class Payload {\n  @JsonProperty(\"apikey\")\n  String apiKey;  // 在\"天启开放平台\"上申请到的API Key\n\n  @JsonProperty(\"apisecret\")\n  String apiSecret;  // 在\"天启开放平台\"上申请到的API Secret\n\n  String prompt;  // 待补全的代码\n\n  @JsonProperty(\"n\")\n  int number;  // 生成几个候选\n\n  @JsonProperty(\"lang\")\n  String language;  // 编程语言\n}\n"
  },
  {
    "path": "api/codegeex-api-example-python/generation_example.py",
    "content": "# encoding:utf-8\n\nimport json\n\nimport requests\n\n'''\nCode Generation\n'''\nAPI_KEY = \"\"  # Get from Tianqi console. 从控制台获取\nAPI_SECRET = \"\"  # Get from Tianqi console. 从控制台获取\nPROMPT = \"from typing import List\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \" \\\n         \"\\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given \" \\\n         \"threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements(\" \\\n         \"[1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\"\nNUMBER = 3\nLANG = \"Python\"\nrequest_url = \"https://tianqi.aminer.cn/api/v2/\"\napi = 'multilingual_code_generate'\n\n# Request is in json format. 指定请求参数格式为json\nheaders = {'Content-Type': 'application/json'}\nrequest_url = request_url + api\ndata = {\n    \"apikey\": API_KEY,\n    \"apisecret\": API_SECRET,\n    \"prompt\": PROMPT,\n    \"n\": NUMBER,\n    \"lang\": LANG\n}\n\n\ndef main():\n    response = requests.post(request_url, headers=headers, data=json.dumps(data))\n    if response:\n        print(response.json())\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "codegeex/__init__.py",
    "content": "import copy\n\nfrom typing import *\nfrom codegeex.tokenizer import CodeGeeXTokenizer\nfrom codegeex.torch.inference import get_token_stream\n\n\ndef get_model(\n    backend: str = \"megatron\",\n    quantized: bool = False,\n):\n    pass\n\n\ndef generate(\n    model, \n    tokenizer: CodeGeeXTokenizer, \n    prompt: str, \n    out_seq_length: int,\n    seq_length: int = 2048,\n    top_k: int = 0,\n    top_p: float = 1.0,\n    temperature: float = 1.0,\n    micro_batch_size: int = 1,\n    backend: str = \"megatron\",\n    greedy: bool = False,\n    verbose: bool = False,\n):\n    tokens = tokenizer.encode_code(prompt)\n    n_token_prompt = len(tokens)\n\n    if verbose:\n        print(f\"Current prompt:\\n{prompt}\")\n        print(\"N_token_prompt:\", n_token_prompt)\n    \n    generated_codes = []\n    if backend == \"megatron\":\n        token_stream = get_token_stream(\n            model,\n            tokenizer,\n            seq_length,\n            out_seq_length,\n            [copy.deepcopy(tokens) for _ in range(micro_batch_size)],\n            micro_batch_size=micro_batch_size,\n            topk=top_k,\n            topp=top_p,\n            temperature=temperature,\n            greedy=greedy,\n        )\n        is_finished = [False for _ in range(micro_batch_size)]\n        for i, generated in enumerate(token_stream):\n            generated_tokens = generated[0]\n            for j in range(micro_batch_size):\n                if is_finished[j]:\n                    continue\n                \n                if generated_tokens[j].cpu().numpy()[-1] == tokenizer.eos_token_id or len(generated_tokens[j]) >= out_seq_length:\n                    is_finished[j] = True\n                    generated_tokens_ = generated_tokens[j].cpu().numpy().tolist()\n                    generated_code = tokenizer.decode_code(generated_tokens_[n_token_prompt:])\n                    generated_code = \"\".join(generated_code)\n                    generated_codes.append(generated_code)\n                    if verbose:\n                        print(f\"\\nGenerated code {i}:\\n{generated_code}\")\n                    \n                if all(is_finished):\n                    break\n\n    return generated_codes"
  },
  {
    "path": "codegeex/benchmark/README.md",
    "content": "# HumanEval-X: A new benchmark for Multilingual Program Synthesis\n\n🌐 <a href=\"README_zh.md\" target=\"_blank\">中文</a>\n\nHumanEval-X is a new benchmark for better evaluating the multilingual ability of code generation models. While previous works evaluate multilingual program synthesis under semantic similarity (e.g., [CodeBLEU](https://arxiv.org/abs/2009.10297)) which is often misleading, HumanEval-X evaluates the functional correctness of the generated programs. HumanEval-X consists of 820 high-quality human-crafted data samples (each with test cases) in Python, C++, Java, JavaScript, and Go, and can be used for various tasks.\n\n<img src=\"../../resources/en/hx_tasks.png\">\n\n<p align=\"center\"><i>An illustration of tasks supported by <b>HumanEval-X</b>. Declarations, docstrings, and solutions are marked with red, green, and blue respectively. <b>Code generation</b> uses declaration and docstring as input, to generate solution. <b>Code translation</b> uses declaration in both languages and translate the solution in source language to the one in target language.</i></p>\n\nIn HumanEval-X, every sample in each language contains declaration, docstring, and solution, which can be combined in various ways to support different downstream tasks including generation, translation, summarization, etc. We currently focus on two tasks: **code generation** and **code translation**. For code generation, the model uses declaration and docstring as input to generate the solution. For code translation, the model uses declarations in both languages and the solution in the source language as input, to generate solutions in the target language. We remove the description during code translation to prevent the model from directly solving the problem. For both tasks, we use the unbiased pass@k metric proposed in [Codex](https://arxiv.org/abs/2107.03374): $\\text{pass}@k:= \\mathbb{E}[1-\\frac{\\tbinom{n-c}{k}}{\\tbinom{n}{k}}]$, with $n=200$ and $k\\in(1,10,100)$.\n\n## How to use HumanEval-X\n\nData are stored in ``codegeex/benchmark/humaneval-x/[LANG]/data/humaneval_[LANG].jsonl.gz``, using JSON list format. There are six keys:\n\n*   ``task_id``: indicates the target language and ID of the problem. Language is one of [\"Python\", \"Java\", \"JavaScript\", \"CPP\", \"Go\"].\n*   ``prompt``: the function declaration and docstring, used for code generation.\n*   ``declaration``: only the function declaration, used for code translation. \n*   ``canonical_solution``: human-crafted example solutions.\n*   ``test``: hidden test samples, used for evaluation.\n*   ``example_test``: public test samples (appeared in prompt), used for evaluation. \n\n### Evaluation Environment\n\nThe evaluation of the generated codes involves compiling and running in multiple programming languages. The versions of the programming language environments and packages we use are as follows:\n\n| Dependency | Version  |\n| ---------- | -------- |\n| Python     | 3.8.12   |\n| JDK        | 18.0.2.1 |\n| Node.js    | 16.14.0  |\n| js-md5     | 0.7.3    |\n| C++        | 11       |\n| g++        | 7.5.0    |\n| Boost      | 1.71.0   |\n| OpenSSL    | 3.0.0    |\n| go         | 1.18.4   |\n\nIn order to save everyone the trouble of setting up the environments for these languages, we build a Docker image with the required environments and CodeGeeX installed.\n\nYou can directly pull the image from Docker Hub:\n\n```bash\ndocker pull rishubi/codegeex:latest\n```\n\nAlternatively, if you are familiar with Dockerfile, you can build the image from `codegeex/docker/Dockerfile` or configure the Dockerfile as you like it:\n\n```bash\ncd codegeex/docker\ndocker build [OPTIONS] .\n```\n\nAfter obtaining the image, you can build a container using the following command:\n\n```bash\ndocker run -it --gpus all --mount type=bind,source=<LOCAL PATH>,target=<PATH IN CONTAINER> [OPTIONS] <IMAGE NAME:TAG>\n```\n\n### Evaluation\n\nWe recommend evaluating in [the provided image](#evaluation-environment). To evaluate the generated samples, save generated codes in the following JSON list format:\n\n```\n{\"task_id\": \"../..\", \"generation: \"...\"}\n{\"task_id\": \"../..\", \"generation: \"...\"}\n...\n```\n\nand evaluate them using the following script under the root directory of the repository (<font color='red'>please execute with caution, the generated codes might have unexpected behaviours though with very low possibility. See the warnings in [execution.py](execution.py) and uncomment the execution lines at your own risk</font>):\n\n```bash\nbash scripts/evaluate_humaneval_x.sh <RESULT_FILE> <LANG> <N_WORKERS>\n```\n"
  },
  {
    "path": "codegeex/benchmark/README_zh.md",
    "content": "# HumanEval-X: 多语言代码生成基准\n\n🌐 <a href=\"README.md\" target=\"_blank\">English</a>\n\n为了更好地评测代码生成模型的多语言生成能力，我们构建了一个新基准HumanEval-X。此前，多语言代码生成能力是基于语义相似度（比如[CodeBLEU](https://arxiv.org/abs/2009.10297)）衡量的，具有一定误导性；HumanEval-X则可用于衡量生成代码的功能正确性。HumanEval-X包含820个高质量手写样本，覆盖Python、C++、Java、JavaScript、Go，可用于多种任务。\n\n<img src=\"../../resources/en/hx_tasks.png\">\n\n<p align=\"center\"><i><b>HumanEval-X</b>支持的任务示例。<font style='background-color:#F8CECC'>声明</font>、<font style='background-color:#D5E8D4'>描述</font>、<font style='background-color:#DAE8FC'>解答</font>分别用红、绿、蓝色标注。<i>代码生成</i>将声明与描述作为输入，输出解答。<i>代码翻译</i>将两种语言的声明与源语言的解答作为输入，输出目标语言的解答。</i></p>\n\nHumanEval-X中每个语言的样本，包含了声明、描述和解答，它们之间的组合可以支持不同的下游任务，包括生成、翻译、概括等。我们目前关注两个任务：**代码生成**与**代码翻译**。对于代码生成任务，模型将函数声明与文档字符串作为输入，输出函数实现；对于代码翻译任务，模型将两种语言的函数声明与源语言的实现作为输入，输出目标语言上的实现。我们在代码翻译任务中不将文档字符串输入模型，以避免模型直接通过描述生成答案。在两种任务下，我们都采用[Codex](https://arxiv.org/abs/2107.03374)所使用的无偏pass@k指标：$\\text{pass}@k:= \\mathbb{E}[1-\\frac{\\tbinom{n-c}{k}}{\\tbinom{n}{k}}]$, $n=200$, $k\\in(1,10,100)$。\n\n## 如何使用HumanEval-X\n\n样本使用JSON列表格式存储在``codegeex/benchmark/humaneval-x/[LANG]/data/humaneval_[LANG].jsonl.gz``，每条样本包含6个部分：\n\n*   ``task_id``: 题目的目标语言与ID。语言为[\"Python\", \"Java\", \"JavaScript\", \"CPP\", \"Go\"]中之一。\n*   ``prompt``: 函数声明与描述，用于代码生成。\n*   ``declaration``: 仅有函数声明，用于代码翻译。\n*   ``canonical_solution``: 手写的示例解答。\n*   ``test``: 隐藏测例，用于评测。\n*   ``example_test``: 提示中出现的公开测例，用于评测。\n\n### 评测环境\n\n评测生成的代码需要使用多种语言编译、运行。我们使用的各编程语言依赖及所用包的版本如下：\n\n| 依赖    | 版本     |\n| ------- | -------- |\n| Python  | 3.8.12   |\n| JDK     | 18.0.2.1 |\n| Node.js | 16.14.0  |\n| js-md5  | 0.7.3    |\n| C++     | 11       |\n| g++     | 7.5.0    |\n| Boost   | 1.71.0   |\n| OpenSSL | 3.0.0    |\n| go      | 1.18.4   |\n\n为了省去使用者配置这些语言环境的麻烦，我们构建了一个Docker镜像，并在其中配置了所需要的环境。\n\n可以直接从Docker Hub拉取镜像：\n\n```bash\ndocker pull rishubi/codegeex:latest\n```\n\n如果您熟悉Dockerfile，也可以从`codegeex/docker/Dockerfile`构建镜像，或者修改之以定制自己的配置：\n\n```bash\ncd codegeex/docker\ndocker build [OPTIONS] .\n```\n\n获取镜像后，使用如下命令创建容器：\n\n```bash\ndocker run -it --gpus all --mount type=bind,source=<LOCAL PATH>,target=<PATH IN CONTAINER> [OPTIONS] <IMAGE NAME:TAG>\n```\n\n### 评测\n\n我们推荐使用给定的[评测环境](#评测环境)进行评测。在评测前，将生成的代码以如下JSON列表形式存储：\n\n```\n{\"task_id\": \"../..\", \"generation: \"...\"}\n{\"task_id\": \"../..\", \"generation: \"...\"}\n...\n```\n\n并在本仓库的根目录下使用如下指令（<font color='red'>请谨慎执行，生成的代码可能有极低概率产生意外行为。在[execution.py](execution.py)中查看警告并取消执行代码的注释，风险自负</font>）：\n\n```bash\nbash scripts/evaluate_humaneval_x.sh <RESULT_FILE> <LANG> <N_WORKERS>\n```\n"
  },
  {
    "path": "codegeex/benchmark/__init__.py",
    "content": ""
  },
  {
    "path": "codegeex/benchmark/evaluate_humaneval_x.py",
    "content": "import os\nimport sys\nimport fire\nimport json\nimport gzip\nimport regex\nimport numpy as np\n\nfrom typing import *\nfrom tqdm.auto import tqdm\nfrom collections import defaultdict\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\nfrom codegeex.benchmark.utils import read_dataset, IMPORT_HELPER\nfrom codegeex.benchmark.metric import estimate_pass_at_k\nfrom codegeex.benchmark.execution import check_correctness\n\nLANGUAGE_NAME = {\n    \"cpp\"   : \"CPP\",\n    \"go\"    : \"Go\",\n    \"java\"  : \"Java\",\n    \"js\"    : \"JavaScript\",\n    \"python\": \"Python\",\n}\n\n\ndef process_humaneval_test(sample, problems, example_test=False):\n    task_id = sample[\"task_id\"]\n    language = task_id.split(\"/\")[0].lower()\n\n    prompt = sample[\"prompt\"]\n    if example_test and \"example_test\" in problems[task_id] and problems[task_id][\"example_test\"] != \"\":\n        test = problems[task_id][\"example_test\"]\n    else:\n        test = problems[task_id][\"test\"]\n    code = sample[\"generation\"]\n\n    # Pre-process for different languages\n    if language == \"python\":\n        code_ = []\n        for line in code.split(\"\\n\"):\n            if (len(line.strip()) > 0 and line[0] != ' ' and line[0] != '\\t'):\n                break\n            code_.append(line)\n        code = \"\\n\".join(code_)\n        test_setup = \"\\n\".join(IMPORT_HELPER[\"python\"]) + \"\\n\"\n        test_string = test_setup + prompt + code + \"\\n\" + test + \"\\n\"\n    elif language == \"cpp\":\n        test_set_up = \"\"\n        for s in IMPORT_HELPER[\"cpp\"]:\n            if s not in prompt:\n                test_set_up += s + \"\\n\"\n        test_string = test_set_up + \"\\n\" + prompt + code + \"\\n\" + test\n    elif language == \"java\":\n        test_string = prompt + code + \"\\n\" + test\n    elif language == \"js\" or language == \"javascript\":\n        test_string = prompt + code + \"\\n\" + test\n    elif language == \"go\":\n        import_string = problems[task_id][\"import\"]\n        prompt = prompt.replace(import_string, \"\")\n        if example_test and \"example_test\" in problems[task_id]:\n            test = problems[task_id][\"example_test\"]\n        else:\n            test = problems[task_id][\"test\"]\n        test_setup = problems[task_id][\"test_setup\"]\n        other_pkgs = []\n        for pkg in IMPORT_HELPER[\"go\"]:\n            if pkg not in test_setup:\n                p = pkg.split(\"/\")[-1]\n                if p + \".\" in code:\n                    other_pkgs.append(f\"\\\"{pkg}\\\"\")\n        if other_pkgs:\n            import_other_pkgs = \"import (\\n\" + \"    \".join([p + \"\\n\" for p in other_pkgs]) + \")\"\n            test_string = test_setup + \"\\n\" + import_other_pkgs + \"\\n\" + prompt + code + \"\\n\" + test\n        else:\n            test_string = test_setup + \"\\n\" + prompt + code + \"\\n\" + test\n    elif language == \"rust\":\n        main = \"\\nfn main(){ \\n } \\n\"\n        declaration = problems[task_id][\"declaration\"]\n        test_string = main + declaration + prompt + code + test\n\n    return test_string\n\n\ndef stream_jsonl_all(filename: str) -> Iterable[Dict]:\n    results = []\n    if filename.endswith(\".gz\"):\n        fp = gzip.open(open(filename, \"rb\"), \"rt\")\n    else:\n        fp = open(filename, \"r\")\n    for line in fp:\n        if any(not x.isspace() for x in line):\n            results.append(json.loads(line))\n    fp.close()\n\n    return results\n\n\ndef evaluate_functional_correctness(\n        input_file: str = None,\n        tmp_dir: str = \"./\",\n        n_workers: int = 32,\n        timeout: float = 500.0,\n        problem_file: str = \"../data/humaneval_python.jsonl.gz\",\n        out_dir: str = None,\n        k: List[int] = [1, 10, 100],\n        test_groundtruth: bool = False,\n        example_test: bool = False,\n):\n    if example_test:\n        print(\"Example test...\")\n\n    problems = read_dataset(problem_file,\n                            dataset_type=\"humaneval\")\n    sample_jsonl = stream_jsonl_all(input_file)\n\n    if example_test:\n        suffix = \"_example_test.jsonl\"\n    else:\n        suffix = \"_results.jsonl\"\n    if out_dir is not None:\n        if not os.path.exists(out_dir):\n            os.makedirs(out_dir)\n        out_file = os.path.join(out_dir, input_file.split('/')[-1].replace(\".jsonl\", suffix))\n    else:\n        out_file = os.path.join(input_file.replace(\".jsonl\", suffix))\n\n    if \"/codegeex/benchmark/humaneval-x/\" in input_file:\n        test_groundtruth = True\n\n    if \"-to-\" in input_file:\n        translation_mode = True\n    else:\n        translation_mode = False\n\n    with ThreadPoolExecutor(max_workers=n_workers) as executor:\n\n        futures = []\n        completion_id = Counter()\n        n_samples = 0\n        results = defaultdict(list)\n\n        if test_groundtruth:\n            print(\"Testing ground truth...\")\n            for sample in tqdm(problems.values()):\n                task_id = sample[\"task_id\"]\n                lang = task_id.split(\"/\")[0].lower()\n                if lang == \"javascript\":\n                    lang = \"js\"\n                tmp_dir_ = os.path.join(tmp_dir, lang, \"evaluation\")\n                sample[\"generation\"] = sample[\"canonical_solution\"]\n                sample[\"test_code\"] = process_humaneval_test(sample, problems, example_test)\n                if sample[\"test_code\"] is None:\n                    continue\n                args = (task_id, sample, lang, timeout, tmp_dir_, completion_id[task_id])\n                future = executor.submit(check_correctness, *args)\n                futures.append(future)\n                completion_id[task_id] += 1\n                n_samples += 1\n        else:\n            print(\"Reading samples...\")\n            for sample in tqdm(sample_jsonl):\n                task_id = sample[\"task_id\"]\n                lang = task_id.split(\"/\")[0].lower()\n                if translation_mode:\n                    task_id = sample[\"task_id\"].split(\"/\")[-1]\n                    lang = regex.findall(\"-to-.*-\", input_file)[0].split(\"-to-\")[-1].rstrip(\"-\")\n                    for l in LANGUAGE_NAME:\n                        if l in lang:\n                            lang = l\n                            break\n                    task_id = f\"{LANGUAGE_NAME[lang]}/{task_id}\"\n                if lang == \"javascript\":\n                    lang = \"js\"\n                tmp_dir_ = os.path.join(tmp_dir, lang, \"evaluation\")\n                sample[\"task_id\"] = task_id\n                sample[\"test_code\"] = process_humaneval_test(sample, problems, example_test)\n                if sample[\"test_code\"] is None:\n                    continue\n                if \"completion_id\" in sample:\n                    completion_id_ = sample[\"completion_id\"]\n                else:\n                    completion_id_ = completion_id[task_id]\n                args = (task_id, sample, lang, timeout, tmp_dir_, completion_id_)\n                future = executor.submit(check_correctness, *args)\n                futures.append(future)\n                completion_id[task_id] += 1\n                n_samples += 1\n\n        print(completion_id)\n        if len(completion_id) == len(problems):\n            evaluate_pass_at_k = True\n        else:\n            evaluate_pass_at_k = False\n\n        print(\"Running test suites...\")\n        for future in tqdm(as_completed(futures), total=len(futures)):\n            result = future.result()\n            results[result[\"task_id\"]].append((result[\"completion_id\"], result))\n\n    # Calculate pass@k.\n    total, correct = [], []\n    for result in results.values():\n        passed = [r[1][\"passed\"] for r in result]\n        total.append(len(passed))\n        correct.append(sum(passed))\n    total = np.array(total)\n    correct = np.array(correct)\n    if evaluate_pass_at_k:\n        ks = k\n        pass_at_k = {f\"pass@{k}\": estimate_pass_at_k(total, correct, k).mean()\n                     for k in ks if (total >= k).all()}\n        print(pass_at_k)\n    else:\n        print(\"Total:\", np.sum(total))\n        print(\"Correct:\", np.sum(correct))\n\n    print(\"Writing to: \", out_file)\n    if out_file.endswith(\".gz\"):\n        fp = gzip.GzipFile(fileobj=open(out_file, \"wb\"), mode=\"wb\")\n        for res in results.values():\n            for r in res:\n                fp.write((json.dumps(r[1]) + \"\\n\").encode(\"utf-8\"))\n    else:\n        fp = open(out_file, 'w')\n        for res in results.values():\n            for r in res:\n                fp.write(json.dumps(r[1]) + \"\\n\")\n    fp.close()\n\n    print(\"Evaluation finished.\")\n\n\ndef main():\n    fire.Fire(evaluate_functional_correctness)\n\n\nif __name__ == \"__main__\":\n    sys.exit(main())\n"
  },
  {
    "path": "codegeex/benchmark/execution.py",
    "content": "import contextlib\nimport faulthandler\nimport io\nimport multiprocessing\nimport os\nimport platform\nimport signal\nimport random\nimport subprocess\nimport tempfile\nimport gzip\nimport json\nfrom typing import *\n\ndef dicts_to_jsonl(data_list: list, filename: str, compress: bool = True) -> None:\n    \"\"\"\n    Method saves list of dicts into jsonl file.\n    :param data: (list) list of dicts to be stored,\n    :param filename: (str) path to the output file. If suffix .jsonl is not given then methods appends\n        .jsonl suffix into the file.\n    :param compress: (bool) should file be compressed into a gzip archive?\n    \"\"\"\n    sjsonl = '.jsonl'\n    sgz = '.gz'\n    # Check filename\n    if not filename.endswith(sjsonl):\n        filename = filename + sjsonl\n    # Save data\n    \n    if compress:\n        filename = filename + sgz\n        with gzip.open(filename, 'w') as compressed:\n            for ddict in data_list:\n                jout = json.dumps(ddict) + '\\n'\n                jout = jout.encode('utf-8')\n                compressed.write(jout)\n    else:\n        with open(filename, 'w') as out:\n            for ddict in data_list:\n                jout = json.dumps(ddict) + '\\n'\n                out.write(jout)\n\n\ndef check_correctness(\n        task_id: str,\n        sample: dict,\n        language_type: str,\n        timeout: float = 3.0,\n        tmp_dir: str = None,\n        completion_id: Optional[int] = None,\n) -> Dict:\n    \"\"\"\n    Evaluates the functional correctness of a completion by running the test\n    suite provided in the problem.\n    \"\"\"\n\n    def unsafe_execute(tmp_dir):\n        random_id = random.uniform(1, 1000)\n        if \"python\" in language_type.lower():\n            with create_tempdir():\n\n                # These system calls are needed when cleaning up tempdir.\n                import os\n                import shutil\n                rmtree = shutil.rmtree\n                rmdir = os.rmdir\n                chdir = os.chdir\n\n                # Disable functionalities that can make destructive changes to the test.\n                reliability_guard()\n\n                try:\n                    exec_globals = {}\n                    with swallow_io():\n                        with time_limit(timeout):\n                            # WARNING\n                            # This program exists to execute untrusted model-generated code. Although\n                            # it is highly unlikely that model-generated code will do something overtly\n                            # malicious in response to this test suite, model-generated code may act\n                            # destructively due to a lack of model capability or alignment.\n                            # Users are strongly encouraged to sandbox this evaluation suite so that it\n                            # does not perform destructive actions on their host or network.\n                            # Once you have read this disclaimer and taken appropriate precautions,\n                            # uncomment the following line and proceed at your own risk:\n                            exec(sample[\"test_code\"], exec_globals)\n                        result.append(\"passed\")\n                except TimeoutException:\n                    result.append(\"timed out\")\n                except AssertionError as e:\n                    result.append(f\"failed: AssertionError\")\n                except BaseException as e:\n                    result.append(f\"failed: {e}\")\n\n                # Needed for cleaning up.\n                shutil.rmtree = rmtree\n                os.rmdir = rmdir\n                os.chdir = chdir\n\n        elif \"go\" in language_type.lower():\n            assert tmp_dir is not None, \"Go should be evaluated in a dir where necessary module files installed.\"\n\n            import os\n            import shutil\n\n            if \"tmp\" not in tmp_dir:\n                tmp_dir = os.path.join(tmp_dir, \"tmp\")\n            tmp_dir = os.path.join(tmp_dir, f\"{task_id.replace('/', '-')}-{random_id}\")\n            if not os.path.exists(tmp_dir):\n                os.makedirs(tmp_dir)\n\n            os.chdir(tmp_dir)\n            open(f\"main_test.go\", 'w').write(sample[\"test_code\"])\n            try:\n                exec_result = None\n                with time_limit(timeout):\n                    # WARNING\n                    # This program exists to execute untrusted model-generated code. Although\n                    # it is highly unlikely that model-generated code will do something overtly\n                    # malicious in response to this test suite, model-generated code may act\n                    # destructively due to a lack of model capability or alignment.\n                    # Users are strongly encouraged to sandbox this evaluation suite so that it\n                    # does not perform destructive actions on their host or network.\n                    # Once you have read this disclaimer and taken appropriate precautions,\n                    # uncomment the following line and proceed at your own risk:\n                     exec_result = subprocess.run([\"go\", \"test\", f\"-timeout={timeout}s\", \"main_test.go\"], timeout=timeout, capture_output=True)\n\n                if exec_result.returncode == 0:\n                    result.append(\"passed\")\n                else:\n                    if exec_result.stderr:\n                        try:\n                            err = exec_result.stderr.decode()\n                        except:\n                            err = exec_result.stderr\n                    else:\n                        try:\n                            err = exec_result.stdout.decode()\n                        except:\n                            err = exec_result.stdout\n                    result.append(f\"failed: {err}\")\n\n            except TimeoutException:\n                result.append(\"timed out\")\n\n            shutil.rmtree(tmp_dir)\n        elif \"js\" in language_type.lower():\n            import os\n            import shutil\n\n            if \"tmp\" not in tmp_dir:\n                tmp_dir = os.path.join(tmp_dir, \"tmp\")\n            tmp_dir = os.path.join(tmp_dir, f\"{task_id.replace('/', '-')}-{random_id}\")\n            if not os.path.exists(tmp_dir):\n                os.makedirs(tmp_dir)\n\n            os.chdir(tmp_dir)\n            open(f\"test.js\", 'w').write(sample[\"test_code\"])\n            try:\n                exec_result = None\n                with time_limit(timeout):\n                    # WARNING\n                    # This program exists to execute untrusted model-generated code. Although\n                    # it is highly unlikely that model-generated code will do something overtly\n                    # malicious in response to this test suite, model-generated code may act\n                    # destructively due to a lack of model capability or alignment.\n                    # Users are strongly encouraged to sandbox this evaluation suite so that it\n                    # does not perform destructive actions on their host or network.\n                    # Once you have read this disclaimer and taken appropriate precautions,\n                    # uncomment the following line and proceed at your own risk:\n                     exec_result = subprocess.run([\"node\", \"test.js\"], timeout=timeout, capture_output=True)\n\n                if exec_result.stderr.decode():\n                    err = exec_result.stderr.decode()\n                    result.append(f\"failed: {err}\")\n                elif exec_result.stdout.decode():\n                    err = exec_result.stdout.decode()\n                    result.append(f\"failed: {err}\")\n                else:\n                    result.append(\"passed\")\n\n            except TimeoutException:\n                result.append(\"timed out\")\n\n            shutil.rmtree(tmp_dir)\n        elif \"cpp\" in language_type.lower():\n            import os\n            import shutil\n\n            if \"tmp\" not in tmp_dir:\n                tmp_dir = os.path.join(tmp_dir, \"tmp\")\n            tmp_dir = os.path.join(tmp_dir, f\"{task_id.replace('/', '-')}-{random_id}\")\n            if not os.path.exists(tmp_dir):\n                os.makedirs(tmp_dir)\n\n            os.chdir(tmp_dir)\n            open(f\"test.cpp\", 'w').write(sample[\"test_code\"])\n            if \"162\" in task_id:\n                compilation_result = subprocess.run([\"/usr/bin/g++\", \"-std=c++11\", \"test.cpp\", \"-lcrypto\", \"-lssl\"],\n                                                    timeout=timeout,\n                                                    capture_output=True)\n            else:\n                compilation_result = subprocess.run([\"/usr/bin/g++\", \"-std=c++11\", \"test.cpp\"], timeout=timeout,\n                                                    capture_output=True)\n            if compilation_result.returncode != 0:\n                if compilation_result.stderr:\n                    err = compilation_result.stderr.decode()\n                else:\n                    err = compilation_result.stdout.decode()\n                result.append(f\"failed: compilation error: {err}\")\n            else:\n                try:\n                    exec_result = None\n                    with time_limit(timeout):\n                        # WARNING\n                        # This program exists to execute untrusted model-generated code. Although\n                        # it is highly unlikely that model-generated code will do something overtly\n                        # malicious in response to this test suite, model-generated code may act\n                        # destructively due to a lack of model capability or alignment.\n                        # Users are strongly encouraged to sandbox this evaluation suite so that it\n                        # does not perform destructive actions on their host or network.\n                        # Once you have read this disclaimer and taken appropriate precautions,\n                        # uncomment the following line and proceed at your own risk:\n                         exec_result = subprocess.run([\"./a.out\"], timeout=timeout, capture_output=True)\n\n                    if exec_result.returncode == 0:\n                        result.append(\"passed\")\n                    else:\n                        if exec_result.stderr:\n                            try:\n                                err = exec_result.stderr.decode()\n                            except:\n                                err = exec_result.stderr\n                        else:\n                            try:\n                                err = exec_result.stdout.decode()\n                            except:\n                                err = exec_result.stdout\n                        result.append(f\"failed: {err}\")\n                except TimeoutException:\n                    result.append(\"timed out\")\n\n            shutil.rmtree(tmp_dir)\n        elif \"rust\" in language_type.lower():  \n            import os         \n            \n            WD: str = os.path.dirname(os.path.abspath(__file__))\n            RUST_DIR: str = os.path.join(WD, \"rust\")\n            RUST_SRC: str = os.path.join(RUST_DIR, \"src\")\n            RUST_BIN: str = os.path.join(RUST_SRC, \"bin\")\n            RUST_TMP_DIR: str = os.path.join(RUST_DIR, \"tmp\")\n            RUST_LOGS: str = os.path.join(RUST_TMP_DIR, \"logs\")\n            RUST_EXT: str = \".rs\" \n\n            # Create mandatory tmp directories\n            os.makedirs(RUST_TMP_DIR, exist_ok=True)\n            os.makedirs(RUST_LOGS, exist_ok=True)\n            os.makedirs(RUST_SRC, exist_ok=True)\n            os.makedirs(RUST_BIN, exist_ok=True)\n\n            with tempfile.NamedTemporaryFile(dir = RUST_BIN, delete=False) as f:\n                #temporal file name\n                file_prefix = sample[\"task_id\"].lower().replace(\"/\", \"_\")\n                file_name:str =  file_prefix +RUST_EXT\n                \n                os.rename(f.name, os.path.join(RUST_BIN, file_name))\n                \n                # Sample to pure Rust function\n                rust_code: str = sample[\"test_code\"]\n\n                # dump the rust source code in the target temporal file\n                f.write(rust_code.encode('utf-8'))\n\n            # Proceed towards Rust binaries compilation. Therefore move to Rust module root dir.\n            os.chdir(RUST_DIR)\n\n            # Two possible outcomes\n            # Pass OR Fail compilation\n            log_filename: str = file_prefix + \".jsonl\"\n            log_path: str = os.path.join(RUST_LOGS, log_filename)\n            cargo_check: str = \"cargo check --bin \" + file_prefix + \" --message-format json >> \" + log_path\n            # Compilation build status\n            returned_val_compilation: int\n            \n            # Overwrite file content\n            if os.path.exists(log_path):\n                if(file_size := os.path.getsize(log_path)) >= 0: \n                    os.remove(log_path)\n                    returned_val_compilation = os.system(cargo_check)\n\n            else: \n                returned_val_compilation = os.system(cargo_check)\n\n            # 0 means success   \n            if returned_val_compilation == 0:\n\n                #Execution pipeline\n                cargo_test: str = \"cargo test --bin \" +file_prefix+ \" --message-format json >> \" + log_path\n                returned_val_execution = os.system(cargo_test)\n                \n                if returned_val_execution == 0:\n                    result.append(\"passed\")\n                else:\n                   result.append(f\"failed: execution error\") \n\n            else:\n                result.append(f\"failed: compilation error\")\n\n\n        elif \"java\" in language_type.lower():\n            assert tmp_dir is not None, \"Java should be evaluated in a temporary dir.\"\n\n            import os\n            import shutil\n\n            if \"tmp\" not in tmp_dir:\n                tmp_dir = os.path.join(tmp_dir, \"tmp\")\n            tmp_dir = os.path.join(tmp_dir, f\"{task_id.replace('/', '-')}-{random_id}\")\n            if not os.path.exists(tmp_dir):\n                os.makedirs(tmp_dir)\n\n            os.chdir(tmp_dir)\n            open(os.path.join(tmp_dir, \"Main.java\"), 'w').write(sample[\"test_code\"])\n            res = \"failed: unknown error\"\n            compile_returncode = -1\n            for _ in range(5):\n                try:\n                    compilation_result = subprocess.run(['javac', os.path.join(tmp_dir, \"Main.java\")], timeout=5,\n                                                        capture_output=True)\n                    compile_returncode = compilation_result.returncode\n                    break\n                except subprocess.TimeoutExpired as e:\n                    continue\n            if compile_returncode != 0:\n                res = \"failed: compilation error\"\n            else:\n                exec_result = None\n                try:\n                    # WARNING\n                    # This program exists to execute untrusted model-generated code. Although\n                    # it is highly unlikely that model-generated code will do something overtly\n                    # malicious in response to this test suite, model-generated code may act\n                    # destructively due to a lack of model capability or alignment.\n                    # Users are strongly encouraged to sandbox this evaluation suite so that it\n                    # does not perform destructive actions on their host or network.\n                    # Once you have read this disclaimer and taken appropriate precautions,\n                    # uncomment the following line and proceed at your own risk:\n                    # exec_result = subprocess.run([f'java', '-cp', tmp_dir, 'Main'], timeout=timeout, capture_output=True)\n                    if exec_result.returncode == 0:\n                        res = \"passed\"\n                    elif exec_result.returncode == 1:\n                        if \"AssertionError\" in exec_result.stderr.decode('unicode-escape'):\n                            res = \"failed: wrong answer\"\n                        else:\n                            res = f\"failed: {exec_result.stderr.decode()}\"\n                except subprocess.TimeoutExpired as e:\n                    res = \"time out\"\n                except BaseException as e:\n                    res = f\"failed: {e}\"\n            result.append(res)\n\n            shutil.rmtree(tmp_dir)\n        \n    manager = multiprocessing.Manager()\n    result = manager.list()\n\n    p = multiprocessing.Process(target=unsafe_execute, args=(tmp_dir,))\n    p.start()\n    p.join(timeout=timeout + 1)\n    if p.is_alive():\n        p.kill()\n\n    if not result:\n        result.append(\"timed out\")\n\n    return {\n        \"task_id\"      : task_id,\n        \"completion_id\": completion_id,\n        \"test_code\"    : sample[\"test_code\"],\n        \"prompt\"       : sample[\"prompt\"],\n        \"generation\"   : sample[\"generation\"],\n        \"result\"       : result[0],\n        \"passed\"       : result[0] == \"passed\",\n        \"finish\"       : -1 if \"finish\" not in sample else sample[\"finish\"],\n        \"file\"         : \"\" if \"file\" not in sample else sample[\"file\"],\n        \"output\"       : [] if \"output\" not in sample else sample[\"output\"],\n    }\n\n# Copyright (c) OpenAI (https://openai.com)\n\n# Permission is hereby granted, free of charge, to any person obtaining a copy\n# of this software and associated documentation files (the \"Software\"), to deal\n# in the Software without restriction, including without limitation the rights\n# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n# copies of the Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n\n# The above copyright notice and this permission notice shall be included in\n# all copies or substantial portions of the Software.\n\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n# THE SOFTWARE.\n# ============================================================================\n@contextlib.contextmanager\ndef time_limit(seconds: float):\n    def signal_handler(signum, frame):\n        raise TimeoutException(\"Timed out!\")\n\n    signal.setitimer(signal.ITIMER_REAL, seconds)\n    signal.signal(signal.SIGALRM, signal_handler)\n    try:\n        yield\n    finally:\n        signal.setitimer(signal.ITIMER_REAL, 0)\n\n\n@contextlib.contextmanager\ndef swallow_io():\n    stream = WriteOnlyStringIO()\n    with contextlib.redirect_stdout(stream):\n        with contextlib.redirect_stderr(stream):\n            with redirect_stdin(stream):\n                yield\n\n\n@contextlib.contextmanager\ndef create_tempdir():\n    with tempfile.TemporaryDirectory() as dirname:\n        with chdir(dirname):\n            yield dirname\n\n\nclass TimeoutException(Exception):\n    pass\n\n\nclass WriteOnlyStringIO(io.StringIO):\n    \"\"\" StringIO that throws an exception when it's read from \"\"\"\n\n    def read(self, *args, **kwargs):\n        raise IOError\n\n    def readline(self, *args, **kwargs):\n        raise IOError\n\n    def readlines(self, *args, **kwargs):\n        raise IOError\n\n    def readable(self, *args, **kwargs):\n        \"\"\" Returns True if the IO object can be read. \"\"\"\n        return False\n\n\nclass redirect_stdin(contextlib._RedirectStream):  # type: ignore\n    _stream = 'stdin'\n\n\n@contextlib.contextmanager\ndef chdir(root):\n    if root == \".\":\n        yield\n        return\n    cwd = os.getcwd()\n    os.chdir(root)\n    try:\n        yield\n    except BaseException as exc:\n        raise exc\n    finally:\n        os.chdir(cwd)\n\n\ndef reliability_guard(maximum_memory_bytes: Optional[int] = None):\n    \"\"\"\n    This disables various destructive functions and prevents the generated code\n    from interfering with the test (e.g. fork bomb, killing other processes,\n    removing filesystem files, etc.)\n\n    WARNING\n    This function is NOT a security sandbox. Untrusted code, including, model-\n    generated code, should not be blindly executed outside of one. See the \n    Codex paper for more information about OpenAI's code sandbox, and proceed\n    with caution.\n    \"\"\"\n\n    if maximum_memory_bytes is not None:\n        import resource\n        resource.setrlimit(resource.RLIMIT_AS, (maximum_memory_bytes, maximum_memory_bytes))\n        resource.setrlimit(resource.RLIMIT_DATA, (maximum_memory_bytes, maximum_memory_bytes))\n        if not platform.uname().system == 'Darwin':\n            resource.setrlimit(resource.RLIMIT_STACK, (maximum_memory_bytes, maximum_memory_bytes))\n\n    faulthandler.disable()\n\n    import builtins\n    builtins.exit = None\n    builtins.quit = None\n\n    import os\n    os.environ['OMP_NUM_THREADS'] = '1'\n\n    os.kill = None\n    os.system = None\n    os.putenv = None\n    os.remove = None\n    os.removedirs = None\n    os.rmdir = None\n    os.fchdir = None\n    os.setuid = None\n    os.fork = None\n    os.forkpty = None\n    os.killpg = None\n    os.rename = None\n    os.renames = None\n    os.truncate = None\n    os.replace = None\n    os.unlink = None\n    os.fchmod = None\n    os.fchown = None\n    os.chmod = None\n    os.chown = None\n    os.chroot = None\n    os.fchdir = None\n    os.lchflags = None\n    os.lchmod = None\n    os.lchown = None\n    os.getcwd = None\n    os.chdir = None\n\n    import shutil\n    shutil.rmtree = None\n    shutil.move = None\n    shutil.chown = None\n\n    import subprocess\n    subprocess.Popen = None  # type: ignore\n\n    __builtins__['help'] = None\n\n    import sys\n    sys.modules['ipdb'] = None\n    sys.modules['joblib'] = None\n    sys.modules['resource'] = None\n    sys.modules['psutil'] = None\n    sys.modules['tkinter'] = None\n"
  },
  {
    "path": "codegeex/benchmark/gather_output.py",
    "content": "import os\nimport sys\nimport fire\nimport glob\n\n\ndef gather_output(\n    output_dir: str = \"./output\",\n    output_prefix: str = None,\n    if_remove_rank_files: int = 0,\n):\n    if output_prefix is None:\n        output_list = glob.glob(output_dir + \"/*\")\n    else:\n        output_list = glob.glob(os.path.join(output_dir, output_prefix + \"*\"))\n\n    for output_file in output_list:\n        if \"rank0\" in output_file:\n            output_prefix_ = output_file.split(\"_rank0.jsonl\")[0]\n            rank_files = glob.glob(output_prefix_ + \"_rank*\")\n            with open(output_prefix_ + \".jsonl\", \"w\") as f_out:\n                for rank_file in rank_files:\n                    with open(rank_file, \"r\") as f_in:\n                        for line in f_in:\n                            f_out.write(line)\n                        if if_remove_rank_files:\n                            os.remove(rank_file)\n                            print(f\"Removing {rank_file}...\")\n\n    if output_prefix is None:\n        output_list = glob.glob(output_dir + \"/*\")\n    else:\n        output_list = glob.glob(os.path.join(output_dir, output_prefix + \"*\"))\n\n    for output_file in output_list:\n        if \"rank\" in output_file or \"_unfinished\" in output_file or \"all\" in output_file or \"_result\" in output_file:\n            continue\n        if \"_finished\" not in output_file:\n            continue\n        output_prefix_ = output_file.split(\"_finished.jsonl\")[0]\n        files = [output_file, output_prefix_ + \"_unfinished.jsonl\"]\n        with open(output_prefix_ + \"_all.jsonl\", \"w\") as f_out:\n            for f in files:\n                with open(f, \"r\") as f_in:\n                    for line in f_in:\n                        f_out.write(line)\n\n        print(\"Gathering finished. Saved in {}\".format(output_prefix_ + \"_all.jsonl\"))\n\n\ndef main():\n    fire.Fire(gather_output)\n\n\nif __name__ == \"__main__\":\n    sys.exit(main())\n"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/__init__.py",
    "content": ""
  },
  {
    "path": "codegeex/benchmark/humaneval-x/cpp/evaluation/test.cpp",
    "content": "/*\nInput to this function is a string containing multiple groups of nested parentheses. Your goal is to\nseparate those group into separate strings and return the vector of those.\nSeparate groups are balanced (each open brace is properly closed) and not nested within each other\nIgnore any spaces in the input string.\n>>> separate_paren_groups(\"( ) (( )) (( )( ))\")\n{\"()\", \"(())\", \"(()())\"}\n*/\n#include<stdio.h>\n#include<vector>\n#include<string>\nusing namespace std;\nvector<string> separate_paren_groups(string paren_string){\n\n    vector<string> all_parens;\n    string current_paren;\n    int level=0;\n    char chr;\n    int i;\n    for (i=0;i<paren_string.length();i++)\n    {\n        chr=paren_string[i];\n        if (chr=='(')\n        {\n        level+=1;\n        current_paren+=chr;\n        }\n        if (chr==')')\n        {\n            level-=1;\n            current_paren+=chr;\n            if (level==0){\n                all_parens.push_back(current_paren);\n                current_paren=\"\";\n            }\n        }\n    }\n    return all_parens;\n}\n\n#undef NDEBUG\n#include<assert.h>\nbool issame(vector<string> a,vector<string>b){\n    if (a.size()!=b.size()) return false;\n    for (int i=0;i<a.size();i++)\n    {\n    if (a[i]!=b[i]) return false;\n    }\n    return true;\n}\nint main(){\n    assert (issame(separate_paren_groups(\"(()()) ((())) () ((())()())\"),{\"(()())\", \"((()))\", \"()\", \"((())()())\"}));\n    assert (issame(separate_paren_groups(\"() (()) ((())) (((())))\"), {\"()\", \"(())\", \"((()))\", \"(((())))\" }));\n    assert (issame(separate_paren_groups(\"(()(())((())))\") ,{ \"(()(())((())))\" }));\n    assert (issame(separate_paren_groups(\"( ) (( )) (( )( ))\") ,{\"()\", \"(())\", \"(()())\"}));\n}"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/evaluate_humaneval_x.py",
    "content": "import os\nimport sys\nimport fire\nimport json\nimport gzip\nimport regex\nimport numpy as np\n\nfrom typing import *\nfrom tqdm.auto import tqdm\nfrom collections import defaultdict\nfrom concurrent.futures import ThreadPoolExecutor, as_completed\n\nfrom codegeex.benchmark.utils import read_dataset, IMPORT_HELPER\nfrom codegeex.benchmark.metric import estimate_pass_at_k\nfrom codegeex.benchmark.execution import check_correctness\n\nLANGUAGE_NAME = {\n    \"cpp\"   : \"CPP\",\n    \"go\"    : \"Go\",\n    \"java\"  : \"Java\",\n    \"js\"    : \"JavaScript\",\n    \"python\": \"Python\",\n}\n\n\ndef process_humaneval_test(sample, problems, example_test=False):\n    task_id = sample[\"task_id\"]\n    language = task_id.split(\"/\")[0].lower()\n\n    prompt = sample[\"prompt\"]\n    if example_test and \"example_test\" in problems[task_id] and problems[task_id][\"example_test\"] != \"\":\n        test = problems[task_id][\"example_test\"]\n    else:\n        test = problems[task_id][\"test\"]\n    code = sample[\"generation\"]\n\n    # Pre-process for different languages\n    if language == \"python\":\n        code_ = []\n        for line in code.split(\"\\n\"):\n            if (len(line.strip()) > 0 and line[0] != ' ' and line[0] != '\\t'):\n                break\n            code_.append(line)\n        code = \"\\n\".join(code_)\n        test_setup = \"\\n\".join(IMPORT_HELPER[\"python\"]) + \"\\n\"\n        test_string = test_setup + prompt + code + \"\\n\" + test + \"\\n\"\n    elif language == \"cpp\":\n        test_set_up = \"\"\n        for s in IMPORT_HELPER[\"cpp\"]:\n            if s not in prompt:\n                test_set_up += s + \"\\n\"\n        test_string = test_set_up + \"\\n\" + prompt + code + \"\\n\" + test\n    elif language == \"java\":\n        test_string = prompt + code + \"\\n\" + test\n    elif language == \"js\" or language == \"javascript\":\n        test_string = prompt + code + \"\\n\" + test\n    elif language == \"go\":\n        import_string = problems[task_id][\"import\"]\n        prompt = prompt.replace(import_string, \"\")\n        if example_test and \"example_test\" in problems[task_id]:\n            test = problems[task_id][\"example_test\"]\n        else:\n            test = problems[task_id][\"test\"]\n        test_setup = problems[task_id][\"test_setup\"]\n        other_pkgs = []\n        for pkg in IMPORT_HELPER[\"go\"]:\n            if pkg not in test_setup:\n                p = pkg.split(\"/\")[-1]\n                if p + \".\" in code:\n                    other_pkgs.append(f\"\\\"{pkg}\\\"\")\n        if other_pkgs:\n            import_other_pkgs = \"import (\\n\" + \"    \".join([p + \"\\n\" for p in other_pkgs]) + \")\"\n            test_string = test_setup + \"\\n\" + import_other_pkgs + \"\\n\" + prompt + code + \"\\n\" + test\n        else:\n            test_string = test_setup + \"\\n\" + prompt + code + \"\\n\" + test\n    elif language == \"rust\":\n        main = \"\\nfn main(){ \\n } \\n\"\n        declaration = problems[task_id][\"declaration\"]\n        test_string = main + declaration + prompt + code + test\n\n    return test_string\n\n\ndef stream_jsonl_all(filename: str) -> Iterable[Dict]:\n    results = []\n    if filename.endswith(\".gz\"):\n        fp = gzip.open(open(filename, \"rb\"), \"rt\")\n    else:\n        fp = open(filename, \"r\")\n    for line in fp:\n        if any(not x.isspace() for x in line):\n            results.append(json.loads(line))\n    fp.close()\n\n    return results\n\n\ndef evaluate_functional_correctness(\n        input_file: str = None,\n        tmp_dir: str = \"./\",\n        n_workers: int = 32,\n        timeout: float = 500.0,\n        problem_file: str = \"../data/humaneval_python.jsonl.gz\",\n        out_dir: str = None,\n        k: List[int] = [1, 10, 100],\n        test_groundtruth: bool = False,\n        example_test: bool = False,\n):\n    if example_test:\n        print(\"Example test...\")\n\n    problems = read_dataset(problem_file,\n                            dataset_type=\"humaneval\")\n    sample_jsonl = stream_jsonl_all(input_file)\n\n    if example_test:\n        suffix = \"_example_test.jsonl\"\n    else:\n        suffix = \"_results.jsonl\"\n    if out_dir is not None:\n        if not os.path.exists(out_dir):\n            os.makedirs(out_dir)\n        out_file = os.path.join(out_dir, input_file.split('/')[-1].replace(\".jsonl\", suffix))\n    else:\n        out_file = os.path.join(input_file.replace(\".jsonl\", suffix))\n\n    if \"/codegeex/benchmark/humaneval-x/\" in input_file:\n        test_groundtruth = True\n\n    if \"-to-\" in input_file:\n        translation_mode = True\n    else:\n        translation_mode = False\n\n    with ThreadPoolExecutor(max_workers=n_workers) as executor:\n\n        futures = []\n        completion_id = Counter()\n        n_samples = 0\n        results = defaultdict(list)\n\n        if test_groundtruth:\n            print(\"Testing ground truth...\")\n            for sample in tqdm(problems.values()):\n                task_id = sample[\"task_id\"]\n                lang = task_id.split(\"/\")[0].lower()\n                if lang == \"javascript\":\n                    lang = \"js\"\n                tmp_dir_ = os.path.join(tmp_dir, lang, \"evaluation\")\n                sample[\"generation\"] = sample[\"canonical_solution\"]\n                sample[\"test_code\"] = process_humaneval_test(sample, problems, example_test)\n                if sample[\"test_code\"] is None:\n                    continue\n                args = (task_id, sample, lang, timeout, tmp_dir_, completion_id[task_id])\n                future = executor.submit(check_correctness, *args)\n                futures.append(future)\n                completion_id[task_id] += 1\n                n_samples += 1\n        else:\n            print(\"Reading samples...\")\n            for sample in tqdm(sample_jsonl):\n                task_id = sample[\"task_id\"]\n                lang = task_id.split(\"/\")[0].lower()\n                if translation_mode:\n                    task_id = sample[\"task_id\"].split(\"/\")[-1]\n                    lang = regex.findall(\"-to-.*-\", input_file)[0].split(\"-to-\")[-1].rstrip(\"-\")\n                    for l in LANGUAGE_NAME:\n                        if l in lang:\n                            lang = l\n                            break\n                    task_id = f\"{LANGUAGE_NAME[lang]}/{task_id}\"\n                if lang == \"javascript\":\n                    lang = \"js\"\n                tmp_dir_ = os.path.join(tmp_dir, lang, \"evaluation\")\n                sample[\"task_id\"] = task_id\n                sample[\"test_code\"] = process_humaneval_test(sample, problems, example_test)\n                if sample[\"test_code\"] is None:\n                    continue\n                if \"completion_id\" in sample:\n                    completion_id_ = sample[\"completion_id\"]\n                else:\n                    completion_id_ = completion_id[task_id]\n                args = (task_id, sample, lang, timeout, tmp_dir_, completion_id_)\n                future = executor.submit(check_correctness, *args)\n                futures.append(future)\n                completion_id[task_id] += 1\n                n_samples += 1\n\n        print(completion_id)\n        if len(completion_id) == len(problems):\n            evaluate_pass_at_k = True\n        else:\n            evaluate_pass_at_k = False\n\n        print(\"Running test suites...\")\n        for future in tqdm(as_completed(futures), total=len(futures)):\n            result = future.result()\n            results[result[\"task_id\"]].append((result[\"completion_id\"], result))\n\n    # Calculate pass@k.\n    total, correct = [], []\n    for result in results.values():\n        passed = [r[1][\"passed\"] for r in result]\n        total.append(len(passed))\n        correct.append(sum(passed))\n    total = np.array(total)\n    correct = np.array(correct)\n    if evaluate_pass_at_k:\n        ks = k\n        pass_at_k = {f\"pass@{k}\": estimate_pass_at_k(total, correct, k).mean()\n                     for k in ks if (total >= k).all()}\n        print(pass_at_k)\n    else:\n        print(\"Total:\", np.sum(total))\n        print(\"Correct:\", np.sum(correct))\n\n    print(\"Writing to: \", out_file)\n    if out_file.endswith(\".gz\"):\n        fp = gzip.GzipFile(fileobj=open(out_file, \"wb\"), mode=\"wb\")\n        for res in results.values():\n            for r in res:\n                fp.write((json.dumps(r[1]) + \"\\n\").encode(\"utf-8\"))\n    else:\n        fp = open(out_file, 'w')\n        for res in results.values():\n            for r in res:\n                fp.write(json.dumps(r[1]) + \"\\n\")\n    fp.close()\n\n    print(\"Evaluation finished.\")\n\n\ndef main():\n    fire.Fire(evaluate_functional_correctness)\n\n\nif __name__ == \"__main__\":\n    sys.exit(main())\n"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/generate_humaneval_x.py",
    "content": "import argparse\nimport logging\nimport os\nimport random\nimport socket\nimport time\nfrom typing import *\n\nimport torch\nimport zmq\n\nfrom codegeex.benchmark.utils import read_dataset, process_extra_prompt\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.inference import run_generation_distributed, model_provider\nfrom codegeex.megatron.initialize import initialize_megatron\nfrom codegeex.quantization import quantize\n\nlogging.getLogger(\"torch\").setLevel(logging.WARNING)\n\n\ndef add_code_generation_args(parser):\n    \"\"\"Code generation arguments.\"\"\"\n    group = parser.add_argument_group(title=\"code generation\")\n\n    group.add_argument(\n        \"--hostfile\",\n        type=str,\n        default=\"./hostfile\",\n    )\n    group.add_argument(\n        \"--channel-ip\",\n        type=str,\n        default=None,\n        help=\"IP for ZeroMQ channel\",\n    )\n    group.add_argument(\n        \"--channel-port\",\n        type=int,\n        default=5555,\n        help=\"Port for ZeroMQ channel\",\n    )\n    group.add_argument(\n        \"--master-port\",\n        type=int,\n        default=6666,\n        help=\"Port for torch distributed\",\n    )\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=1024,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--input-path\",\n        type=str,\n        default=\"./benchmark/humaneval/HumanEval.jsonl\",\n        help=\"Get input path\",\n    )\n    group.add_argument(\n        \"--num-samples\",\n        type=int,\n        default=0,\n        help=\"Number of samples to generate\",\n    )\n    group.add_argument(\n        \"--recompute\",\n        action=\"store_true\",\n        help=\"During generation recompute all attention \"\n             \"instead of using previously computed keys/values.\",\n    )\n    group.add_argument(\n        \"--load-deepspeed\",\n        action=\"store_true\",\n        help=\"Load DeepSpeed checkpoint\",\n    )\n    group.add_argument(\n        \"--ws-encoding-start-id\",\n        type=int,\n        default=None,\n        help=\"Start id for whitespace encoding\",\n    )\n    group.add_argument(\n        \"--ws-encoding-length\",\n        type=int,\n        default=None,\n        help=\"Length of whitespace encoding\",\n    )\n    group.add_argument(\n        \"--dataset\",\n        type=str,\n        default=\"humaneval\",\n    )\n    group.add_argument(\n        \"--samples-per-problem\",\n        type=int,\n        default=200,\n        help=\"Number of samples to generate for each problem\",\n    )\n    group.add_argument(\n        \"--output-prefix\",\n        type=str,\n        default=\"./output/humaneval\",\n        help=\"Prefix for output files\",\n    )\n    group.add_argument(\n        \"--gen-node-rank\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--gen-node-world-size\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--gen-world-size\",\n        type=int,\n        default=1,\n        help=\"Number of machines to use for generation\",\n    )\n    group.add_argument(\n        \"--gen-rank\",\n        type=int,\n        default=0,\n        help=\"Machine rank for human eval generation\",\n    )\n    group.add_argument(\n        \"--extra-prompt\",\n        type=str,\n        default=None,\n        help=\"Extra prompt to use for human eval generation\",\n    )\n    group.add_argument(\n        \"--verbose-interval\",\n        type=int,\n        default=100,\n    )\n    group.add_argument(\n        \"--problem-split\",\n        type=str,\n        default=\"test\",\n    )\n    group.add_argument(\n        \"--prompt-type\",\n        type=str,\n        default=\"notag\",\n    )\n    group.add_argument(\n        \"--num-devices-per-node\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--return-scores\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--language-type',\n        default=None,\n        help='Identify the type of programming language to generate',\n    )\n    group.add_argument(\n        '--bad-ids',\n        nargs=\"*\",\n        type=int,\n        default=None,\n        help='Specify bad ids that will not be used',\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n    \n    return parser\n\n\ndef main(node_rank: int, local_rank: int, master_port: int, num_devices: int):\n    \"\"\"Main program.\"\"\"\n    os.environ[\"WORLD_SIZE\"] = str(num_devices)\n    os.environ[\"RANK\"] = str(local_rank)\n    os.environ[\"MASTER_ADDR\"] = \"0.0.0.0\"\n    os.environ[\"MASTER_PORT\"] = f\"{master_port}\"\n\n    initialize_megatron(\n        extra_args_provider=add_code_generation_args,\n        args_defaults={\n            \"tokenizer_type\": \"GPT2BPETokenizer\",\n            \"no_load_rng\"   : True,\n            \"no_load_optim\" : True,\n        },\n    )\n\n    # set_random_seed(node_rank * num_devices + local_rank)\n    args = get_args()\n    if args.num_layers_per_virtual_pipeline_stage is not None:\n        print(\"Interleaved pipeline schedule is not yet supported for text generation.\")\n        exit()\n\n    world_size = args.gen_node_world_size * num_devices\n    args.gen_rank = num_devices * node_rank + local_rank\n    args.gen_world_size = world_size\n    print(f\"Generating on rank {args.gen_rank} of {args.gen_world_size}\")\n\n    # Set up model and load checkpoint.\n    state_dict = torch.load(args.load, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider()\n    model.load_state_dict(state_dict)\n    model.eval()\n    if args.fp16 and args.ln_fp16:\n        model.half()\n    if args.quantize:\n        model = quantize(model, weight_bit_width=8, backend=\"megatron\")\n    model.cuda()\n\n    # Generate samples.\n    run_generation_distributed(model)\n\n    print(f\"(gen_rank={args.gen_rank}, rank={local_rank}) finished, waiting ...\")\n    torch.distributed.barrier()\n\n\ndef server():\n    print(f\"[ server ] starting ...\", flush=True)\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"--channel-ip\",\n        type=str,\n        default=None,\n        help=\"IP for ZeroMQ channel\",\n    )\n    parser.add_argument(\n        \"--channel-port\",\n        type=int,\n        default=5555,\n        help=\"Port for ZeroMQ channel\",\n    )\n    parser.add_argument(\n        \"--master-port\",\n        type=int,\n        default=6666,\n        help=\"Port for torch distributed\",\n    )\n    parser.add_argument(\n        \"--samples-per-problem\",\n        type=int,\n        default=200,\n        help=\"Number of samples to generate for each problem\",\n    )\n    parser.add_argument(\n        \"--gen-node-world-size\",\n        type=int,\n        default=1,\n        help=\"Number of machines to use for generation\",\n    )\n    parser.add_argument(\n        \"--input-path\",\n        type=str,\n        default=\"\",\n        help=\"Get input path\",\n    )\n    parser.add_argument(\n        \"--problem-split\",\n        type=str,\n        default=\"test\",\n    )\n    parser.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    parser.add_argument(\n        '--language-type',\n        default=None,\n        help='Identify the type of programming language to generate',\n    )\n\n    args = parser.parse_known_args()[0]\n    entries = read_dataset(args.input_path, dataset_type=\"humaneval\")\n\n    assert args.samples_per_problem % args.micro_batch_size == 0, \"samples_per_problem should be divisible by micro_batch_size\"\n\n    for entry in entries.values():\n        entry[\"prompt\"] = process_extra_prompt(entry[\"prompt\"], args.language_type)\n\n    res = []\n    for entry in entries.values():\n        res.extend([entry] * (args.samples_per_problem // args.micro_batch_size))\n    random.shuffle(res)\n    all_entries = res\n\n    # setup zeromq channel\n    print(f\"[ server ] starting up on port {args.channel_port}\", flush=True)\n    context = zmq.Context()\n    print(f\"[ server ] creating socket\", flush=True)\n    socket = context.socket(zmq.REP)\n    print(f\"[ server ] binding to port {args.channel_port}\", flush=True)\n    socket.bind(f\"tcp://*:{args.channel_port}\")\n\n    print(\n        f\"[ server ] loaded {len(entries)} entries, generated {len(all_entries)} samples\",\n        flush=True,\n    )\n\n    remaining_entries = all_entries.copy()\n    running_workers = args.gen_node_world_size * torch.cuda.device_count()\n    num_finished = 0\n\n    print(f\"[ server ] listening for requests ...\", flush=True)\n    start_time = time.perf_counter()\n    while True:\n        # Wait for next request from client\n        msg = socket.recv_json()\n        rank = msg[\"rank\"]\n        action = msg[\"action\"]\n\n        if action == \"pull\":\n            if len(remaining_entries) == 0:\n                print(f\"[ server ] Shutting down worker {rank}\", flush=True)\n                socket.send_json({\"task_id\": None})\n                running_workers -= 1\n                if running_workers == 0:\n                    print(f\"[ server ] All workers finished\", flush=True)\n                    break\n            else:\n                entry = remaining_entries.pop()\n                time_elapsed = time.perf_counter() - start_time\n                print(f\"[ server ] Sending entry {entry['task_id']} to worker {rank}\", flush=True)\n                remaining = (\n                        len(remaining_entries)\n                        / (len(all_entries) - len(remaining_entries))\n                        * time_elapsed\n                )\n                time_per_sampple = 0.0 if num_finished == 0 else time_elapsed / num_finished / args.micro_batch_size\n                print(\n                    f\"[ server ] total {len(all_entries)}, assigned {len(all_entries) - len(remaining_entries)}, \"\n                    f\"finished {num_finished}, \"\n                    f\"elapsed {time_elapsed:.4f}\",\n                    f\"speed {time_per_sampple:.4f}s/sample\",\n                    f\"remaining {remaining:.4f}\",\n                    flush=True,\n                )\n                socket.send_json({\"task_id\": entry})\n        else:\n            if action == \"success\":\n                print(f\"[ server ] {msg['task_id']} is finished\", flush=True)\n                socket.send_json({\"pong\": 1})\n            else:\n                print(f\"[ server ] {msg['task_id']} is not finished\", flush=True)\n                remaining_entries.append(msg['task_id'])\n                socket.send_json({\"pong\": 1})\n                break\n\n            num_finished += 1\n\n\nif __name__ == \"__main__\":\n    torch.multiprocessing.set_start_method(\"spawn\")\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"--hostfile\",\n        type=str,\n        default=\"./hostfile\",\n    )\n    parser.add_argument(\n        \"--master-port\",\n        type=int,\n        default=5666,\n    )\n    parser.add_argument(\n        \"--seed\",\n        type=int,\n        default=42,\n    )\n    args = parser.parse_known_args()[0]\n\n    print(\"start method: \" + torch.multiprocessing.get_start_method())\n\n    processes = []\n    num_devices = torch.cuda.device_count()\n\n    hosts = open(args.hostfile, \"r\").readlines()\n    hosts = [host.strip() for host in hosts]\n    master_port = args.master_port\n\n    node_rank = None\n    for i in range(len(hosts)):\n        if hosts[i] == socket.gethostbyname(socket.gethostname()):\n            node_rank = i\n            break\n    assert (\n            node_rank is not None\n    ), f\"Could not find hostname ({socket.gethostbyname(socket.gethostname())}) in hostlist\"\n\n    # launch server\n    if socket.gethostbyname(socket.gethostname()) == hosts[0]:\n        server_process = torch.multiprocessing.Process(target=server)\n        print(f\"Launching server ...\")\n        server_process.start()\n        processes.append(server_process)\n\n    for i in range(num_devices):\n        local_rank = i\n        print(f\"launching local rank {i}\")\n\n        p = torch.multiprocessing.Process(\n            target=main,\n            args=(node_rank, local_rank, master_port, num_devices),\n        )\n        p.start()\n        processes.append(p)\n\n    for p in processes:\n        p.join()\n"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/go/evaluation/go.mod",
    "content": "module humanEval\n\ngo 1.18\n\nrequire (\n\tgithub.com/go-openapi/inflect v0.19.0\n\tgithub.com/stretchr/testify v1.8.0\n)\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.1 // indirect\n\tgithub.com/pmezard/go-difflib v1.0.0 // indirect\n\tgopkg.in/yaml.v3 v3.0.1 // indirect\n)\n"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/go/evaluation/go.sum",
    "content": "github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/go-openapi/inflect v0.19.0 h1:9jCH9scKIbHeV9m12SmPilScz6krDxKRasNNSNPXu/4=\ngithub.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=\ngithub.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=\ngithub.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\ngopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=\ngopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\n"
  },
  {
    "path": "codegeex/benchmark/humaneval-x/translate_humaneval_x.py",
    "content": "import os\nimport zmq\nimport time\nimport torch\nimport random\nimport socket\nimport logging\nimport argparse\n\nfrom typing import *\nfrom codegeex.benchmark.utils import read_translation_dataset\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.inference import run_generation_distributed, model_provider\nfrom codegeex.megatron.initialize import initialize_megatron\n\nlogging.getLogger(\"torch\").setLevel(logging.WARNING)\n\n\ndef add_code_generate_args(parser):\n    \"\"\"Code generation arguments.\"\"\"\n    group = parser.add_argument_group(title=\"code generation\")\n\n    group.add_argument(\n        \"--hostfile\",\n        type=str,\n        default=\"./hostfile\",\n    )\n    group.add_argument(\n        \"--channel-ip\",\n        type=str,\n        default=None,\n        help=\"IP for ZeroMQ channel\",\n    )\n    group.add_argument(\n        \"--channel-port\",\n        type=int,\n        default=5555,\n        help=\"Port for ZeroMQ channel\",\n    )\n    group.add_argument(\n        \"--master-port\",\n        type=int,\n        default=5666,\n    )\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=1024,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--input-path\",\n        type=str,\n        default=\"./benchmark/humaneval/HumanEval.jsonl\",\n        help=\"Get input path\",\n    )\n    group.add_argument(\n        \"--num-samples\",\n        type=int,\n        default=0,\n        help=\"Number of samples to generate\",\n    )\n    group.add_argument(\n        \"--recompute\",\n        action=\"store_true\",\n        help=\"During generation recompute all attention \"\n             \"instead of using previously computed keys/values.\",\n    )\n    group.add_argument(\n        \"--load-deepspeed\",\n        action=\"store_true\",\n        help=\"Load DeepSpeed checkpoint\",\n    )\n    group.add_argument(\n        \"--ws-encoding-start-id\",\n        type=int,\n        default=None,\n        help=\"Start id for whitespace encoding\",\n    )\n    group.add_argument(\n        \"--ws-encoding-length\",\n        type=int,\n        default=None,\n        help=\"Length of whitespace encoding\",\n    )\n    group.add_argument(\n        \"--dataset\",\n        type=str,\n        default=\"humaneval\",\n    )\n    group.add_argument(\n        \"--samples-per-problem\",\n        type=int,\n        default=200,\n        help=\"Number of samples to generate for each problem\",\n    )\n    group.add_argument(\n        \"--output-prefix\",\n        type=str,\n        default=\"./output/humaneval\",\n        help=\"Prefix for output files\",\n    )\n    group.add_argument(\n        \"--gen-node-rank\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--gen-node-world-size\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--gen-world-size\",\n        type=int,\n        default=1,\n        help=\"Number of machines to use for generation\",\n    )\n    group.add_argument(\n        \"--gen-rank\",\n        type=int,\n        default=0,\n        help=\"Machine rank for human eval generation\",\n    )\n    group.add_argument(\n        \"--extra-prompt\",\n        type=str,\n        default=None,\n        help=\"Extra prompt to use for human eval generation\",\n    )\n    group.add_argument(\n        \"--verbose-interval\",\n        type=int,\n        default=100,\n    )\n    group.add_argument(\n        \"--problem-split\",\n        type=str,\n        default=\"test\",\n    )\n    group.add_argument(\n        \"--prompt-type\",\n        type=str,\n        default=\"notag\",\n    )\n    group.add_argument(\n        \"--num-devices-per-node\",\n        type=int,\n        default=None,\n    )\n    group.add_argument(\n        \"--return-scores\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        \"--free-guidance\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        \"--guide-temp\",\n        type=float,\n        default=1.5,\n    )\n    group.add_argument(\n        \"--attention-upweight\",\n        type=float,\n        default=None,\n    )\n    group.add_argument(\n        '--bad-ids',\n        nargs=\"*\",\n        type=int,\n        default=None,\n        help='Identify the type of programming language to generate',\n    )\n    group.add_argument(\n        \"--src-path\",\n        type=str,\n        default=\"\",\n        help=\"Get source path\",\n    )\n    group.add_argument(\n        \"--tgt-path\",\n        type=str,\n        default=\"\",\n        help=\"Get target path\",\n    )\n    group.add_argument(\n        '--language-src-type',\n        type=str,\n        default=None,\n        help='Identify the type of programming language',\n    )\n    group.add_argument(\n        '--language-tgt-type',\n        type=str,\n        default=None,\n        help='Identify the type of programming language to translate',\n    )\n\n    return parser\n\n\ndef main(node_rank: int, local_rank: int, master_port: int, num_devices: int):\n    \"\"\"Main program.\"\"\"\n    os.environ[\"WORLD_SIZE\"] = str(num_devices)\n    os.environ[\"RANK\"] = str(local_rank)\n    os.environ[\"MASTER_ADDR\"] = \"0.0.0.0\"\n    os.environ[\"MASTER_PORT\"] = f\"{master_port}\"\n\n    initialize_megatron(\n        extra_args_provider=add_code_generate_args,\n        args_defaults={\n            \"tokenizer_type\": \"GPT2BPETokenizer\",\n            \"no_load_rng\"   : True,\n            \"no_load_optim\" : True,\n        },\n    )\n\n    # set_random_seed(node_rank * num_devices + local_rank)\n    args = get_args()\n    if args.num_layers_per_virtual_pipeline_stage is not None:\n        print(\"Interleaved pipeline schedule is not yet supported for text generation.\")\n        exit()\n\n    world_size = args.gen_node_world_size * num_devices\n    args.gen_rank = num_devices * node_rank + local_rank\n    args.gen_world_size = world_size\n    print(f\"Generating on rank {args.gen_rank} of {args.gen_world_size}\")\n\n    # Set up model and load checkpoint.\n    state_dict = torch.load(args.load, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider()\n    model.load_state_dict(state_dict)\n    model.eval()\n    if args.fp16 and args.ln_fp16:\n        model.half()\n    model.cuda()\n\n    # Generate samples.\n    run_generation_distributed(model)\n\n    print(f\"(gen_rank={args.gen_rank}, rank={local_rank}) finished, waiting ...\")\n    torch.distributed.barrier()\n\n\ndef server():\n    print(f\"[ server ] starting ...\", flush=True)\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"--channel-ip\",\n        type=str,\n        default=None,\n        help=\"IP for ZeroMQ channel\",\n    )\n    parser.add_argument(\n        \"--channel-port\",\n        type=int,\n        default=5555,\n        help=\"Port for ZeroMQ channel\",\n    )\n    parser.add_argument(\n        \"--master-port\",\n        type=int,\n        default=6666,\n        help=\"Port for torch distributed\",\n    )\n    parser.add_argument(\n        \"--samples-per-problem\",\n        type=int,\n        default=200,\n        help=\"Number of samples to generate for each problem\",\n    )\n    parser.add_argument(\n        \"--gen-node-world-size\",\n        type=int,\n        default=1,\n        help=\"Number of machines to use for generation\",\n    )\n    parser.add_argument(\n        \"--src-path\",\n        type=str,\n        default=\"\",\n        help=\"Get source path\",\n    )\n    parser.add_argument(\n        \"--tgt-path\",\n        type=str,\n        default=\"\",\n        help=\"Get target path\",\n    )\n    parser.add_argument(\n        \"--problem-split\",\n        type=str,\n        default=\"test\",\n    )\n    parser.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    parser.add_argument(\n        '--language-src-type',\n        type=str,\n        default=None,\n        help='Identify the type of programming language',\n    )\n    parser.add_argument(\n        '--language-tgt-type',\n        type=str,\n        default=None,\n        help='Identify the type of programming language to translate',\n    )\n\n    args = parser.parse_known_args()[0]\n\n    entries = read_translation_dataset(args.src_path,\n                                       args.tgt_path,\n                                       lang_src=args.language_src_type,\n                                       lang_tgt=args.language_tgt_type,\n                                       dataset_type=\"humaneval\")\n\n    assert args.samples_per_problem % args.micro_batch_size == 0, \"samples_per_problem should be divisible by micro_batch_size\"\n\n    res = []\n    for entry in entries.values():\n        res.extend([entry] * (args.samples_per_problem // args.micro_batch_size))\n    random.shuffle(res)\n    all_entries = res\n\n    # setup zeromq channel\n    print(f\"[ server ] starting up on port {args.channel_port}\", flush=True)\n    context = zmq.Context()\n    print(f\"[ server ] creating socket\", flush=True)\n    socket = context.socket(zmq.REP)\n    print(f\"[ server ] binding to port {args.channel_port}\", flush=True)\n    socket.bind(f\"tcp://*:{args.channel_port}\")\n\n    print(\n        f\"[ server ] loaded {len(entries)} entries, generated {len(all_entries)} samples\",\n        flush=True,\n    )\n\n    remaining_entries = all_entries.copy()\n    running_workers = args.gen_node_world_size * torch.cuda.device_count()\n    num_finished = 0\n\n    print(f\"[ server ] listening for requests ...\", flush=True)\n    start_time = time.perf_counter()\n    while True:\n        # Wait for next request from client\n        msg = socket.recv_json()\n        rank = msg[\"rank\"]\n        action = msg[\"action\"]\n\n        if action == \"pull\":\n            if len(remaining_entries) == 0:\n                print(f\"[ server ] Shutting down worker {rank}\", flush=True)\n                socket.send_json({\"task_id\": None})\n                running_workers -= 1\n                if running_workers == 0:\n                    print(f\"[ server ] All workers finished\", flush=True)\n                    break\n            else:\n                entry = remaining_entries.pop()\n                time_elapsed = time.perf_counter() - start_time\n                print(f\"[ server ] Sending entry {entry['task_id']} to worker {rank}\", flush=True)\n                remaining = (\n                        len(remaining_entries)\n                        / (len(all_entries) - len(remaining_entries))\n                        * time_elapsed\n                )\n                time_per_sampple = 0.0 if num_finished == 0 else time_elapsed / num_finished / args.micro_batch_size\n                print(\n                    f\"[ server ] total {len(all_entries)}, assigned {len(all_entries) - len(remaining_entries)}, \"\n                    f\"finished {num_finished}, \"\n                    f\"elapsed {time_elapsed:.4f}\",\n                    f\"speed {time_per_sampple:.4f}s/sample\",\n                    f\"remaining {remaining:.4f}\",\n                    flush=True,\n                )\n                socket.send_json({\"task_id\": entry})\n        else:\n            if action == \"success\":\n                print(f\"[ server ] {msg['task_id']} is finished\", flush=True)\n                socket.send_json({\"pong\": 1})\n            else:\n                print(f\"[ server ] {msg['task_id']} is not finished\", flush=True)\n                remaining_entries.append(msg['task_id'])\n                socket.send_json({\"pong\": 1})\n                break\n\n            num_finished += 1\n\n\nif __name__ == \"__main__\":\n    torch.multiprocessing.set_start_method(\"spawn\")\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"--hostfile\",\n        type=str,\n        default=\"./hostfile\",\n    )\n    parser.add_argument(\n        \"--master-port\",\n        type=int,\n        default=5666,\n    )\n    parser.add_argument(\n        \"--seed\",\n        type=int,\n        default=42,\n    )\n    args = parser.parse_known_args()[0]\n\n    print(\"start method: \" + torch.multiprocessing.get_start_method())\n\n    processes = []\n    num_devices = torch.cuda.device_count()\n\n    hosts = open(args.hostfile, \"r\").readlines()\n    hosts = [host.strip() for host in hosts]\n    master_port = args.master_port\n\n    node_rank = None\n    for i in range(len(hosts)):\n        if hosts[i] == socket.gethostbyname(socket.gethostname()):\n            node_rank = i\n            break\n    assert (\n            node_rank is not None\n    ), f\"Could not find hostname ({socket.gethostbyname(socket.gethostname())}) in hostlist\"\n\n    # launch server\n    if socket.gethostbyname(socket.gethostname()) == hosts[0]:\n        server_process = torch.multiprocessing.Process(target=server)\n        print(f\"Launching server ...\")\n        server_process.start()\n        processes.append(server_process)\n\n    for i in range(num_devices):\n        local_rank = i\n        print(f\"launching local rank {i}\")\n\n        p = torch.multiprocessing.Process(\n            target=main,\n            args=(node_rank, local_rank, master_port, num_devices),\n        )\n        p.start()\n        processes.append(p)\n\n    for p in processes:\n        p.join()\n"
  },
  {
    "path": "codegeex/benchmark/inspect_result.py",
    "content": "import os\nimport sys\nimport fire\nimport json\nimport glob\nimport numpy as np\nimport pandas as pd\n\nfrom collections import defaultdict\nfrom codegeex.benchmark.metric import estimate_pass_at_k\n\nerror_types = {\n    \"python\"    : [\n        \"accepted\",\n        \"assertion error\",\n        \"undefined error\",\n        \"runtime error\",\n        \"syntax error\",\n        \"timeout error\",\n        \"type error\",\n    ],\n    \"java\"      : [\n        \"accepted\",\n        \"compilation error\",\n        \"assertion error\",\n        \"timeout error\",\n        \"index error\",\n        \"class cast error\",\n        \"stack overflow\",\n        \"null pointer error\",\n        \"unsupported operation\",\n        \"number format error\",\n        \"no such element\",\n        \"illegal argument\",\n        \"out of memory\",\n        \"arithmetic error\",\n        \"others\",\n    ],\n    \"cpp\"       : [\n        \"accepted\",\n        \"compilation error\",\n        \"assertion error\",\n        \"range error\",\n        \"invalid argument\",\n        \"pointer error\",\n        \"out of memory\",\n        \"package error\",\n        \"others\",\n    ],\n    \"javascript\": [\n        \"accepted\",\n        \"assertion error\",\n        \"undefined error\",\n        \"runtime error\",\n        \"syntax error\",\n        \"timeout error\",\n        \"range error\",\n        \"type error\",\n    ],\n    \"go\"        : [\n        \"accepted\",\n        \"assertion error\",\n        \"undefined error\",\n        \"runtime error\",\n        \"syntax error\",\n        \"timeout error\",\n        \"type error\",\n        \"notused error\",\n    ],\n}\n\n\ndef inspect_result(\n        input_dir: str = None,\n        input_file: str = None,\n        output_dir: str = None,\n        pass_at_k_outpath: str = None,\n):\n    if input_dir is not None:\n        input_files = glob.glob(input_dir + \"/*_results.jsonl\")\n    else:\n        input_files = [input_file]\n\n    if output_dir is not None:\n        if not os.path.exists(output_dir):\n            os.makedirs(output_dir)\n    else:\n        output_dir = \"/\"\n\n    pass_at_k_outs = []\n    for input_file in input_files:\n        result_stats = defaultdict(dict)\n        df = None\n        incompleted = False\n        with open(input_file, \"r\") as f:\n            for i, line in enumerate(f):\n                obj = json.loads(line)\n                task_id = obj[\"task_id\"]\n                language_type = task_id.split(\"/\")[0].lower()\n                if language_type not in error_types:\n                    if language_type == \"humaneval\":\n                        language_type = \"python\"\n                    elif language_type == \"C++\":\n                        language_type = \"cpp\"\n                    else:\n                        incompleted = True\n                        break\n                if task_id not in result_stats.keys():\n                    default_stats = {}\n                    default_stats[\"task_id\"] = task_id\n                    default_stats[\"n_sample\"] = 0\n                    for k in error_types[language_type]:\n                        default_stats[k] = 0\n\n                    result_stats[task_id] = default_stats.copy()\n                if df is None:\n                    df = pd.DataFrame(columns=error_types[language_type])\n                result_stats[task_id][\"n_sample\"] += 1\n\n                if \"failed\" in obj[\"result\"]:\n                    error = obj[\"result\"]\n                    if language_type == \"python\":\n                        if \"assertionerror\" in error.lower():\n                            result_stats[task_id][\"assertion error\"] += 1\n                        elif \"syntax\" in error.lower() or \"indent\" in error.lower() or \"literal\" in error.lower():\n                            result_stats[task_id][\"syntax error\"] += 1\n                        elif \"not defined\" in error.lower():\n                            result_stats[task_id][\"undefined error\"] += 1\n                        elif \"timeout\" in error.lower():\n                            result_stats[task_id][\"timeout error\"] += 1\n                        elif \"type\" in error.lower():\n                            result_stats[task_id][\"type error\"] += 1\n                        else:\n                            result_stats[task_id][\"runtime error\"] += 1\n\n                    elif language_type == \"java\":\n                        if \"wrong answer\" in error:\n                            result_stats[task_id][\"assertion error\"] += 1\n                        elif \"compilation error\" in error:\n                            result_stats[task_id][\"compilation error\"] += 1\n                        elif \"time out\" in error:\n                            result_stats[task_id][\"timeout error\"] += 1\n                        elif \"IndexOutOfBounds\" in error:\n                            result_stats[task_id][\"index error\"] += 1\n                        elif \"UnsupportedOperation\" in error:\n                            result_stats[task_id][\"unsupported operation\"] += 1\n                        elif \"ClassCast\" in error:\n                            result_stats[task_id][\"class cast error\"] += 1\n                        elif \"NullPointer\" in error:\n                            result_stats[task_id][\"null pointer error\"] += 1\n                        elif \"NumberFormat\" in error:\n                            result_stats[task_id][\"number format error\"] += 1\n                        elif \"NoSuchElement\" in error:\n                            result_stats[task_id][\"no such element\"] += 1\n                        elif \"StackOverflow\" in error:\n                            result_stats[task_id][\"stack overflow\"] += 1\n                        elif \"Arithmetic\" in error:\n                            result_stats[task_id][\"arithmetic error\"] += 1\n                        elif \"OutOfMemory\" in error:\n                            result_stats[task_id][\"out of memory\"] += 1\n                        elif \"IllegalArgument\" in error:\n                            result_stats[task_id][\"illegal argument\"] += 1\n                        else:\n                            result_stats[task_id][\"others\"] += 1\n\n                    elif language_type == \"cpp\":\n                        if \"compilation error\" in error.lower():\n                            result_stats[task_id][\"compilation error\"] += 1\n                        elif \"int main(): assertion\" in error.lower():\n                            result_stats[task_id][\"assertion error\"] += 1\n                        elif \"out_of_range\" in error.lower():\n                            result_stats[task_id]['range error'] += 1\n                        elif \"corrupted top size\" in error.lower():\n                            result_stats[task_id]['range error'] += 1\n                        elif \"length_error\" in error.lower():\n                            result_stats[task_id]['range error'] += 1\n                        elif \"invalid_argument\" in error.lower():\n                            result_stats[task_id]['invalid argument'] += 1\n                        elif \"invalid pointer\" in error.lower():\n                            result_stats[task_id]['pointer error'] += 1\n                        elif \"double free\" in error.lower():\n                            result_stats[task_id]['pointer error'] += 1\n                        elif \"free()\" in error.lower():\n                            result_stats[task_id]['pointer error'] += 1\n                        elif \"logic_error\" in error.lower():\n                            result_stats[task_id]['pointer error'] += 1\n                        elif \"sysmalloc: assertion\" in error.lower():\n                            result_stats[task_id]['pointer error'] += 1\n                        elif \"stack smashing\" in error.lower():\n                            result_stats[task_id]['out of memory'] += 1\n                        elif \"bad_alloc\" in error.lower():\n                            result_stats[task_id]['out of memory'] += 1\n                        elif \"terminate called after throwing an instance of\" in error.lower():\n                            result_stats[task_id]['package error'] += 1\n                        else:\n                            result_stats[task_id][\"others\"] += 1\n\n                    elif language_type == \"javascript\":\n                        if \"Assertion failed\" in error:\n                            result_stats[task_id][\"assertion error\"] += 1\n                        elif \"SyntaxError\" in error:\n                            result_stats[task_id][\"syntax error\"] += 1\n                        elif \"ReferenceError\" in error:\n                            result_stats[task_id][\"undefined error\"] += 1\n                        elif \"timed out\" in error:\n                            result_stats[task_id][\"timeout error\"] += 1\n                        elif \"TypeError\" in error:\n                            result_stats[task_id][\"type error\"] += 1\n                        elif \"RangeError\" in error:\n                            result_stats[task_id][\"range error\"] += 1\n                        else:\n                            result_stats[task_id][\"runtime error\"] += 1\n\n                    elif language_type == \"go\":\n                        if \"Error:      \\tNot equal:\" in error:\n                            result_stats[task_id][\"assertion error\"] += 1\n                        elif \"undefined\" in error:\n                            result_stats[task_id][\"undefined error\"] += 1\n                        elif \"expected\" in error and \"found\" in error:\n                            result_stats[task_id][\"syntax error\"] += 1\n                        elif \"illegal\" in error:\n                            result_stats[task_id][\"syntax error\"] += 1\n                        elif \"unexpected\" in error:\n                            result_stats[task_id][\"syntax error\"] += 1\n                        elif \"FAIL\" in error:\n                            result_stats[task_id][\"runtime error\"] += 1\n                        elif \"timed out\" in error:\n                            result_stats[task_id][\"timeout error\"] += 1\n                        elif \"not used\" in error:\n                            result_stats[task_id]['notused error'] += 1\n                        elif \"type\" in error:\n                            result_stats[task_id]['type error'] += 1\n                    else:\n                        incompleted = True\n                        break\n                else:\n                    if obj[\"passed\"]:\n                        result_stats[task_id][\"accepted\"] += 1\n\n        if incompleted:\n            print(f\"Language not supported, aborted. {input_file}\")\n        else:\n            try:\n                total, correct = [], []\n                for k, res in result_stats.items():\n                    total.append(res[\"n_sample\"])\n                    correct.append(res[\"accepted\"])\n                    df_res = pd.DataFrame(res, index=[int(k.split(\"/\")[-1])])\n                    df = pd.concat([df, df_res], axis=0)\n\n                total = np.array(total)\n                correct = np.array(correct)\n\n                ks = [1, 10, 100, 1000]\n                pass_at_k = {f\"pass@{k}\": estimate_pass_at_k(total, correct, k).mean()\n                            for k in ks if (total >= k).all()}\n\n                print(pass_at_k)\n                pass_at_k[\"file\"] = input_file\n                pass_at_k[\"n\"] = res[\"n_sample\"]\n                pass_at_k_outs.append(pass_at_k)\n\n                output_prefix = input_file.split(\"/\")[-1].split(\".jsonl\")[0]\n                output_file = os.path.join(output_dir, output_prefix + \"_stats.xlsx\")\n                df = df.sort_index(ascending=True)\n                df.to_excel(output_file)\n\n                print(f\"Stats saved in {output_file}\")\n            except Exception as e:\n                print(e)\n                print(f\"Data incompleted, aborted. {input_file}\")\n                \n    if pass_at_k_outpath is not None:\n        jsonl_path = os.path.join(output_dir, pass_at_k_outpath)\n        with open(jsonl_path, \"w\") as f_out:\n            for p in pass_at_k_outs:\n                f_out.write(json.dumps(p) + \"\\n\")\n        print(f\"Pass at k saved in {jsonl_path}\")\n\n\ndef main():\n    fire.Fire(inspect_result)\n\n\nif __name__ == \"__main__\":\n    sys.exit(main())\n"
  },
  {
    "path": "codegeex/benchmark/metric.py",
    "content": "# Copyright (c) OpenAI (https://openai.com)\n\n# Permission is hereby granted, free of charge, to any person obtaining a copy\n# of this software and associated documentation files (the \"Software\"), to deal\n# in the Software without restriction, including without limitation the rights\n# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n# copies of the Software, and to permit persons to whom the Software is\n# furnished to do so, subject to the following conditions:\n\n# The above copyright notice and this permission notice shall be included in\n# all copies or substantial portions of the Software.\n\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n# THE SOFTWARE.\n# ============================================================================\nimport itertools\nimport numpy as np\n\nfrom typing import *\n\n\ndef estimate_pass_at_k(\n        num_samples: Union[int, List[int], np.ndarray],\n        num_correct: Union[List[int], np.ndarray],\n        k: int\n) -> np.ndarray:\n    \"\"\"\n    Estimates pass@k of each problem and returns them in an array.\n    \"\"\"\n\n    def estimator(n: int, c: int, k: int) -> float:\n        \"\"\"\n        Calculates 1 - comb(n - c, k) / comb(n, k).\n        \"\"\"\n        if n - c < k:\n            return 1.0\n        return 1.0 - np.prod(1.0 - k / np.arange(n - c + 1, n + 1))\n\n    if isinstance(num_samples, int):\n        num_samples_it = itertools.repeat(num_samples, len(num_correct))\n    else:\n        assert len(num_samples) == len(num_correct)\n        num_samples_it = iter(num_samples)\n\n    return np.array([estimator(int(n), int(c), k) for n, c in zip(num_samples_it, num_correct)])\n"
  },
  {
    "path": "codegeex/benchmark/rust/Cargo.toml",
    "content": "[package]\nname = \"rust\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html\n\n[dependencies]\nrand = \"0.4\"\nregex = \"1\"\nmd5 = \"0.7.0\"\n\n"
  },
  {
    "path": "codegeex/benchmark/utils.py",
    "content": "import os\nfrom typing import *\nfrom codegeex.data.data_utils import stream_jsonl, LANGUAGE_TAG\n\n\nIMPORT_HELPER = {\n    \"python\": [\n        \"import math\",\n        \"import re\",\n        \"import sys\",\n        \"import copy\",\n        \"import datetime\",\n        \"import itertools\",\n        \"import collections\",\n        \"import heapq\",\n        \"import statistics\",\n        \"import functools\",\n        \"import hashlib\",\n        \"import numpy\",\n        \"import numpy as np\",\n        \"import string\",\n        \"from typing import *\",\n        \"from collections import *\",\n    ],\n    \"go\"    : [\n        \"math\",\n        \"strings\",\n        \"fmt\",\n        \"strconv\",\n        \"time\",\n        \"bytes\",\n        \"regexp\",\n        \"sort\",\n        \"math/rand\",\n        \"crypto/md5\",\n    ],\n    \"cpp\"   : [\n        \"#include<stdlib.h>\",\n        \"#include<algorithm>\",\n        \"#include<math.h>\",\n        \"#include<stdio.h>\",\n        \"#include<vector>\",\n        \"#include<string>\",\n        \"#include<climits>\",\n        \"#include<cstring>\",\n        \"#include<iostream>\",\n    ],\n}\n\n\ndef read_dataset(\n    data_file: str = None,\n    dataset_type: str = \"humaneval\",\n    num_shot=None,\n) -> Dict:\n    if num_shot is not None:\n        print(f\"{num_shot}-shot setting...\")\n    if \"humaneval\" in dataset_type.lower():\n        if data_file is None:\n            current_path = os.path.dirname(os.path.abspath(__file__))\n            data_file = os.path.join(current_path, \"..\", \"humaneval-x\", \"python\", \"data\", \"humaneval_python.jsonl.gz\")\n        dataset = {task[\"task_id\"]: task for task in stream_jsonl(data_file)}\n    else:\n        raise f\"Dataset: {dataset_type} not supported.\"\n\n    return dataset\n\n\ndef read_translation_dataset(\n    data_file_src: str = None,\n    data_file_tgt: str = None,\n    lang_src: str = None,\n    lang_tgt: str = None,\n    dataset_type: str = \"humaneval\",\n) -> Dict:\n    if \"humaneval\" in dataset_type.lower():\n        dataset_src = {task[\"task_id\"]: task for task in stream_jsonl(data_file_src)}\n        dataset_tgt = {task[\"task_id\"].split(\"/\")[-1]: task for task in stream_jsonl(data_file_tgt)}\n        for k, sample in dataset_src.items():\n            prompt = \"code translation\\n\"\n            if lang_src == \"cpp\":\n                prompt += \"C++:\\n\"\n            elif lang_src == \"js\":\n                prompt += \"JavaScript:\\n\"\n            else:\n                prompt += f\"{lang_src}:\\n\".capitalize()\n            prompt += dataset_src[k][\"declaration\"] + \"\\n\" + dataset_src[k][\"canonical_solution\"].rstrip() + \"\\n\"\n            if lang_tgt == \"cpp\":\n                prompt += \"C++:\\n\"\n            elif lang_tgt == \"js\":\n                prompt += \"JavaScript:\\n\"\n            else:\n                prompt += f\"{lang_tgt}:\\n\".capitalize()\n            prompt += dataset_tgt[k.split(\"/\")[-1]][\"declaration\"]\n            dataset_src[k][\"prompt\"] = prompt\n    else:\n        raise f\"Dataset: {dataset_type} not supported.\"\n\n    return dataset_src\n\n\ndef process_extra_prompt(prompt: str, language_type: str = None) -> str:\n    \"\"\"\n    Processes the extra prompt.\n    \"\"\"\n    language = language_type.lower()\n    if language in LANGUAGE_TAG:\n        extra_prompt = LANGUAGE_TAG[language] + \"\\n\"\n    else:\n        extra_prompt = \"\"\n\n    return extra_prompt + prompt\n\n\ndef is_code_generation_finished(\n    code: str,\n    language_type: str = None,\n    dataset: str = None,\n):\n    \"\"\"\n    Checks whether the generated code is finished.\n    \"\"\"\n    if language_type is None or dataset is None:\n        return False\n\n    if \"humaneval\" in dataset.lower():\n        if language_type.lower() == \"python\":\n            for line in code.split(\"\\n\"):\n                if len(line.strip()) > 0 and line[0] != ' ' and line[0] != '\\t':\n                    return True\n            end_words = [\"\\ndef\", \"\\nclass\", \"\\nif\", \"\\n#\", \"\\nprint\"]\n            for w in end_words:\n                if w in code:\n                    return True\n        elif language_type.lower() == \"java\":\n            if code.count(\"{\") + 1 == code.count(\"}\"):\n                return True\n        elif language_type.lower() == \"go\":\n            if code.count(\"{\") + 1 == code.count(\"}\"):\n                return True\n        elif language_type.lower() == \"js\":\n            if code.count(\"{\") + 1 == code.count(\"}\"):\n                return True\n        elif language_type.lower() == \"cpp\":\n            if code.count(\"{\") + 1 == code.count(\"}\"):\n                return True\n\n    return False\n\n\ndef cleanup_code(\n    code: str,\n    language_type: str = None,\n    dataset: str = None,\n):\n    \"\"\"\n    Cleans up the generated code.\n    \"\"\"\n    if language_type is None or dataset is None:\n        return code\n\n    if \"humaneval\" in dataset.lower():\n        if language_type.lower() == \"python\":\n            end_words = [\"\\ndef\", \"\\nclass\", \"\\nif\", \"\\n#\", \"\\nprint\", \"\\nassert\"]\n            for w in end_words:\n                if w in code:\n                    code = code[:code.rfind(w)]\n        elif language_type.lower() == \"java\":\n            main_pos = code.find(\"public static void main\")\n            if main_pos != -1:\n                code = code[:main_pos] + '}'\n            if '}' in code:\n                code = code[:code.rfind('}')] + '}'\n            if code.count('{') + 1 == code.count('}'):\n                code += \"\\n}\"\n        elif language_type.lower() == \"go\":\n            end_words = [\"\\n//\", \"\\nfunc main(\"]\n            for w in end_words:\n                if w in code:\n                    code = code[:code.rfind(w)]\n            if '}' in code:\n                code = code[:code.rfind('}')] + '}'\n        elif language_type.lower() == \"cpp\":\n            if '}' in code:\n                code = code[:code.rfind('}')] + '}'\n        elif language_type.lower() == \"js\":\n            if '}' in code:\n                code = code[:code.rfind('}')] + '}'\n\n    return code\n"
  },
  {
    "path": "codegeex/data/__init__.py",
    "content": ""
  },
  {
    "path": "codegeex/data/data_utils.py",
    "content": "import os\nimport gzip\nimport json\n\nfrom typing import *\n\nLANGUAGE_TAG = {\n    \"c\"            : \"// language: C\",\n    \"c++\"          : \"// language: C++\",\n    \"cpp\"          : \"// language: C++\",\n    \"c#\"           : \"// language: C#\",\n    \"csharp\"       : \"// language: C#\",\n    \"css\"          : \"/* language: CSS */\",\n    \"cuda\"         : \"// language: Cuda\",\n    \"dart\"         : \"// language: Dart\",\n    \"lua\"          : \"// language: Lua\",\n    \"objectivec\"  : \"// language: Objective-C\",\n    \"objective-c\"  : \"// language: Objective-C\",\n    \"objective-c++\": \"// language: Objective-C++\",\n    \"python\"       : \"# language: Python\",\n    \"perl\"         : \"# language: Perl\",\n    \"prolog\"       : f\"% language: Prolog\",\n    \"swift\"        : \"// language: swift\",\n    \"lisp\"         : \"; language: Lisp\",\n    \"java\"         : \"// language: Java\",\n    \"scala\"        : \"// language: Scala\",\n    \"tex\"          : f\"% language: TeX\",\n    \"vue\"          : \"<!--language: Vue-->\",\n    \"markdown\"     : \"<!--language: Markdown-->\",\n    \"html\"         : \"<!--language: HTML-->\",\n    \"php\"          : \"// language: PHP\",\n    \"js\"           : \"// language: JavaScript\",\n    \"javascript\"   : \"// language: JavaScript\",\n    \"typescript\"   : \"// language: TypeScript\",\n    \"go\"           : \"// language: Go\",\n    \"shell\"        : \"# language: Shell\",\n    \"rust\"         : \"// language: Rust\",\n    \"sql\"          : \"-- language: SQL\",\n    \"kotlin\"       : \"// language: Kotlin\",\n    \"vb\"           : \"' language: Visual Basic\",\n    \"ruby\"         : \"# language: Ruby\",\n    \"pascal\"       : \"// language: Pascal\",\n    \"r\"            : \"# language: R\",\n    \"fortran\"      : \"!language: Fortran\",\n    \"lean\"         : \"-- language: Lean\",\n    \"matlab\"       : f\"% language: Matlab\",\n    \"delphi\"       : \"{language: Delphi}\",\n    \"scheme\"       : \"; language: Scheme\",\n    \"basic\"        : \"' language: Basic\",\n    \"assembly\"     : \"; language: Assembly\",\n    \"groovy\"       : \"// language: Groovy\",\n    \"abap\"         : \"* language: Abap\",\n    \"gdscript\"     : \"# language: GDScript\",\n    \"haskell\"      : \"-- language: Haskell\",\n    \"julia\"        : \"# language: Julia\",\n    \"elixir\"       : \"# language: Elixir\",\n    \"excel\"        : \"' language: Excel\",\n    \"clojure\"      : \"; language: Clojure\",\n    \"actionscript\" : \"// language: ActionScript\",\n    \"solidity\"     : \"// language: Solidity\",\n    \"powershell\"   : \"# language: PowerShell\",\n    \"erlang\"       : f\"% language: Erlang\",\n    \"cobol\"        : \"// language: Cobol\",\n}\n\n\ndef stream_jsonl(filename: str) -> Iterable[Dict]:\n    \"\"\"\n    Parses each jsonl line and yields it as a dictionary\n    \"\"\"\n    if filename.endswith(\".gz\"):\n        with open(filename, \"rb\") as gzfp:\n            with gzip.open(gzfp, \"rt\") as fp:\n                for line in fp:\n                    if any(not x.isspace() for x in line):\n                        yield json.loads(line)\n    else:\n        with open(filename, \"r\") as fp:\n            for line in fp:\n                if any(not x.isspace() for x in line):\n                    yield json.loads(line)\n\n\ndef write_jsonl(filename: str, data: Iterable[Dict], append: bool = False):\n    \"\"\"\n    Writes an iterable of dictionaries to jsonl\n    \"\"\"\n    if append:\n        mode = \"ab\"\n    else:\n        mode = \"wb\"\n    filename = os.path.expanduser(filename)\n    if filename.endswith(\".gz\"):\n        with open(filename, mode) as fp:\n            with gzip.GzipFile(fileobj=fp, mode=\"wb\") as gzfp:\n                for x in data:\n                    gzfp.write((json.dumps(x) + \"\\n\").encode(\"utf-8\"))\n    else:\n        with open(filename, mode) as fp:\n            for x in data:\n                fp.write((json.dumps(x) + \"\\n\").encode(\"utf-8\"))\n                \n                \ndef sliding_window(\n    prompt_tokens: list, \n    code_tokens: list, \n    seq_len: int, \n    sliding_stride: int, \n    minimum_code_len: int = 1,\n) -> Iterable[Tuple[list, list]]:\n    \"\"\"\n    Generate a series of (prompt, code) pairs by sliding the window over the code.\n    \"\"\"\n    prompt_len = len(prompt_tokens)\n    code_len = len(code_tokens)\n    total_len = prompt_len + code_len\n\n    start_idx = max(0, prompt_len - seq_len + minimum_code_len)  # at least `minimum_code_len` code token should be in the window\n    end_idx = max(0, total_len - seq_len)\n    start_idx = min(start_idx, end_idx)\n\n    for i in range(start_idx, end_idx + 1, sliding_stride):\n        current_prompt = prompt_tokens[i:i + seq_len]\n        current_code = code_tokens[max(i - prompt_len, 0):i - prompt_len + seq_len]\n        yield current_prompt, current_code\n\n    if (end_idx - start_idx) % sliding_stride != 0:\n        current_prompt = prompt_tokens[end_idx:end_idx + seq_len]\n        current_code = code_tokens[max(end_idx - prompt_len, 0):end_idx - prompt_len + seq_len]\n        yield current_prompt, current_code\n"
  },
  {
    "path": "codegeex/data/process_pretrain_dataset.py",
    "content": "import os\nimport glob\nimport fire\nimport torch\nimport multiprocessing\n\nfrom typing import *\nfrom tqdm.auto import tqdm\nfrom time import perf_counter\nfrom black import format_str, FileMode\n\nfrom codegeex.data.types import PromptDataset, PromptSample\nfrom codegeex.data.processor import PromptDatasetProcessor\nfrom codegeex.data.data_utils import stream_jsonl, LANGUAGE_TAG\nfrom codegeex.megatron.data.indexed_dataset import make_mmap_builder\nfrom codegeex.tokenizer import CodeGeeXTokenizer\n\n\ndef try_format_code(code: str):\n    # Auto-correct to PEP8 format (Change tab to 4-whitespaces;\n    # add whitespace around some special symbols;\n    # reformat line length < 100, etc.)\n    try:\n        res = format_str(code, mode=FileMode(line_length=200))\n    except Exception as e:\n        res = code\n        print(e)\n        print(\"Wrong python format: {}\".format(code))\n    return res\n\n\ndef load_pretrain_dataset(dataset_path: Union[str, List[str]]) -> Dict:\n    if type(dataset_path) is str:\n        dataset_path = [dataset_path]\n    \n    for p in dataset_path:\n        if not os.path.isdir(p):\n            if p.endswith(\".gz\") or p.endswith(\".jsonl\"):\n                print(f\"loading from {p}\")\n                yield from stream_jsonl(p)\n        else:\n            p_list = glob.glob(p + \"/*\")\n            for p_ in p_list:\n                if p_.endswith(\".gz\") or p_.endswith(\".jsonl\"):\n                    print(f\"loading from {p_}\")\n                    yield from stream_jsonl(p_)\n          \n            \ndef process_sample(\n    sample: Dict, \n    language: str=None, \n    mode: str=\"pretrain\",\n) -> Iterable[PromptSample]:\n    if mode == \"pretrain\":\n        prompt = \"\"\n    else:\n        prompt = sample[\"prompt\"]\n    \n    try:\n        if language is not None and language in LANGUAGE_TAG.keys():\n            code = LANGUAGE_TAG[language] + \"\\n\" + sample[\"code\"]\n        else:\n            code = sample[\"code\"]\n    except Exception as e:\n        print(e)\n        print(\"The key 'code' is missing in data. Aborted\")\n        exit(0)\n        \n    yield PromptSample(prompt, code)\n\n\ndef generate_prompt_samples(\n    dataset: Iterable[Dict], \n    language: str = None,\n    mode: str = \"pretrain\",\n) -> PromptDataset:\n    for sample in dataset:\n        yield from process_sample(sample, language, mode)\n\n\ndef main(\n    tokenizer_path: str,\n    dataset_path: Union[str, List[str]],\n    output_prefix: str,\n    language: str = None,\n    mode: str = \"pretrain\",\n    discard_overlong: bool = False,\n    sliding_stride: int = 200,\n    num_workers: int = 32,\n    seq_len: int = 2048,\n):\n    DATA_KEYS = [\"input_ids\", \"attention_mask\", \"labels\"]\n    \n    # create output dir\n    os.makedirs(os.path.dirname(output_prefix), exist_ok=True)\n\n    tokenizer = CodeGeeXTokenizer(tokenizer_path=tokenizer_path)\n    pad_token_id = tokenizer.eos_token_id\n\n    dataset = load_pretrain_dataset(dataset_path)\n    prompt_dataset = generate_prompt_samples(dataset, language=language, mode=mode)\n\n    if num_workers == 0:\n        num_workers = multiprocessing.cpu_count()\n    pool = multiprocessing.Pool(num_workers)\n    output_bin_files = {}\n    output_idx_files = {}\n    builders = {}\n\n    for key in DATA_KEYS:\n        output_bin_files[key] = \"{}_{}.bin\".format(output_prefix, key)\n        output_idx_files[key] = \"{}_{}.idx\".format(output_prefix, key)\n        builders[key] = make_mmap_builder(\n            output_bin_files[key],\n            vocab_size=None,  # magic number, should change it\n        )\n\n    # NOTE that we use seq_len + 1 instead of seq_len, since the input tokens will be shifted by one.\n    processor = PromptDatasetProcessor(\n        tokenize=tokenizer.encode_code, \n        pad_token=pad_token_id,\n        max_seq_len=seq_len + 1, \n        discard_overlong=discard_overlong,\n        sliding_stride=sliding_stride,\n        eod_token=pad_token_id)\n    \n    processor.start_time = perf_counter()\n    doc_iter = pool.imap_unordered(processor.process_sample_strict,\n                                   prompt_dataset, \n                                   chunksize=20)\n\n    for doc_idx, docs in tqdm(enumerate(doc_iter, start=1)):\n        processor.doc_processed += 1\n        for doc in docs:\n            processor.doc_generated += 1\n            for key in DATA_KEYS:\n                builders[key].add_item(torch.IntTensor(doc[key]))\n\n    for key in DATA_KEYS:\n        builders[key].finalize(output_idx_files[key])\n\n\nif __name__ == \"__main__\":\n    fire.Fire(main)\n"
  },
  {
    "path": "codegeex/data/processor.py",
    "content": "from typing import *\nfrom time import perf_counter\n\nfrom codegeex.data.data_utils import sliding_window\nfrom codegeex.data.types import PromptSample, LabelSample\n\n\nclass PromptDatasetProcessor(object):\n    def __init__(\n        self,\n        tokenize: Callable,\n        pad_token: int,\n        keep_order: bool = False,\n        max_seq_len: int = 2048,\n        sliding_stride: int = 200,\n        discard_overlong: bool = True,\n        eod_token: int = None, \n        preprocess: Callable = None,\n    ):\n        super(PromptDatasetProcessor, self).__init__()\n        self._keep_order = keep_order\n        self._max_seq_len = max_seq_len\n        self._sliding_stride = sliding_stride\n        self._tokenize = tokenize\n        self._pad_token = pad_token\n        self._discard_overlong = discard_overlong\n        self._eod_token = eod_token\n        self._preprocess = preprocess\n\n        self.doc_processed = 0\n        self.doc_generated = 0\n        self.start_time = 0\n\n    def pad_seq(self, prompt_tokens: List[int], code_tokens: List[int], extra: dict = None) -> Dict[str, List[int]]:\n        total_length = len(prompt_tokens) + len(code_tokens)\n        assert total_length <= self._max_seq_len, f\"padding sequence: {total_length} > {self._max_seq_len}\"\n        pad_len = self._max_seq_len - total_length\n        input_ids = prompt_tokens + code_tokens + [self._pad_token] * pad_len\n        attention_mask = [1] * len(prompt_tokens) + [1] * len(code_tokens) + [0] * pad_len\n        labels = [-100] * len(prompt_tokens) + code_tokens + [-100] * pad_len\n\n        return {\n            \"input_ids\": input_ids,\n            \"attention_mask\": attention_mask,\n            \"labels\": labels,\n        }\n\n    def process_sample(self, sample: PromptSample) -> Iterable[Dict[str, List[int]]]:\n        \"\"\"\n        Process a sample.\n        \"\"\"\n        prompt_tokens = self._tokenize(sample.prompt)\n        code_tokens = self._tokenize(sample.code)\n\n        if self._eod_token is not None:\n            code_tokens.append(self._eod_token)\n\n        if len(prompt_tokens) + len(code_tokens) > self._max_seq_len:\n            if self._discard_overlong:\n                return\n            for p, t in sliding_window(prompt_tokens, code_tokens, self._max_seq_len, self._sliding_stride, self._sliding_stride):\n                yield self.pad_seq(p, t)\n        else:\n            yield self.pad_seq(prompt_tokens, code_tokens, extra=sample.extra)\n\n    def process_sample_strict(self, sample: PromptSample) -> List[Dict[str, List[int]]]:\n        \"\"\"\n        Instead of processing lazily, we turn the iterable into a list.\n        \"\"\"\n        if sample is None:\n            return None\n        \n        return list(self.process_sample(sample))\n\n    def process_sample_(self, sample) -> List[Dict[str, List[int]]]:\n        prompt_sample = self._preprocess(sample)\n        return self.process_sample_strict(prompt_sample)\n\n    def report(self):\n        duration = perf_counter() - self.start_time\n        process_speed = self.doc_processed * 1.0 / duration\n        gen_speed = self.doc_generated * 1.0 / duration\n        print(f\">>> processed: {self.doc_processed} in {duration:.2f}s, speed: {process_speed:.2f} docs/s\")\n        print(f\"... generated: {self.doc_generated} in {duration:.2f}s, speed: {gen_speed:.2f} docs/s\")\n\n\n\nclass LabelDatasetProcessor(object):\n    def __init__(\n        self,\n        tokenize: Callable,\n        pad_token: int,\n        keep_order: bool = False,\n        max_seq_len: int = 2048,\n        sliding_stride: int = 200,\n        discard_overlong: bool = True,\n        eod_token: int = None, \n        preprocess: Callable = None,\n    ):\n        super(LabelDatasetProcessor, self).__init__()\n        self._keep_order = keep_order\n        self._max_seq_len = max_seq_len\n        self._sliding_stride = sliding_stride\n        self._tokenize = tokenize\n        self._pad_token = pad_token\n        self._discard_overlong = discard_overlong\n        self._eod_token = eod_token\n        self._preprocess = preprocess\n\n        self.doc_processed = 0\n        self.doc_generated = 0\n        self.start_time = 0\n\n    def pad_seq(self, prompt_tokens: List[int], label: int, extra: dict = None) -> Dict[str, List[int]]:\n        total_length = len(prompt_tokens) \n        assert total_length <= self._max_seq_len, f\"padding sequence: {total_length} > {self._max_seq_len}\"\n        pad_len = self._max_seq_len - total_length\n        input_ids = prompt_tokens +  [self._pad_token] * pad_len\n        attention_mask = [1] * len(prompt_tokens) + [0] * pad_len\n        label = [label]\n\n        return {\n                \"input_ids\": input_ids,\n                \"attention_mask\": attention_mask,\n                \"length\": [len(prompt_tokens)],\n                \"labels\": label\n        }\n    def process_sample(self, sample: LabelSample) -> Iterable[Dict[str, List[int]]]:\n        \"\"\"\n        Process a sample.\n        \"\"\"\n        prompt_tokens = self._tokenize(sample.prompt)\n        label = sample.label\n\n        \n        if len(prompt_tokens) > self._max_seq_len:\n            if self._discard_overlong:\n                return\n            prompt_tokens=prompt_tokens[-self._max_seq_len:]\n        \n        yield self.pad_seq(prompt_tokens, label, extra=sample.extra)\n\n    def process_sample_strict(self, sample: LabelSample) -> List[Dict[str, List[int]]]:\n        \"\"\"\n        Instead of processing lazily, we turn the iterable into a list.\n        \"\"\"\n        if sample is None:\n            return None\n        \n        return list(self.process_sample(sample))\n\n    def process_sample_(self, sample) -> List[Dict[str, List[int]]]:\n        prompt_sample = self._preprocess(sample)\n        return self.process_sample_strict(prompt_sample)\n\n    def report(self):\n        duration = perf_counter() - self.start_time\n        process_speed = self.doc_processed * 1.0 / duration\n        gen_speed = self.doc_generated * 1.0 / duration\n        print(f\">>> processed: {self.doc_processed} in {duration:.2f}s, speed: {process_speed:.2f} docs/s\")\n        print(f\"... generated: {self.doc_generated} in {duration:.2f}s, speed: {gen_speed:.2f} docs/s\")\n"
  },
  {
    "path": "codegeex/data/types.py",
    "content": "from typing import *\nfrom dataclasses import dataclass\n\n\n@dataclass\nclass PromptSample:\n    prompt: str\n    code: str\n    extra: dict = None\n\n\nPromptDataset = Iterable[PromptSample]\n\n@dataclass\nclass LabelSample:\n    prompt: str\n    label: int\n    extra: dict = None\n\nLabelDataset = Iterable[LabelSample]"
  },
  {
    "path": "codegeex/docker/Dockerfile",
    "content": "FROM pytorch/pytorch:1.11.0-cuda11.3-cudnn8-runtime\n\nRUN cp /etc/apt/sources.list /etc/apt/sources.list.bak \\\n    && sed -i \"s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g\" /etc/apt/sources.list \\\n    && sed -i \"s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g\" /etc/apt/sources.list \\\n    && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \\\n    && apt-get update && apt-get install -y curl npm git nano \\\n    && pip install fire zmq transformers tokenizers \\\n    && mkdir /workspace/download\n\nRUN curl -o /workspace/download/go.tar.gz -SL https://go.dev/dl/go1.18.4.linux-amd64.tar.gz \\\n    && tar -zxf /workspace/download/go.tar.gz -C /usr/local && rm /workspace/download/go.tar.gz\nENV PATH=/bin:/usr/local/go/bin:$PATH\n\nRUN curl -o /workspace/download/node.tar.gz -SL https://nodejs.org/download/release/v16.14.0/node-v16.14.0-linux-x64.tar.gz \\\n    && mkdir -p /usr/local/lib/nodejs && tar -zxf /workspace/download/node.tar.gz -C /usr/local/lib/nodejs && mv /usr/local/lib/nodejs/node-v16.14.0-linux-x64 /usr/local/lib/nodejs/node \\\n    && rm /workspace/download/node.tar.gz && npm install -g js-md5@0.7.3\nENV PATH=/usr/local/lib/nodejs/node/bin:$PATH\nENV NODE_PATH=/usr/local/lib/node_modules\n\nRUN apt-get install -y build-essential && apt-get install -y g++ \\\n    && curl -o /workspace/download/boost_1_71_0.tar.gz -SL https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.gz \\\n    && tar -zxf /workspace/download/boost_1_71_0.tar.gz && rm /workspace/download/boost_1_71_0.tar.gz && cd boost_1_71_0 \\\n    && ./bootstrap.sh --prefix=/usr/ && ./b2 && ./b2 install \\\n    && cd .. && rm -r boost_1_71_0\nRUN curl -o /workspace/download/openssl.tar.gz -SL https://www.openssl.org/source/old/3.0/openssl-3.0.0.tar.gz \\\n    && tar -zxf /workspace/download/openssl.tar.gz && cd openssl-3.0.0 && ./Configure && make && make install \\\n    && rm /workspace/download/openssl.tar.gz && rm -r /workspace/openssl-3.0.0\nENV PATH=/usr/bin/openssl:$PATH\n\nRUN curl -o /workspace/download/jdk.tar.gz -SL https://download.oracle.com/java/18/latest/jdk-18_linux-x64_bin.tar.gz \\\n    && mkdir /usr/java && tar -zxf /workspace/download/jdk.tar.gz -C /usr/java && rm /workspace/download/jdk.tar.gz \\\n    && java_path=`ls /usr/java/${path}` && echo \"export JAVA_HOME=/usr/java/${java_path}\" >> ~/.profile\n\nRUN git clone https://github.com/THUDM/CodeGeeX.git && pip install -e /workspace/CodeGeeX \\\n    && tar -zxf /workspace/CodeGeeX/codegeex/benchmark/humaneval-x/go/evaluation/vendor.tar.gz -C /workspace/CodeGeeX/codegeex/benchmark/humaneval-x/go/evaluation\n\nSHELL [\"sh\", \"-lc\"]\nRUN update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 20000 \\\n    && update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 20000 \\\n    && rm -r /workspace/download \\\n    && env\n"
  },
  {
    "path": "codegeex/kernels/__init__.py",
    "content": "import pkg_resources\nimport torch\nimport ctypes\n\nfrom typing import List\nfrom cpm_kernels.kernels.base import LazyKernelCModule, KernelFunction, round_up\n\nRESOURCE_PACKAGE_NAME = __name__\n\n\nclass Kernel:\n    def __init__(self, filename: str, function_names: List[str]):\n        filename = filename + \".fatbin\"\n        if not pkg_resources.resource_exists(RESOURCE_PACKAGE_NAME, filename):\n            raise RuntimeError(\"File `%s` not found in `%s`\" % (filename, RESOURCE_PACKAGE_NAME))\n        self.filename = filename\n        self.code = pkg_resources.resource_string(RESOURCE_PACKAGE_NAME, filename)\n        self._function_names = function_names\n        self._cmodule = LazyKernelCModule(self.code)\n\n        for name in self._function_names:\n            setattr(self, name, KernelFunction(self._cmodule, name))\n\n\nkernels = Kernel(\n    \"quantization\",\n    [\n        \"int4WeightCompression\",\n        \"int4WeightExtractionFloat\",\n        \"int4WeightExtractionHalf\",\n        \"int8WeightExtractionFloat\",\n        \"int8WeightExtractionHalf\",\n    ],\n)\n\n\ndef compress_int4_weight(weight: torch.Tensor):  # (n, m)\n    with torch.cuda.device(weight.device):\n        n, m = weight.size(0), weight.size(1)\n        assert m % 2 == 0\n        m = m // 2\n        out = torch.empty(n, m, dtype=torch.int8, device=\"cuda\")\n        stream = torch.cuda.current_stream()\n\n        gridDim = (n, 1, 1)\n        blockDim = (min(round_up(m, 32), 1024), 1, 1)\n\n        kernels.int4WeightCompression(\n            gridDim,\n            blockDim,\n            0,\n            stream,\n            [ctypes.c_void_p(weight.data_ptr()), ctypes.c_void_p(out.data_ptr()), ctypes.c_int32(n), ctypes.c_int32(m)],\n        )\n        return out\n\n\ndef extract_weight_to_half(weight: torch.Tensor, scale_list: torch.Tensor, source_bit_width: int):\n    if source_bit_width == 8:\n        func = kernels.int8WeightExtractionHalf\n    elif source_bit_width == 4:\n        func = kernels.int4WeightExtractionHalf\n    else:\n        assert False, \"Unsupported bit-width\"\n\n    with torch.cuda.device(weight.device):\n        n, m = weight.size(0), weight.size(1)\n        out = torch.empty(n, m * (8 // source_bit_width), dtype=torch.half, device=\"cuda\")\n        stream = torch.cuda.current_stream()\n\n        gridDim = (n, 1, 1)\n        blockDim = (min(round_up(m, 32), 1024), 1, 1)\n\n        func(\n            gridDim,\n            blockDim,\n            0,\n            stream,\n            [\n                ctypes.c_void_p(weight.data_ptr()),\n                ctypes.c_void_p(scale_list.data_ptr()),\n                ctypes.c_void_p(out.data_ptr()),\n                ctypes.c_int32(n),\n                ctypes.c_int32(m),\n            ],\n        )\n        return out\n\n\nif __name__ == \"__main__\":\n    weight = torch.randn(4, 32).to(torch.int8).cuda()\n    scale = torch.ones(weight.size(0)).to(torch.half).cuda()\n\n    print(weight)\n    b = compress_int4_weight(weight)\n    print(b)\n\n    a = extract_weight_to_half(b, scale, source_bit_width=4)\n    print(a)\n"
  },
  {
    "path": "codegeex/megatron/__init__.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\nimport torch\n\nfrom .global_vars import get_args\nfrom .global_vars import get_current_global_batch_size\nfrom .global_vars import get_num_microbatches\nfrom .global_vars import update_num_microbatches\nfrom .global_vars import get_tokenizer\nfrom .global_vars import get_tensorboard_writer\nfrom .global_vars import get_adlr_autoresume\nfrom .global_vars import get_timers\nfrom .initialize import initialize_megatron\n\n\ndef print_rank_0(message):\n    \"\"\"If distributed is initialized, print only on rank 0.\"\"\"\n    if torch.distributed.is_initialized():\n        if torch.distributed.get_rank() == 0:\n            print(message, flush=True)\n    else:\n        print(message, flush=True)\n\n\ndef is_last_rank():\n    return torch.distributed.get_rank() == (torch.distributed.get_world_size() - 1)\n\n\ndef print_rank_last(message):\n    \"\"\"If distributed is initialized, print only on last rank.\"\"\"\n    if torch.distributed.is_initialized():\n        if is_last_rank():\n            print(message, flush=True)\n    else:\n        print(message, flush=True)\n"
  },
  {
    "path": "codegeex/megatron/arguments.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron arguments.\"\"\"\n\nimport argparse\nimport os\n\nimport torch\nimport deepspeed\n\n\ndef parse_args(extra_args_provider=None, defaults={}, ignore_unknown_args=False):\n    \"\"\"Parse all arguments.\"\"\"\n    parser = argparse.ArgumentParser(\n        description=\"Megatron-LM Arguments\", allow_abbrev=False\n    )\n\n    # Standard arguments.\n    parser = _add_network_size_args(parser)\n    parser = _add_regularization_args(parser)\n    parser = _add_training_args(parser)\n    parser = _add_initialization_args(parser)\n    parser = _add_learning_rate_args(parser)\n    parser = _add_checkpointing_args(parser)\n    parser = _add_mixed_precision_args(parser)\n    parser = _add_distributed_args(parser)\n    parser = _add_validation_args(parser)\n    parser = _add_data_args(parser)\n    parser = _add_autoresume_args(parser)\n    parser = _add_biencoder_args(parser)\n    parser = _add_vit_args(parser)\n    parser = _add_logging_args(parser)\n    parser = _add_zero_args(parser)\n    parser = _add_memoryopt_args(parser)\n    parser = _add_activation_checkpoint_args(parser)\n    parser = _add_inference_args(parser)\n\n    # Custom arguments.\n    if extra_args_provider is not None:\n        parser = extra_args_provider(parser)\n\n    parser = deepspeed.add_config_arguments(parser)\n\n    # Parse.\n    if ignore_unknown_args:\n        args, _ = parser.parse_known_args()\n    else:\n        args = parser.parse_args()\n\n    # helper argument to set deepspeed pipeline parallel or not\n    args.ds_pipeline_enabled = not args.no_pipeline_parallel\n\n    # Distributed args.\n    args.rank = int(os.getenv(\"RANK\", \"0\"))\n    args.world_size = int(os.getenv(\"WORLD_SIZE\", \"1\"))\n    # Tensor model parallel size.\n    args.tensor_model_parallel_size = min(\n        args.tensor_model_parallel_size, args.world_size\n    )\n    assert (\n        args.world_size % args.tensor_model_parallel_size == 0\n    ), \"world size\" \" ({}) is not divisible by tensor model parallel size ({})\".format(\n        args.world_size, args.tensor_model_parallel_size\n    )\n    # Pipeline model parallel size.\n    args.pipeline_model_parallel_size = min(\n        args.pipeline_model_parallel_size,\n        (args.world_size // args.tensor_model_parallel_size),\n    )\n    # Checks.\n    if args.no_pipeline_parallel:\n        assert (\n            args.pipeline_model_parallel_size == 1\n        ), \"pipeline_model_parallel_size must be 1 if pipeline parallel is disabled\"\n    model_parallel_size = (\n        args.pipeline_model_parallel_size * args.tensor_model_parallel_size\n    )\n    assert args.world_size % model_parallel_size == 0, (\n        \"world size is not\"\n        \" divisible by tensor parallel size ({}) times pipeline parallel \"\n        \"size ({})\".format(\n            args.world_size,\n            args.tensor_model_parallel_size,\n            args.pipeline_model_parallel_size,\n        )\n    )\n    args.data_parallel_size = args.world_size // model_parallel_size\n    if args.rank == 0:\n        print(\n            \"using world size: {}, data-parallel-size: {}, \"\n            \"tensor-model-parallel size: {}, \"\n            \"pipeline-model-parallel size: {} \".format(\n                args.world_size,\n                args.data_parallel_size,\n                args.tensor_model_parallel_size,\n                args.pipeline_model_parallel_size,\n            ),\n            flush=True,\n        )\n\n    # Deprecated arguments\n    assert args.batch_size is None, (\n        \"--batch-size argument is no longer \" \"valid, use --micro-batch-size instead\"\n    )\n    del args.batch_size\n    assert args.warmup is None, (\n        \"--warmup argument is no longer valid, use \" \"--lr-warmup-fraction instead\"\n    )\n    del args.warmup\n    assert args.model_parallel_size is None, (\n        \"--model-parallel-size is no \"\n        \"longer valid, use --tensor-model-parallel-size instead\"\n    )\n    del args.model_parallel_size\n\n    # Set input defaults.\n    for key in defaults:\n        # For default to be valid, it should not be provided in the\n        # arguments that are passed to the program. We check this by\n        # ensuring the arg is set to None.\n        if getattr(args, key) is not None:\n            if args.force_default:\n                print(\n                    \"WARNING: overriding arguments for {key}:{v2} \\\n                       with default {key}:{v}\".format(\n                        key=key, v=defaults[key], v2=getattr(args, key)\n                    ),\n                    flush=True,\n                )\n                setattr(args, key, defaults[key])\n            else:\n                if args.rank == 0:\n                    print(\n                        \"WARNING: overriding default arguments for {key}:{v} \\\n                           with {key}:{v2}\".format(\n                            key=key, v=defaults[key], v2=getattr(args, key)\n                        ),\n                        flush=True,\n                    )\n        else:\n            setattr(args, key, defaults[key])\n\n    # Batch size.\n    assert args.micro_batch_size is not None\n    assert args.micro_batch_size > 0\n    if args.global_batch_size is None:\n        args.global_batch_size = args.micro_batch_size * args.data_parallel_size\n        if args.rank == 0:\n            print(\n                \"setting global batch size to {}\".format(args.global_batch_size),\n                flush=True,\n            )\n    assert args.global_batch_size > 0\n    if args.num_layers_per_virtual_pipeline_stage is not None:\n        assert args.pipeline_model_parallel_size > 2, (\n            \"pipeline-model-parallel size should be greater than 2 with \"\n            \"interleaved schedule\"\n        )\n        assert args.num_layers % args.num_layers_per_virtual_pipeline_stage == 0, (\n            \"number of layers is not divisible by number of layers per virtual \"\n            \"pipeline stage\"\n        )\n        args.virtual_pipeline_model_parallel_size = (\n            args.num_layers // args.pipeline_model_parallel_size\n        ) // args.num_layers_per_virtual_pipeline_stage\n    else:\n        args.virtual_pipeline_model_parallel_size = None\n\n    # Parameters dtype.\n    args.params_dtype = torch.float\n    if args.fp16:\n        assert not args.bf16\n        args.params_dtype = torch.half\n    if args.bf16:\n        assert not args.fp16\n        args.params_dtype = torch.bfloat16\n        # bfloat16 requires gradient accumulation and all-reduce to\n        # be done in fp32.\n        if not args.accumulate_allreduce_grads_in_fp32:\n            args.accumulate_allreduce_grads_in_fp32 = True\n            if args.rank == 0:\n                print(\n                    \"accumulate and all-reduce gradients in fp32 for \"\n                    \"bfloat16 data type.\",\n                    flush=True,\n                )\n\n    if args.rank == 0:\n        print(\"using {} for parameters ...\".format(args.params_dtype), flush=True)\n\n    # If we do accumulation and all-reduces in fp32, we need to have\n    # local DDP and we should set the use-contiguous-buffers-in-ddp.\n    if args.accumulate_allreduce_grads_in_fp32:\n        assert args.DDP_impl == \"local\"\n        args.use_contiguous_buffers_in_ddp = True\n\n    if args.dataloader_type is None:\n        args.dataloader_type = \"single\"\n\n    # Consumed tokens.\n    args.consumed_train_samples = 0\n    args.consumed_valid_samples = 0\n    args.consumed_train_tokens = 0\n\n    # Iteration-based training.\n    if args.train_iters:\n        # If we use iteration-based training, make sure the\n        # sample-based options are off.\n        assert args.train_samples is None, \"expected iteration-based training\"\n        assert (\n            args.lr_decay_samples is None\n        ), \"expected iteration-based learning rate decay\"\n        assert (\n            args.lr_warmup_samples == 0\n        ), \"expected iteration-based learning rate warmup\"\n        assert (\n            args.rampup_batch_size is None\n        ), \"expected no batch-size rampup for iteration-based training\"\n        if args.lr_warmup_fraction is not None:\n            assert (\n                args.lr_warmup_iters == 0\n            ), \"can only specify one of lr-warmup-fraction and lr-warmup-iters\"\n\n    # Sample-based training.\n    if args.train_samples:\n        # If we use sample-based training, make sure the\n        # iteration-based options are off.\n        assert args.train_iters is None, \"expected sample-based training\"\n        assert args.lr_decay_iters is None, \"expected sample-based learning rate decay\"\n        assert args.lr_warmup_iters == 0, \"expected sample-based learnig rate warmup\"\n        if args.lr_warmup_fraction is not None:\n            assert args.lr_warmup_samples == 0, (\n                \"can only specify one of lr-warmup-fraction \" \"and lr-warmup-samples\"\n            )\n\n    # Check required arguments.\n    required_args = [\n        \"num_layers\",\n        \"hidden_size\",\n        \"num_attention_heads\",\n        \"max_position_embeddings\",\n    ]\n    for req_arg in required_args:\n        _check_arg_is_not_none(args, req_arg)\n\n    # args.learned_position_embeddings = args.learned_position_embeddings > 0\n\n    # Checks.\n    if args.ffn_hidden_size is None:\n        args.ffn_hidden_size = 4 * args.hidden_size\n\n    if args.kv_channels is None:\n        assert args.hidden_size % args.num_attention_heads == 0\n        args.kv_channels = args.hidden_size // args.num_attention_heads\n\n    if args.seq_length is not None:\n        assert args.encoder_seq_length is None\n        args.encoder_seq_length = args.seq_length\n    else:\n        assert args.encoder_seq_length is not None\n        args.seq_length = args.encoder_seq_length\n\n    if args.seq_length is not None:\n        assert args.max_position_embeddings >= args.seq_length\n    if args.decoder_seq_length is not None:\n        assert args.max_position_embeddings >= args.decoder_seq_length\n    if args.lr is not None:\n        assert args.min_lr <= args.lr\n    if args.save is not None:\n        assert args.save_interval is not None\n    # Mixed precision checks.\n    if args.fp16_lm_cross_entropy:\n        assert args.fp16, \"lm cross entropy in fp16 only support in fp16 mode.\"\n    if args.fp32_residual_connection:\n        assert (\n            args.fp16 or args.bf16\n        ), \"residual connection in fp32 only supported when using fp16 or bf16.\"\n    # Activation checkpointing.\n    if args.distribute_checkpointed_activations:\n        assert args.checkpoint_activations, (\n            \"for distribute-checkpointed-activations to work you \"\n            \"need to enable checkpoint-activations\"\n        )\n    \n    _print_args(args)\n    return args\n\n\ndef _print_args(args):\n    \"\"\"Print arguments.\"\"\"\n    if args.rank == 0:\n        print(\"------------------------ arguments ------------------------\", flush=True)\n        str_list = []\n        for arg in vars(args):\n            dots = \".\" * (48 - len(arg))\n            str_list.append(\"  {} {} {}\".format(arg, dots, getattr(args, arg)))\n        for arg in sorted(str_list, key=lambda x: x.lower()):\n            print(arg, flush=True)\n        print(\"-------------------- end of arguments ---------------------\", flush=True)\n\n\ndef _check_arg_is_not_none(args, arg):\n    assert getattr(args, arg) is not None, \"{} argument is None\".format(arg)\n\n\ndef _add_network_size_args(parser):\n    group = parser.add_argument_group(title=\"network size\")\n\n    group.add_argument(\n        \"--num-layers\",\n        type=int,\n        default=None,\n        help=\"Number of transformer layers.\",\n    )\n    group.add_argument(\n        \"--hidden-size\",\n        type=int,\n        default=None,\n        help=\"Transformer hidden size.\",\n    )\n    group.add_argument(\n        \"--reward-growth\",\n        type=str,\n        default=\"constant\",\n        choices=[\"constant\", \"linear\", \"quadratic\"],\n        help=\"Reward growth function.\",\n    )\n    group.add_argument(\n        \"--ffn-hidden-size\",\n        type=int,\n        default=None,\n        help=\"Transformer Feed-Forward Network hidden size. \"\n        \"This is set to 4*hidden-size if not provided\",\n    )\n    group.add_argument(\n        \"--num-attention-heads\",\n        type=int,\n        default=None,\n        help=\"Number of transformer attention heads.\",\n    )\n    group.add_argument(\n        \"--kv-channels\",\n        type=int,\n        default=None,\n        help=\"Projection weights dimension in multi-head \"\n        \"attention. This is set to \"\n        \"   args.hidden_size // args.num_attention_heads \"\n        \"if not provided.\",\n    )\n    group.add_argument(\n        \"--scale-embeddings\",\n        action=\"store_true\",\n        help=\"Scale embeddings by sqrt(d_model).\",\n    )\n    group.add_argument(\n        \"--max-position-embeddings\",\n        type=int,\n        default=None,\n        help=\"Maximum number of position embeddings to use. \"\n        \"This is the size of position embedding.\",\n    )\n    group.add_argument(\n        \"--no-learned-position-embeddings\",\n        action=\"store_true\",\n        help=\"Do not learn position embeddings. \",\n    )\n    group.add_argument(\n        \"--make-vocab-size-divisible-by\",\n        type=int,\n        default=128,\n        help=\"Pad the vocab size to be divisible by this value.\"\n        \"This is added for computational efficieny reasons.\",\n    )\n    group.add_argument(\n        \"--layernorm-epsilon\", type=float, default=1e-5, help=\"Layer norm epsilon.\"\n    )\n    group.add_argument(\n        \"--apply-residual-connection-post-layernorm\",\n        action=\"store_true\",\n        help=\"If set, use original BERT residula connection \" \"ordering.\",\n    )\n    group.add_argument('--scaled-upper-triang-masked-softmax-fusion',\n                       action='store_true',\n                       help='Enable fusion of query_key_value_scaling '\n                       'time (upper diagonal) masking, softmax.')\n    group.add_argument(\n        \"--openai-gelu\",\n        action=\"store_true\",\n        help=\"Use OpenAIs GeLU implementation. This option\"\n        \"should not be used unless for backward compatibility\"\n        \"reasons.\",\n    )\n    group.add_argument(\n        \"--onnx-safe\",\n        type=bool,\n        required=False,\n        help=\"Use workarounds for known problems with \" \"Torch ONNX exporter\",\n    )\n    group.add_argument(\n        \"--bert-no-binary-head\",\n        action=\"store_false\",\n        help=\"Disable BERT binary head.\",\n        dest=\"bert_binary_head\",\n    )\n    group.add_argument(\n        \"--compress\",\n        action=\"store_true\",\n    )\n\n    return parser\n\n\ndef _add_logging_args(parser):\n    group = parser.add_argument_group(title=\"logging\")\n\n    group.add_argument(\n        \"--log-params-norm\",\n        action=\"store_true\",\n        help=\"If set, calculate and log parameters norm.\",\n    )\n    group.add_argument(\n        \"--log-num-zeros-in-grad\",\n        action=\"store_true\",\n        help=\"If set, calculate and log the number of zeros in gradient.\",\n    )\n    group.add_argument(\n        \"--tensorboard-log-interval\",\n        type=int,\n        default=1,\n        help=\"Report to tensorboard interval.\",\n    )\n    group.add_argument(\n        \"--tensorboard-queue-size\",\n        type=int,\n        default=1000,\n        help=\"Size of the tensorboard queue for pending events \"\n        \"and summaries before one of the ‘add’ calls forces a \"\n        \"flush to disk.\",\n    )\n    group.add_argument(\n        \"--log-timers-to-tensorboard\",\n        action=\"store_true\",\n        help=\"If set, write timers to tensorboard.\",\n    )\n    group.add_argument(\n        \"--log-batch-size-to-tensorboard\",\n        action=\"store_true\",\n        help=\"If set, write batch-size to tensorboard.\",\n    )\n    group.add_argument(\n        \"--no-log-learnig-rate-to-tensorboard\",\n        action=\"store_false\",\n        help=\"Disable learning rate logging to tensorboard.\",\n        dest=\"log_learning_rate_to_tensorboard\",\n    )\n    group.add_argument(\n        \"--no-log-loss-scale-to-tensorboard\",\n        action=\"store_false\",\n        help=\"Disable loss-scale logging to tensorboard.\",\n        dest=\"log_loss_scale_to_tensorboard\",\n    )\n    group.add_argument(\n        \"--log-validation-ppl-to-tensorboard\",\n        action=\"store_true\",\n        help=\"If set, write validation perplexity to \" \"tensorboard.\",\n    )\n    group.add_argument(\n        \"--wandb-logging\",\n        action=\"store_true\",\n        help=\"If set, log training progress to wandb.\",\n    )\n    group.add_argument(\n        \"--wandb-log-interval\",\n        type=int,\n        default=1,\n        help=\"Log to wandb every N steps.\",\n    )\n\n    return parser\n\n\ndef _add_regularization_args(parser):\n    group = parser.add_argument_group(title=\"regularization\")\n\n    group.add_argument(\n        \"--attention-dropout\",\n        type=float,\n        default=0.1,\n        help=\"Post attention dropout probability.\",\n    )\n    group.add_argument(\n        \"--hidden-dropout\",\n        type=float,\n        default=0.1,\n        help=\"Dropout probability for hidden state transformer.\",\n    )\n    group.add_argument(\n        \"--weight-decay\",\n        type=float,\n        default=0.01,\n        help=\"Weight decay coefficient for L2 regularization.\",\n    )\n    group.add_argument(\n        \"--tempering\",\n        type=float,\n        default=None,\n        help=\"Tempering coefficient for the model.\",\n    )\n    group.add_argument(\n        \"--gold\",\n        action=\"store_true\",\n        help=\"If set, use gold regularization.\",\n    )\n    group.add_argument(\n        \"--gold-beta\",\n        type=float,\n        default=0.05,\n        help=\"Beta for GOLD tempering.\",\n    )\n    group.add_argument(\n        \"--play-tau\",\n        type=float,\n        default=2.0\n    )\n    group.add_argument(\n        \"--clip-grad\",\n        type=float,\n        default=1.0,\n        help=\"Gradient clipping based on global L2 norm.\",\n    )\n    group.add_argument(\n        \"--adam-beta1\",\n        type=float,\n        default=0.9,\n        help=\"First coefficient for computing running averages \"\n        \"of gradient and its square\",\n    )\n    group.add_argument(\n        \"--adam-beta2\",\n        type=float,\n        default=0.999,\n        help=\"Second coefficient for computing running averages \"\n        \"of gradient and its square\",\n    )\n    group.add_argument(\n        \"--adam-eps\",\n        type=float,\n        default=1e-08,\n        help=\"Term added to the denominator to improve\" \"numerical stability\",\n    )\n    group.add_argument(\n        \"--sgd-momentum\", type=float, default=0.9, help=\"Momentum factor for sgd\"\n    )\n    group.add_argument(\n        \"--shrink-logit-embedding-gradient\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        \"--shrink-embedding-gradient-alpha\", \n        type=float, \n        default=1.0,\n        help='Shrink embedding gradient for alpha',\n    )\n    group.add_argument(\n        \"--shrink-embedding-gradient-steps\", \n        nargs='*', \n        default=None,\n        help='--shrink-embedding-gradient-steps <x1> <x2>'\n                            'Shrink embedding gradient alpha for x1 steps,'\n                            'then warm it up to 1.0 with x2 steps',\n    )\n\n    return parser\n\n\ndef _add_training_args(parser):\n    group = parser.add_argument_group(title=\"training\")\n\n    group.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=None,\n        help=\"Batch size per model instance (local batch size). \"\n        \"Global batch size is local batch size times data \"\n        \"parallel size times number of micro batches.\",\n    )\n    group.add_argument(\n        \"--batch-size\",\n        type=int,\n        default=None,\n        help=\"Old batch size parameter, do not use. \" \"Use --micro-batch-size instead\",\n    )\n    group.add_argument(\n        \"--global-batch-size\",\n        type=int,\n        default=None,\n        help=\"Training batch size. If set, it should be a \"\n        \"multiple of micro-batch-size times data-parallel-size. \"\n        \"If this value is None, then \"\n        \"use micro-batch-size * data-parallel-size as the \"\n        \"global batch size. This choice will result in 1 for \"\n        \"number of micro-batches.\",\n    )\n    group.add_argument(\n        \"--rampup-batch-size\",\n        nargs=\"*\",\n        default=None,\n        help=\"Batch size ramp up with the following values:\"\n        \"  --rampup-batch-size <start batch size> \"\n        \"                      <batch size incerement> \"\n        \"                      <ramp-up samples> \"\n        \"For example:\"\n        \"   --rampup-batch-size 16 8 300000 \\ \"\n        \"   --global-batch-size 1024\"\n        \"will start with global batch size 16 and over \"\n        \" (1024 - 16) / 8 = 126 intervals will increase\"\n        \"the batch size linearly to 1024. In each interval\"\n        \"we will use approximately 300000 / 126 = 2380 samples.\",\n    )\n    group.add_argument(\n        \"--checkpoint-activations\",\n        action=\"store_true\",\n        help=\"Checkpoint activation to allow for training \"\n        \"with larger models, sequences, and batch sizes.\",\n    )\n    group.add_argument(\n        \"--distribute-checkpointed-activations\",\n        action=\"store_true\",\n        help=\"If set, distribute checkpointed activations \"\n        \"across model parallel group.\",\n    )\n    group.add_argument(\n        \"--checkpoint-num-layers\",\n        type=int,\n        default=1,\n        help=\"chunk size (number of layers) for checkpointing.\",\n    )\n    group.add_argument(\n        \"--train-iters\",\n        type=int,\n        default=None,\n        help=\"Total number of iterations to train over all \"\n        \"training runs. Note that either train-iters or \"\n        \"train-samples should be provided.\",\n    )\n    group.add_argument(\n        \"--train-samples\",\n        type=int,\n        default=None,\n        help=\"Total number of samples to train over all \"\n        \"training runs. Note that either train-iters or \"\n        \"train-samples should be provided.\",\n    )\n    group.add_argument(\n        \"--train-tokens\",\n        type=int,\n        default=None,\n        help=\"Total number of tokens to train over all \" \"training runs.\",\n    )\n    group.add_argument(\n        \"--log-interval\", type=int, default=100, help=\"Report loss and timing interval.\"\n    )\n    group.add_argument(\n        \"--exit-interval\",\n        type=int,\n        default=None,\n        help=\"Exit the program after the iteration is divisible \" \"by this value.\",\n    )\n    group.add_argument(\n        \"--exit-duration-in-mins\",\n        type=int,\n        default=None,\n        help=\"Exit the program after this many minutes.\",\n    )\n    group.add_argument(\n        \"--tensorboard-dir\",\n        type=str,\n        default=None,\n        help=\"Write TensorBoard logs to this directory.\",\n    )\n    group.add_argument(\n        \"--no-masked-softmax-fusion\",\n        action=\"store_false\",\n        help=\"Disable fusion of query_key_value scaling, \" \"masking, and softmax.\",\n        dest=\"masked_softmax_fusion\",\n    )\n    group.add_argument(\n        \"--no-bias-gelu-fusion\",\n        action=\"store_false\",\n        help=\"Disable bias and gelu fusion.\",\n        dest=\"bias_gelu_fusion\",\n    )\n    group.add_argument(\n        \"--no-bias-dropout-fusion\",\n        action=\"store_false\",\n        help=\"Disable bias and dropout fusion.\",\n        dest=\"bias_dropout_fusion\",\n    )\n    group.add_argument(\n        \"--optimizer\",\n        type=str,\n        default=\"adam\",\n        choices=[\"adam\", \"sgd\"],\n        help=\"Optimizer function\",\n    )\n    group.add_argument(\n        \"--dataloader-type\",\n        type=str,\n        default=None,\n        choices=[\"single\", \"cyclic\"],\n        help=\"Single pass vs multiple pass data loader\",\n    )\n    group.add_argument(\n        \"--cpu-optimizer\", action=\"store_true\", help=\"Run optimizer on CPU\"\n    )\n    group.add_argument(\n        \"--cpu_torch_adam\",\n        action=\"store_true\",\n        help=\"Use Torch Adam as optimizer on CPU.\",\n    )\n    group.add_argument(\n        \"--no-pipeline-parallel\",\n        action=\"store_true\",\n        help=\"Disable pipeline parallelism\",\n    )\n    group.add_argument(\n        \"--ms-model\",\n        action=\"store_true\",\n        help=\"use model converted from Mindspore\",\n    )\n\n    return parser\n\n\ndef _add_initialization_args(parser):\n    group = parser.add_argument_group(title=\"initialization\")\n\n    group.add_argument(\n        \"--seed\",\n        type=int,\n        default=1234,\n        help=\"Random seed used for python, numpy, \" \"pytorch, and cuda.\",\n    )\n    group.add_argument(\n        \"--init-method-std\",\n        type=float,\n        default=0.02,\n        help=\"Standard deviation of the zero mean normal \"\n        \"distribution used for weight initialization.\",\n    )\n    group.add_argument(\n        \"--init-method-xavier-uniform\",\n        action=\"store_true\",\n        help=\"Enable Xavier uniform parameter initialization\",\n    )\n\n    return parser\n\n\ndef _add_inference_args(parser):\n    group = parser.add_argument_group(title=\"initialization\")\n\n    group.add_argument(\n        '--evaluation',\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--beam-warmup',\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--beam-warmup-length',\n        type=int,\n        default=0,\n    )\n    group.add_argument(\n        '--beam-search',\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--beam-search-nucleus',\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--num-beams',\n        type=int,\n        default=4,\n    )\n    \n    return parser\n\n\ndef _add_learning_rate_args(parser):\n    group = parser.add_argument_group(title=\"learning rate\")\n\n    group.add_argument(\n        \"--lr\",\n        type=float,\n        default=None,\n        help=\"Initial learning rate. Depending on decay style \"\n        \"and initial warmup, the learing rate at each \"\n        \"iteration would be different.\",\n    )\n    group.add_argument(\n        \"--lr-decay-style\",\n        type=str,\n        default=\"linear\",\n        choices=[\"constant\", \"linear\", \"cosine\"],\n        help=\"Learning rate decay function.\",\n    )\n    group.add_argument(\n        \"--lr-decay-iters\",\n        type=int,\n        default=None,\n        help=\"number of iterations to decay learning rate over,\"\n        \" If None defaults to `--train-iters`\",\n    )\n    group.add_argument(\n        \"--lr-decay-samples\",\n        type=int,\n        default=None,\n        help=\"number of samples to decay learning rate over,\"\n        \" If None defaults to `--train-samples`\",\n    )\n    group.add_argument(\n        \"--lr-decay-tokens\",\n        type=int,\n        default=None,\n        help=\"number of tokens to decay learning rate over,\"\n        \" If not None will override iter/sample-based decay\",\n    )\n    group.add_argument(\n        \"--lr-warmup-fraction\",\n        type=float,\n        default=None,\n        help=\"fraction of lr-warmup-(iters/samples) to use \" \"for warmup (as a float)\",\n    )\n    group.add_argument(\n        \"--lr-warmup-iters\",\n        type=int,\n        default=0,\n        help=\"number of iterations to linearly warmup \" \"learning rate over.\",\n    )\n    group.add_argument(\n        \"--lr-warmup-samples\",\n        type=int,\n        default=0,\n        help=\"number of samples to linearly warmup \" \"learning rate over.\",\n    )\n    group.add_argument(\n        \"--warmup\",\n        type=int,\n        default=None,\n        help=\"Old lr warmup argument, do not use. Use one of the\"\n        \"--lr-warmup-* arguments above\",\n    )\n    group.add_argument(\n        \"--min-lr\",\n        type=float,\n        default=0.0,\n        help=\"Minumum value for learning rate. The scheduler\"\n        \"clip values below this threshold.\",\n    )\n    group.add_argument(\n        \"--override-lr-scheduler\",\n        action=\"store_true\",\n        help=\"Reset the values of the scheduler (learning rate,\"\n        \"warmup iterations, minimum learning rate, maximum \"\n        \"number of iterations, and decay style from input \"\n        \"arguments and ignore values from checkpoints. Note\"\n        \"that all the above values will be reset.\",\n    )\n    group.add_argument(\n        \"--use-checkpoint-lr-scheduler\",\n        action=\"store_true\",\n        help=\"Use checkpoint to set the values of the scheduler \"\n        \"(learning rate, warmup iterations, minimum learning \"\n        \"rate, maximum number of iterations, and decay style \"\n        \"from checkpoint and ignore input arguments.\",\n    )\n\n    return parser\n\n\ndef _add_checkpointing_args(parser):\n    group = parser.add_argument_group(title=\"checkpointing\")\n\n    group.add_argument(\n        \"--save\",\n        type=str,\n        default=None,\n        help=\"Output directory to save checkpoints to.\",\n    )\n    group.add_argument(\n        \"--save-interval\",\n        type=int,\n        default=None,\n        help=\"Number of iterations between checkpoint saves.\",\n    )\n    group.add_argument(\n        \"--no-save-optim\",\n        action=\"store_true\",\n        default=None,\n        help=\"Do not save current optimizer.\",\n    )\n    group.add_argument(\n        \"--no-save-rng\",\n        action=\"store_true\",\n        default=None,\n        help=\"Do not save current rng state.\",\n    )\n    group.add_argument(\n        \"--load\",\n        type=str,\n        default=None,\n        help=\"Directory containing a model checkpoint.\",\n    )\n    group.add_argument(\n        \"--low-memory-load\",\n        action=\"store_true\",\n        default=None,\n        help=\"Load model checkpoint in low memory mode.\"\n             \"On each machine, workers load the checkpoint one at a time.\"\n    )\n    group.add_argument(\n        \"--dist-timeout\",\n        type=int,\n        default=30,\n        help=\"Timeout for Pytorch Distributed backend (in minutes).\",\n    )\n    group.add_argument(\n        \"--load-state\",\n        type=str,\n        default=None,\n        help=\"Start training from a existing model state.\",\n    )\n    group.add_argument(\n        \"--no-load-optim\",\n        action=\"store_true\",\n        default=None,\n        help=\"Do not load optimizer when loading checkpoint.\",\n    )\n    group.add_argument(\n        \"--no-load-rng\",\n        action=\"store_true\",\n        default=None,\n        help=\"Do not load rng state when loading checkpoint.\",\n    )\n    group.add_argument(\n        \"--finetune\",\n        action=\"store_true\",\n        help=\"Load model for finetuning. Do not load optimizer \"\n        \"or rng state from checkpoint and set iteration to 0. \"\n        \"Assumed when loading a release checkpoint.\",\n    )\n\n    return parser\n\n\ndef _add_mixed_precision_args(parser):\n    group = parser.add_argument_group(title=\"mixed precision\")\n\n    group.add_argument(\"--fp16\", action=\"store_true\", help=\"Run model in fp16 mode.\")\n    group.add_argument(\"--ln-fp16\", action=\"store_true\", help=\"Run layernorm in fp16 mode.\")\n    group.add_argument(\n        \"--bf16\", action=\"store_true\", help=\"Run model in bfloat16 mode.\"\n    )\n    group.add_argument(\n        \"--loss-scale\",\n        type=float,\n        default=None,\n        help=\"Static loss scaling, positive power of 2 \"\n        \"values can improve fp16 convergence. If None, dynamic\"\n        \"loss scaling is used.\",\n    )\n    group.add_argument(\n        \"--initial-loss-scale\",\n        type=float,\n        default=2 ** 32,\n        help=\"Initial loss-scale for dynamic loss scaling.\",\n    )\n    group.add_argument(\n        \"--min-loss-scale\",\n        type=float,\n        default=1.0,\n        help=\"Minimum loss scale for dynamic loss scale.\",\n    )\n    group.add_argument(\n        \"--loss-scale-window\",\n        type=float,\n        default=1000,\n        help=\"Window over which to raise/lower dynamic scale.\",\n    )\n    group.add_argument(\n        \"--hysteresis\", type=int, default=2, help=\"hysteresis for dynamic loss scaling\"\n    )\n    group.add_argument(\n        \"--fp32-residual-connection\",\n        action=\"store_true\",\n        help=\"Move residual connections to fp32.\",\n    )\n    group.add_argument('--apply-query-key-layer-scaling', action='store_true',\n                       help='Scale Q * K^T by 1 / layer-number. If this flag '\n                       'is set, then it will automatically set '\n                       'attention-softmax-in-fp32 to true')\n    group.add_argument(\n        \"--attention-softmax-in-fp32\",\n        action=\"store_true\",\n        help=\"Run attention masking and softmax in fp32. \"\n        \"This flag is ignored unless \"\n        \"--no-query-key-layer-scaling is specified.\",\n    )\n    group.add_argument(\n        \"--accumulate-allreduce-grads-in-fp32\",\n        action=\"store_true\",\n        help=\"Gradient accumulation and all-reduce in fp32.\",\n    )\n    group.add_argument(\n        \"--fp16-lm-cross-entropy\",\n        action=\"store_true\",\n        help=\"Move the cross entropy unreduced loss calculation\" \"for lm head to fp16.\",\n    )\n\n    return parser\n\n\ndef _add_distributed_args(parser):\n    group = parser.add_argument_group(title=\"distributed\")\n\n    group.add_argument(\n        \"--tensor-model-parallel-size\",\n        type=int,\n        default=1,\n        help=\"Degree of tensor model parallelism.\",\n    )\n    group.add_argument(\n        \"--pipeline-model-parallel-size\",\n        type=int,\n        default=1,\n        help=\"Degree of pipeline model parallelism.\",\n    )\n    group.add_argument(\n        \"--model-parallel-size\",\n        type=int,\n        default=None,\n        help=\"Old model parallel argument, do not use. Use \"\n        \"--tensor-model-parallel-size instead.\",\n    )\n    group.add_argument(\n        \"--num-layers-per-virtual-pipeline-stage\",\n        type=int,\n        default=None,\n        help=\"Number of layers per virtual pipeline stage\",\n    )\n    group.add_argument(\n        \"--distributed-backend\",\n        default=\"nccl\",\n        choices=[\"nccl\", \"gloo\"],\n        help=\"Which backend to use for distributed training.\",\n    )\n    group.add_argument(\n        \"--DDP-impl\",\n        default=\"local\",\n        choices=[\"local\", \"torch\"],\n        help=\"which DistributedDataParallel implementation \" \"to use.\",\n    )\n    group.add_argument(\n        \"--use-contiguous-buffers-in-ddp\",\n        action=\"store_true\",\n        help=\"If set, use contiguous buffer in DDP. Note that \"\n        \"this option only works woth local DDP.\",\n    )\n    group.add_argument(\n        \"--no-scatter-gather-tensors-in-pipeline\",\n        action=\"store_false\",\n        help=\"Use scatter/gather to optimize communication of tensors in pipeline\",\n        dest=\"scatter_gather_tensors_in_pipeline\",\n    )\n    group.add_argument(\n        \"--local_rank\",\n        type=int,\n        default=None,\n        help=\"local rank passed from distributed launcher.\",\n    )\n    group.add_argument(\n        \"--lazy-mpu-init\",\n        type=bool,\n        required=False,\n        help=\"If set to True, initialize_megatron() \"\n        \"skips DDP initialization and returns function to \"\n        \"complete it instead.Also turns on \"\n        \"--use-cpu-initialization flag. This is for \"\n        \"external DDP manager.\",\n    )\n    group.add_argument(\n        \"--use-cpu-initialization\",\n        action=\"store_true\",\n        default=None,\n        help=\"If set, affine parallel weights \" \"initialization uses CPU\",\n    )\n    group.add_argument(\n        \"--force-device\",\n        type=int,\n        default=None,\n        help=\"Force the model to run on a particular gpu\",\n    )\n    group.add_argument(\n        \"--force-default\",\n        action=\"store_true\",\n        help=\"Force setting default arguments for distributed training\",\n    )\n    return parser\n\n\ndef _add_validation_args(parser):\n    group = parser.add_argument_group(title=\"validation\")\n\n    group.add_argument(\n        \"--eval-iters\",\n        type=int,\n        default=100,\n        help=\"Number of iterations to run for evaluation\" \"validation/test for.\",\n    )\n    group.add_argument(\n        \"--eval-interval\",\n        type=int,\n        default=1000,\n        help=\"Interval between running evaluation on \" \"validation set.\",\n    )\n    group.add_argument(\n        \"--co-evaluation\",\n        action=\"store_true\",\n        help=\"If set, run evaluation on each part of the validation set\"\n    )\n\n    return parser\n\n\ndef _add_data_args(parser):\n    group = parser.add_argument_group(title=\"data and dataloader\")\n\n    group.add_argument(\n        \"--data-path\",\n        nargs=\"*\",\n        default=None,\n        help=\"Path to the training dataset. Accepted format:\"\n        \"1) a single data path, 2) multiple datasets in the\"\n        \"form: dataset1-weight dataset1-path dataset2-weight \"\n        \"dataset2-path ...\",\n    )\n    group.add_argument(\n        \"--valid-data-path\",\n        nargs=\"*\",\n        default=None,\n        help=\"Path to the validation dataset. Accepted format:\"\n        \"1) a single data path, 2) multiple datasets in the\"\n        \"form: dataset1-weight dataset1-path dataset2-weight \"\n        \"dataset2-path ...;\"\n        \"when co-evaluation is enabled, the form will be dataset1-tag dataset1-path ...\",\n    )\n    group.add_argument(\"--index-cache-dir\", type=str, default=None, help=\"Path to the index cache\")\n    group.add_argument(\n        \"--test-data-path\",\n        nargs=\"*\",\n        default=None,\n        help=\"Path to the test dataset. Accepted format:\"\n             \"1) a single data path, 2) multiple datasets in the\"\n             \"form: dataset1-tag dataset1-path dataset2-tag \"\n             \"dataset2-path ...\",\n    )\n    group.add_argument(\n        \"--split\",\n        type=str,\n        default=\"969, 30, 1\",\n        help=\"Comma-separated list of proportions for training,\"\n        \" validation, and test split. For example the split \"\n        \"`90,5,5` will use 90%% of data for training, 5%% for \"\n        \"validation and 5%% for test.\",\n    )\n    group.add_argument(\n        \"--vocab-file\", \n        type=str, \n        default=None, \n        help=\"Path to the vocab file.\",\n    )\n    group.add_argument(\n        \"--merge-file\", \n        type=str, \n        default=None, \n        help=\"Path to the BPE merge file.\",\n    )\n    group.add_argument(\n        \"--tokenizer-path\", \n        type=str, \n        default=None, \n        help=\"Path to the tokenizer dir.\",\n    )\n    group.add_argument(\n        \"--vocab-extra-ids\",\n        type=int,\n        default=0,\n        help=\"Number of additional vocabulary tokens. \"\n        \"They are used for span masking in the T5 model\",\n    )\n    group.add_argument(\n        \"--seq-length\",\n        type=int,\n        default=None,\n        help=\"Maximum sequence length to process.\",\n    )\n    group.add_argument(\n        \"--encoder-seq-length\",\n        type=int,\n        default=None,\n        help=\"Maximum encoder sequence length to process.\"\n        \"This should be exclusive of --seq-length\",\n    )\n    group.add_argument(\n        \"--decoder-seq-length\",\n        type=int,\n        default=None,\n        help=\"Maximum decoder sequence length to process.\",\n    )\n    group.add_argument(\n        \"--retriever-seq-length\",\n        type=int,\n        default=256,\n        help=\"Maximum sequence length for the biencoder model \" \" for retriever\",\n    )\n    group.add_argument(\n        \"--sample-rate\",\n        type=float,\n        default=1.0,\n        help=\"sample rate for training data. Supposed to be 0 \" \" < sample_rate < 1\",\n    )\n    group.add_argument(\n        \"--mask-prob\",\n        type=float,\n        default=0.15,\n        help=\"Probability of replacing a token with mask.\",\n    )\n    group.add_argument(\n        \"--short-seq-prob\",\n        type=float,\n        default=0.1,\n        help=\"Probability of producing a short sequence.\",\n    )\n    group.add_argument(\"--mmap-warmup\", action=\"store_true\", help=\"Warm up mmap files.\")\n    group.add_argument(\n        \"--num-workers\", type=int, default=2, help=\"Dataloader number of workers.\"\n    )\n    group.add_argument(\n        \"--tokenizer-type\",\n        type=str,\n        default=None,\n        choices=[\"BertWordPieceLowerCase\", \"BertWordPieceCase\", \"GPT2BPETokenizer\"],\n        help=\"What type of tokenizer to use.\",\n    )\n    group.add_argument(\n        \"--data-impl\",\n        type=str,\n        default=\"infer\",\n        choices=[\"lazy\", \"cached\", \"mmap\", \"infer\"],\n        help=\"Implementation of indexed datasets.\",\n    )\n    group.add_argument(\n        \"--reset-position-ids\",\n        action=\"store_true\",\n        help=\"Reset posistion ids after end-of-document token.\",\n    )\n    group.add_argument(\n        \"--reset-attention-mask\",\n        action=\"store_true\",\n        help=\"Reset self attention masks after \" \"end-of-document token.\",\n    )\n    group.add_argument(\n        \"--eod-mask-loss\",\n        action=\"store_true\",\n        help=\"Mask loss for the end of document tokens.\",\n    )\n\n    return parser\n\n\ndef _add_autoresume_args(parser):\n    group = parser.add_argument_group(title=\"autoresume\")\n\n    group.add_argument(\n        \"--adlr-autoresume\",\n        action=\"store_true\",\n        help=\"Enable autoresume on adlr cluster.\",\n    )\n    group.add_argument(\n        \"--adlr-autoresume-interval\",\n        type=int,\n        default=1000,\n        help=\"Intervals over which check for autoresume\" \"termination signal\",\n    )\n\n    return parser\n\n\ndef _add_biencoder_args(parser):\n    group = parser.add_argument_group(title=\"biencoder\")\n\n    # network size\n    group.add_argument(\n        \"--ict-head-size\",\n        type=int,\n        default=None,\n        help=\"Size of block embeddings to be used in ICT and \"\n        \"REALM (paper default: 128)\",\n    )\n    group.add_argument(\n        \"--biencoder-projection-dim\",\n        type=int,\n        default=0,\n        help=\"Size of projection head used in biencoder (paper\" \" default: 128)\",\n    )\n    group.add_argument(\n        \"--biencoder-shared-query-context-model\",\n        action=\"store_true\",\n        help=\"Whether to share the parameters of the query \"\n        \"and context models or not\",\n    )\n\n    # checkpointing\n    group.add_argument(\n        \"--ict-load\",\n        type=str,\n        default=None,\n        help=\"Directory containing an ICTBertModel checkpoint\",\n    )\n    group.add_argument(\n        \"--bert-load\",\n        type=str,\n        default=None,\n        help=\"Directory containing an BertModel checkpoint \"\n        \"(needed to start ICT and REALM)\",\n    )\n\n    # data\n    group.add_argument(\n        \"--titles-data-path\",\n        type=str,\n        default=None,\n        help=\"Path to titles dataset used for ICT\",\n    )\n    group.add_argument(\n        \"--query-in-block-prob\",\n        type=float,\n        default=0.1,\n        help=\"Probability of keeping query in block for \" \"ICT dataset\",\n    )\n    group.add_argument(\n        \"--use-one-sent-docs\",\n        action=\"store_true\",\n        help=\"Whether to use one sentence documents in ICT\",\n    )\n    group.add_argument(\n        \"--evidence-data-path\",\n        type=str,\n        default=None,\n        help=\"Path to Wikipedia Evidence frm DPR paper\",\n    )\n\n    # training\n    group.add_argument(\n        \"--retriever-report-topk-accuracies\",\n        nargs=\"+\",\n        type=int,\n        default=[],\n        help=\"Which top-k accuracies to report \" \"(e.g. '1 5 20')\",\n    )\n    group.add_argument(\n        \"--retriever-score-scaling\",\n        action=\"store_true\",\n        help=\"Whether to scale retriever scores by inverse \"\n        \"square root of hidden size\",\n    )\n\n    # faiss index\n    group.add_argument(\n        \"--block-data-path\",\n        type=str,\n        default=None,\n        help=\"Where to save/load BlockData to/from\",\n    )\n    group.add_argument(\n        \"--embedding-path\",\n        type=str,\n        default=None,\n        help=\"Where to save/load Open-Retrieval Embedding\" \" data to/from\",\n    )\n\n    # indexer\n    group.add_argument(\n        \"--indexer-batch-size\",\n        type=int,\n        default=128,\n        help=\"How large of batches to use when doing indexing \" \"jobs\",\n    )\n    group.add_argument(\n        \"--indexer-log-interval\",\n        type=int,\n        default=1000,\n        help=\"After how many batches should the indexer \" \"report progress\",\n    )\n    return parser\n\n\ndef _add_vit_args(parser):\n    group = parser.add_argument_group(title=\"vit\")\n\n    group.add_argument(\n        \"--num-classes\",\n        type=int,\n        default=1000,\n        help=\"num of classes in vision classificaiton task\",\n    )\n    group.add_argument(\n        \"--img-dim\",\n        type=int,\n        default=224,\n        help=\"Image size for vision classification task\",\n    )\n    group.add_argument(\n        \"--num-channels\",\n        type=int,\n        default=3,\n        help=\"Number of channels in input image data\",\n    )\n    group.add_argument(\n        \"--patch-dim\", type=int, default=16, help=\"patch dimension used in vit\"\n    )\n\n    return parser\n\n\ndef _add_zero_args(parser):\n    \"\"\"Text generate arguments.\"\"\"\n\n    group = parser.add_argument_group(\"ZeRO configurations\", \"configurations\")\n    group.add_argument(\"--zero-stage\", type=int, default=1.0)\n    group.add_argument(\n        \"--zero-reduce-scatter\",\n        action=\"store_true\",\n        help=\"Use reduce scatter if specified\",\n    )\n    group.add_argument(\n        \"--zero-contigious-gradients\",\n        action=\"store_true\",\n        help=\"Use contigious memory optimizaiton if specified\",\n    )\n    group.add_argument(\"--zero-reduce-bucket-size\", type=int, default=0.0)\n    group.add_argument(\"--zero-allgather-bucket-size\", type=int, default=0.0)\n    group.add_argument(\n        \"--remote-device\",\n        type=str,\n        default=\"none\",\n        choices=[\"none\", \"cpu\", \"nvme\"],\n        help=\"Remote device for ZeRO-3 initialized parameters.\",\n    )\n    group.add_argument(\n        \"--use-pin-memory\",\n        action=\"store_true\",\n        help=\"Use pinned CPU memory for ZeRO-3 initialized model parameters.\",\n    )\n    return parser\n\n\ndef _add_memoryopt_args(parser):\n    \"\"\"Memory optimization arguments.\"\"\"\n\n    group = parser.add_argument_group(\"Memory optimizations\", \"configurations\")\n    group.add_argument(\n        \"--scattered-embeddings\",\n        action=\"store_true\",\n        help=\"Save memory by scattering embedding activations. \"\n        \"Introduces dropout differences across MP configurations.\",\n    )\n    group.add_argument(\n        \"--split-transformers\",\n        action=\"store_true\",\n        help=\"Save memory by splitting transformer layers into two parts, \"\n        \"allowing for more frequent activation checkpoint savings.\",\n    )\n    group.add_argument(\n        \"--memory-centric-tiled-linear\",\n        action=\"store_true\",\n        help=\"Save memory by tiling with deepspeed.zero.TiledLinear.\",\n    )\n    group.add_argument(\n        \"--tile-factor\",\n        type=int,\n        default=1,\n        help=\"Make all linear layers the same size of [hidden/tile_factor, hidden/tile_factor]. \"\n        \"Must be enabled with --memory-centric-tiled-linear. \"\n        \"Example A: if tile_factor=1, the qkv layer [hidden, 3* hidden] would be converted into [1,3] tiles of size [hidden,hidden]. \"\n        \"Example B: if tile_factor=2, the intermediate layer [4*hidden, hidden] will be converted into [8, 2] tiles of size [hidden/2, hidden/2]. \"\n        \"Default is 1.\",\n    )\n\n    return parser\n\n\ndef _add_activation_checkpoint_args(parser):\n    group = parser.add_argument_group(\n        \"Activation Checkpointing\", \"Checkpointing Configurations\"\n    )\n    group.add_argument(\n        \"--deepspeed-activation-checkpointing\",\n        action=\"store_true\",\n        help=\"uses activation checkpointing from deepspeed\",\n    )\n    group.add_argument(\n        \"--partition-activations\",\n        action=\"store_true\",\n        help=\"partition Activations across GPUs before checkpointing.\",\n    )\n    group.add_argument(\n        \"--contigious-checkpointing\",\n        action=\"store_true\",\n        help=\"Contigious memory checkpointing for activatoins.\",\n    )\n    group.add_argument(\n        \"--checkpoint-in-cpu\",\n        action=\"store_true\",\n        help=\"Move the activation checkpoints to CPU.\",\n    )\n    group.add_argument(\n        \"--synchronize-each-layer\",\n        action=\"store_true\",\n        help=\"does a synchronize at the beginning and end of each checkpointed layer.\",\n    )\n    group.add_argument(\n        \"--profile-backward\",\n        action=\"store_true\",\n        help=\"Enables backward pass profiling for checkpointed layers.\",\n    )\n    return parser\n"
  },
  {
    "path": "codegeex/megatron/checkpointing.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Input/output checkpointing.\"\"\"\n\nimport os\nimport random\nimport sys\nimport numpy as np\nfrom glob import glob\n\nimport torch\n\nfrom codegeex.megatron import get_args, mpu, print_rank_0, update_num_microbatches, utils\n\n_CHECKPOINT_VERSION = None\n\n\ndef set_checkpoint_version(value):\n    global _CHECKPOINT_VERSION\n    if _CHECKPOINT_VERSION is not None:\n        assert _CHECKPOINT_VERSION == value, \"checkpoint versions do not match\"\n    _CHECKPOINT_VERSION = value\n\n\ndef get_checkpoint_version():\n    global _CHECKPOINT_VERSION\n    return _CHECKPOINT_VERSION\n\n\ndef check_checkpoint_args(checkpoint_args):\n    \"\"\"Ensure fixed arguments for a model are the same for the input\n    arguments and the one retrieved from checkpoint.\"\"\"\n    args = get_args()\n\n    def _compare(arg_name, old_arg_name=None):\n        if old_arg_name is not None:\n            checkpoint_value = getattr(checkpoint_args, old_arg_name)\n        else:\n            checkpoint_value = getattr(checkpoint_args, arg_name)\n        args_value = getattr(args, arg_name)\n        error_message = (\n            \"{} value from checkpoint ({}) is not equal to the \"\n            \"input argument value ({}).\".format(arg_name, checkpoint_value, args_value)\n        )\n        assert checkpoint_value == args_value, error_message\n\n    _compare(\"num_layers\")\n    _compare(\"hidden_size\")\n    _compare(\"num_attention_heads\")\n    _compare(\"max_position_embeddings\")\n    if args.vocab_file:\n        _compare(\"make_vocab_size_divisible_by\")\n        _compare(\"padded_vocab_size\")\n        _compare(\"tokenizer_type\")\n    if get_checkpoint_version() < 3.0:\n        _compare(\"tensor_model_parallel_size\", old_arg_name=\"model_parallel_size\")\n    if get_checkpoint_version() >= 3.0:\n        _compare(\"tensor_model_parallel_size\")\n        _compare(\"pipeline_model_parallel_size\")\n\n\ndef ensure_directory_exists(filename):\n    \"\"\"Build filename's path if it does not already exists.\"\"\"\n    dirname = os.path.dirname(filename)\n    if not os.path.exists(dirname):\n        os.makedirs(dirname)\n\n\ndef get_checkpoint_name(checkpoints_path, iteration, release=False):\n    \"\"\"A unified checkpoint name.\"\"\"\n    if release:\n        directory = \"\"\n    else:\n        directory = f\"global_step{iteration}\"\n    # Use both the tensor and pipeline MP rank.\n    if mpu.get_pipeline_model_parallel_world_size() == 1:\n        return os.path.join(\n            checkpoints_path,\n            directory,\n            \"mp_rank_{:02d}_model_states.pt\".format(mpu.get_tensor_model_parallel_rank()),\n        )\n    return os.path.join(\n        checkpoints_path,\n        directory,\n        \"mp_rank_{:02d}_{:03d}_model_states.pt\".format(\n            mpu.get_tensor_model_parallel_rank(), mpu.get_pipeline_model_parallel_rank()\n        ),\n    )\n\n\ndef get_checkpoint_tracker_filename(checkpoints_path):\n    \"\"\"Tracker file rescords the latest chckpoint during\n    training to restart from.\"\"\"\n    return os.path.join(checkpoints_path, \"latest_checkpointed_iteration.txt\")\n\n\ndef save_checkpoint(iteration, model, optimizer, lr_scheduler):\n    \"\"\"Save a model checkpoint.\"\"\"\n    args = get_args()\n\n    # Only rank zero of the data parallel writes to the disk.\n    if not args.deepspeed:\n        model = utils.unwrap_model(model)\n\n    print_rank_0(\n        \"saving checkpoint at iteration {:7d} to {}\".format(iteration, args.save)\n    )\n\n    if (\n        not torch.distributed.is_initialized()\n        or mpu.get_data_parallel_rank() == 0\n        or args.deepspeed\n    ):\n\n        # Arguments, iteration, and model.\n        state_dict = {}\n        state_dict[\"args\"] = args\n        state_dict[\"checkpoint_version\"] = 3.0\n        state_dict[\"iteration\"] = iteration\n        state_dict[\"tokens\"] = args.consumed_train_tokens\n\n        # DeepSpeed saves the model/optimizer/scheduler\n        if not args.deepspeed:\n            if len(model) == 1:\n                state_dict[\"model\"] = model[0].state_dict_for_save_checkpoint()\n            else:\n                for i in range(len(model)):\n                    mpu.set_virtual_pipeline_model_parallel_rank(i)\n                    state_dict[\"model%d\" % i] = model[\n                        i\n                    ].state_dict_for_save_checkpoint()\n\n            # Optimizer stuff.\n            if not args.no_save_optim:\n                if optimizer is not None:\n                    state_dict[\"optimizer\"] = optimizer.state_dict()\n                if lr_scheduler is not None:\n                    state_dict[\"lr_scheduler\"] = lr_scheduler.state_dict()\n\n        # RNG states.\n        if not args.no_save_rng:\n            state_dict[\"random_rng_state\"] = random.getstate()\n            state_dict[\"np_rng_state\"] = np.random.get_state()\n            state_dict[\"torch_rng_state\"] = torch.get_rng_state()\n            state_dict[\"cuda_rng_state\"] = torch.cuda.get_rng_state()\n            state_dict[\"rng_tracker_states\"] = mpu.get_cuda_rng_tracker().get_states()\n\n        # Save.\n        checkpoint_name = get_checkpoint_name(args.save, iteration)\n        if not args.deepspeed:\n            ensure_directory_exists(checkpoint_name)\n            torch.save(state_dict, checkpoint_name)\n\n    if args.deepspeed:\n        # megatron model uses state_dict_for_save_checkpointing instead of the standard state_dict\n        # state_dict is used by deepspeed for module saving so it needs to point to the right function\n        if args.no_pipeline_parallel:\n            original_state_dict = model[0].module.state_dict\n            model[0].module.state_dict = model[0].module.state_dict_for_save_checkpoint\n\n        # Saving is a collective communication\n        checkpoint_name = get_checkpoint_name(args.save, iteration)\n        # Trim off the filename and mp_rank_* directory.\n        for _ in range(2):\n            checkpoint_name = os.path.dirname(checkpoint_name)\n        model[0].save_checkpoint(checkpoint_name, client_state=state_dict)\n\n        if args.no_pipeline_parallel:\n            model[0].module.state_dict = original_state_dict\n\n    # Wait so everyone is done (necessary)\n    if torch.distributed.is_initialized():\n        torch.distributed.barrier()\n\n    print_rank_0(\n        \"  successfully saved checkpoint at iteration {:7d} to {}\".format(\n            iteration, args.save\n        )\n    )\n\n    # And update the latest iteration\n    if not torch.distributed.is_initialized() or torch.distributed.get_rank() == 0:\n        tracker_filename = get_checkpoint_tracker_filename(args.save)\n        with open(tracker_filename, \"w\") as f:\n            f.write(str(iteration))\n\n    # Wait so everyone is done (not necessary)\n    if torch.distributed.is_initialized():\n        torch.distributed.barrier()\n\n\ndef _transpose_first_dim(t, num_splits, num_splits_first, model):\n    input_shape = t.size()\n    # We use a self_attention module but the values extracted aren't\n    # specific to self attention so should work for cross attention as well\n    while hasattr(model, \"module\"):\n        model = model.module\n    attention_module = model.language_model.encoder.layers[0].self_attention\n    hidden_size_per_attention_head = attention_module.hidden_size_per_attention_head\n    num_attention_heads_per_partition = (\n        attention_module.num_attention_heads_per_partition\n    )\n    if num_splits_first:\n        \"\"\"[num_splits * np * hn, h]\n        -->(view) [num_splits, np, hn, h]\n        -->(tranpose) [np, num_splits, hn, h]\n        -->(view) [np * num_splits * hn, h]\"\"\"\n\n        intermediate_shape = (\n            num_splits,\n            num_attention_heads_per_partition,\n            hidden_size_per_attention_head,\n        ) + input_shape[1:]\n\n        t = t.view(*intermediate_shape)\n        t = t.transpose(0, 1).contiguous()\n    else:\n        \"\"\"[np * hn * num_splits, h]\n        -->(view) [np, hn, num_splits, h]\n        -->(tranpose) [np, num_splits, hn, h]\n        -->(view) [np * num_splits * hn, h]\"\"\"\n\n        intermediate_shape = (\n            num_attention_heads_per_partition,\n            hidden_size_per_attention_head,\n            num_splits,\n        ) + input_shape[1:]\n\n        t = t.view(*intermediate_shape)\n        t = t.transpose(1, 2).contiguous()\n    t = t.view(*input_shape)\n\n    return t\n\n\ndef fix_query_key_value_ordering(model, checkpoint_version):\n    \"\"\"Fix up query/key/value matrix ordering if checkpoint\n    version is smaller than 2.0\n    \"\"\"\n    if checkpoint_version < 2.0:\n        if isinstance(model, list):\n            assert len(model) == 1\n            model = model[0]\n        for name, param in model.named_parameters():\n            if name.endswith((\".query_key_value.weight\", \".query_key_value.bias\")):\n                if checkpoint_version == 0:\n                    fixed_param = _transpose_first_dim(param.data, 3, True, model)\n                elif checkpoint_version == 1.0:\n                    fixed_param = _transpose_first_dim(param.data, 3, False, model)\n                else:\n                    print_rank_0(f\"Invalid checkpoint version {checkpoint_version}.\")\n                    sys.exit()\n                param.data.copy_(fixed_param)\n            if name.endswith((\".key_value.weight\", \".key_value.bias\")):\n                if checkpoint_version == 0:\n                    fixed_param = _transpose_first_dim(param.data, 2, True, model)\n                elif checkpoint_version == 1.0:\n                    fixed_param = _transpose_first_dim(param.data, 2, False, model)\n                else:\n                    print_rank_0(f\"Invalid checkpoint version {checkpoint_version}.\")\n                    sys.exit()\n                param.data.copy_(fixed_param)\n        print_rank_0(\n            \" successfully fixed query-key-values ordering for\"\n            \" checkpoint version {}\".format(checkpoint_version)\n        )\n\n\ndef load_deepspeed_state(model):\n    model = utils.unwrap_model(model)\n    args = get_args()\n    load_dir = args.load\n    if os.path.isdir(load_dir):\n        model_state_paths = glob(os.path.join(load_dir, \"*model_states.pt\"))\n        assert len(model_state_paths) == 1, (\n            \"only support loading deepspeed checkpoint of model parallel size 1\"\n            \", but got {}\".format(model_state_paths)\n        )\n        model_state_path = model_state_paths[0]\n    else:\n        model_state_path = load_dir\n    state_dict = torch.load(model_state_path, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    model[0].load_state_dict(state_dict, strict=True)\n\n\ndef load_checkpoint(\n    model, \n    optimizer, \n    lr_scheduler, \n    load_arg=\"load\", \n    strict=True,\n):\n    \"\"\"Load a model checkpoint and return the iteration.\n    strict (bool): whether to strictly enforce that the keys in\n        :attr:`state_dict` of the checkpoint match the names of\n        parameters and buffers in model.\n    \"\"\"\n    args = get_args()\n    load_dir = getattr(args, load_arg)\n\n    if args.deepspeed:\n        loaded_dir, state_dict = model[0].load_checkpoint(load_dir)\n        if loaded_dir is None:\n            print_rank_0(\n                \"WARNING: could not find the metadata file {} \".format(load_dir)\n            )\n            print_rank_0(\n                \"    will not load any checkpoints and will start from \" \"random\"\n            )\n            return 0\n        release = False\n    else:\n        model = utils.unwrap_model(model)\n\n        if load_dir.endswith(\".pt\"):\n            checkpoint_name = load_dir\n            release = True\n        else:\n            # Read the tracker file and set the iteration.\n            tracker_filename = get_checkpoint_tracker_filename(load_dir)\n\n            # If no tracker file, return iretation zero.\n            if not os.path.isfile(tracker_filename):\n                print_rank_0(\n                    \"WARNING: could not find the metadata file {} \".format(tracker_filename)\n                )\n                iteration = 0\n                release = True\n                checkpoint_name = get_checkpoint_name(load_dir, iteration, release)\n                if not os.path.isfile(checkpoint_name):\n                    print_rank_0(\n                        \"    will not load any checkpoints and will start from random\"\n                    )\n                    return 0\n            else:\n                # Otherwise, read the tracker file and either set the iteration or\n                # mark it as a release checkpoint.\n                iteration = 0\n                release = False\n                with open(tracker_filename, \"r\") as f:\n                    metastring = f.read().strip()\n                    try:\n                        iteration = int(metastring)\n                    except ValueError:\n                        release = metastring == \"release\"\n                        if not release:\n                            print_rank_0(\n                                \"ERROR: Invalid metadata file {}. Exiting\".format(\n                                    tracker_filename\n                                )\n                            )\n                            sys.exit()\n\n                assert iteration > 0 or release, \"error parsing metadata file {}\".format(\n                    tracker_filename\n                )\n\n                # Checkpoint.\n                checkpoint_name = get_checkpoint_name(load_dir, iteration, release)\n                print_rank_0(f\" loading checkpoint from {args.load} at iteration {iteration}\")\n                \n\n        # Load the checkpoint.\n        try:\n            state_dict = torch.load(checkpoint_name, map_location=\"cpu\")\n        except ModuleNotFoundError:\n            from megatron.fp16_deprecated import loss_scaler\n\n            # For backward compatibility.\n            print_rank_0(\" > deserializing using the old code structure ...\")\n            sys.modules[\"fp16.loss_scaler\"] = sys.modules[\n                \"megatron.fp16_deprecated.loss_scaler\"\n            ]\n            sys.modules[\"megatron.fp16.loss_scaler\"] = sys.modules[\n                \"megatron.fp16_deprecated.loss_scaler\"\n            ]\n            state_dict = torch.load(checkpoint_name, map_location=\"cpu\")\n            sys.modules.pop(\"fp16.loss_scaler\", None)\n            sys.modules.pop(\"megatron.fp16.loss_scaler\", None)\n        except BaseException as e:\n            print_rank_0(\"could not load the checkpoint\")\n            print_rank_0(e)\n            sys.exit()\n\n    # set checkpoint version\n    set_checkpoint_version(state_dict.get(\"checkpoint_version\", 0))\n\n    # Set iteration.\n    if args.finetune or release:\n        iteration = 0\n    else:\n        try:\n            iteration = state_dict[\"iteration\"]\n            if \"tokens\" in state_dict:\n                args.consumed_train_tokens = state_dict[\"tokens\"]\n        except KeyError:\n            try:  # Backward compatible with older checkpoints\n                iteration = state_dict[\"total_iters\"]\n            except KeyError:\n                print_rank_0(\n                    \"A metadata file exists but unable to load \"\n                    \"iteration from checkpoint {}, exiting\".format(checkpoint_name)\n                )\n                sys.exit()\n\n    # Check arguments.\n    assert args.consumed_train_samples == 0\n    assert args.consumed_valid_samples == 0\n    if \"args\" in state_dict:\n        checkpoint_args = state_dict[\"args\"]\n        check_checkpoint_args(checkpoint_args)\n        args.consumed_train_samples = getattr(\n            checkpoint_args, \"consumed_train_samples\", 0\n        )\n        update_num_microbatches(consumed_samples=args.consumed_train_samples)\n        args.consumed_valid_samples = getattr(\n            checkpoint_args, \"consumed_valid_samples\", 0\n        )\n    else:\n        print_rank_0(\"could not find arguments in the checkpoint ...\")\n\n    # Model.\n    if not args.deepspeed:\n        if release:\n            if len(model) == 1:\n                model[0].load_state_dict(state_dict[\"module\"], strict=strict)\n            else:\n                for i in range(len(model)):\n                    mpu.set_virtual_pipeline_model_parallel_rank(i)\n                    model[i].load_state_dict(state_dict[\"model%d\" % i], strict=strict)\n        else:\n            if len(model) == 1:\n                model[0].load_state_dict(state_dict[\"module\"], strict=strict)\n            else:\n                for i in range(len(model)):\n                    mpu.set_virtual_pipeline_model_parallel_rank(i)\n                    model[i].load_state_dict(state_dict[\"model%d\" % i], strict=strict)\n\n    # Fix up query/key/value matrix ordering if needed\n    checkpoint_version = get_checkpoint_version()\n    print_rank_0(f\" checkpoint version {checkpoint_version}\")\n    fix_query_key_value_ordering(model, checkpoint_version)\n\n    # Optimizer.\n    if not args.deepspeed:\n        if not release and not args.finetune and not args.no_load_optim:\n            try:\n                if optimizer is not None:\n                    optimizer.load_state_dict(state_dict[\"optimizer\"])\n                if lr_scheduler is not None:\n                    lr_scheduler.load_state_dict(state_dict[\"lr_scheduler\"])\n            except KeyError:\n                print_rank_0(\n                    \"Unable to load optimizer from checkpoint {}. \"\n                    \"Specify --no-load-optim or --finetune to prevent \"\n                    \"attempting to load the optimizer state, \"\n                    \"exiting ...\".format(checkpoint_name)\n                )\n                sys.exit()\n\n    # rng states.\n    if not release and not args.finetune and not args.no_load_rng:\n        try:\n            random.setstate(state_dict[\"random_rng_state\"])\n            np.random.set_state(state_dict[\"np_rng_state\"])\n            torch.set_rng_state(state_dict[\"torch_rng_state\"])\n            torch.cuda.set_rng_state(state_dict[\"cuda_rng_state\"])\n            # Check for empty states array\n            if not state_dict[\"rng_tracker_states\"]:\n                raise KeyError\n            mpu.get_cuda_rng_tracker().set_states(state_dict[\"rng_tracker_states\"])\n        except KeyError:\n            print_rank_0(\n                \"Unable to load rng state from checkpoint {}. \"\n                \"Specify --no-load-rng or --finetune to prevent \"\n                \"attempting to load the rng state, \"\n                \"exiting ...\".format(checkpoint_name)\n            )\n            sys.exit()\n\n    # Some utilities want to load a checkpoint without distributed being initialized\n    # if torch.distributed.is_initialized():\n    #     torch.distributed.barrier()\n\n    print_rank_0(\n        f\"  successfully loaded checkpoint from {args.load} \"\n        f\"at iteration {iteration}\"\n    )\n\n    return iteration\n\n\ndef load_biencoder_checkpoint(\n    model, only_query_model=False, only_context_model=False, custom_load_path=None\n):\n    \"\"\"\n    selectively load retrieval models for indexing/retrieving\n    from saved checkpoints\n    \"\"\"\n\n    args = get_args()\n\n    model = utils.unwrap_model(model)\n\n    load_path = custom_load_path if custom_load_path is not None else args.load\n\n    tracker_filename = get_checkpoint_tracker_filename(load_path)\n    with open(tracker_filename, \"r\") as f:\n        iteration = int(f.read().strip())\n\n    checkpoint_name = get_checkpoint_name(load_path, iteration, False)\n    if mpu.get_data_parallel_rank() == 0:\n        print(\n            \"global rank {} is loading checkpoint {}\".format(\n                torch.distributed.get_rank(), checkpoint_name\n            )\n        )\n\n    state_dict = torch.load(checkpoint_name, map_location=\"cpu\")\n    ret_state_dict = state_dict[\"model\"]\n\n    if only_query_model:\n        ret_state_dict.pop(\"context_model\")\n    if only_context_model:\n        ret_state_dict.pop(\"query_model\")\n\n    assert len(model) == 1\n    model[0].load_state_dict(ret_state_dict)\n    torch.distributed.barrier()\n\n    if mpu.get_data_parallel_rank() == 0:\n        print(\" successfully loaded {}\".format(checkpoint_name))\n\n    return model\n"
  },
  {
    "path": "codegeex/megatron/code_generation_utils.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Utilities for generating text.\"\"\"\n\nimport copy\nimport json\nimport os\nimport time\nfrom typing import *\n\nimport torch\nimport torch.nn.functional as F\nfrom dataclasses import dataclass\n\nfrom codegeex.megatron import get_args, print_rank_0\nfrom codegeex.megatron import get_tokenizer\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.utils import get_ltor_masks_and_position_ids\nfrom codegeex.benchmark.utils import is_code_generation_finished\n\n\ndef get_batch(context_tokens, micro_batch_size=None):\n    \"\"\"Generate batch from context tokens.\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Move to GPU.\n    if micro_batch_size is None:\n        micro_batch_size = args.micro_batch_size\n    tokens = context_tokens.view(micro_batch_size, -1).contiguous().cuda()\n    # Get the attention mask and postition ids.\n    attention_mask, _, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n\n    return tokens, attention_mask, position_ids\n\n\ndef get_batch_(context_tokens):\n    \"\"\"Generate batch from context tokens.\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Move to GPU.\n    tokens = context_tokens.contiguous().cuda()\n    # Get the attention mask and postition ids.\n    attention_mask, _, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n\n    return tokens, attention_mask, position_ids\n\n\ndef top_k_logits(logits, top_k=0, top_p=0.0, filter_value=-float(\"Inf\")):\n    \"\"\"This function has been mostly taken from huggingface conversational\n    ai code at\n        https://medium.com/huggingface/how-to-build-a-state-of-the-art-\n             conversational-ai-with-transfer-learning-2d818ac26313\"\"\"\n\n    if top_k > 0:\n        # Remove all tokens with a probability less than the\n        # last token of the top-k\n        indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None]\n        logits[indices_to_remove] = filter_value\n\n    if top_p > 0.0:\n        # Cconvert to 1D\n        sorted_logits, sorted_indices = torch.sort(logits, descending=True, dim=-1)\n        cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1)\n\n        # Remove tokens with cumulative probability above the threshold\n        sorted_indices_to_remove = cumulative_probs > top_p\n        # Shift the indices to the right to keep also the first token\n        # above the threshold\n        sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()\n        sorted_indices_to_remove[..., 0] = 0\n        for i in range(sorted_indices.size(0)):\n            indices_to_remove = sorted_indices[i][sorted_indices_to_remove[i]]\n            logits[i][indices_to_remove] = filter_value\n\n    return logits\n\n\ndef generate_samples_input_from_file(model):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Read the sample file and open the output file.\n    assert args.sample_input_file is not None, \"sample input file is not provided.\"\n    if mpu.is_pipeline_first_stage() and mpu.get_tensor_model_parallel_rank() == 0:\n        fname = open(args.sample_input_file, \"r\")\n        all_raw_text = fname.readlines()\n        input_count = len(all_raw_text)\n        input_pos = 0\n        if args.sample_output_file is None:\n            sample_output_file = args.sample_input_file + \".out\"\n            print(\n                \"`sample-output-file` not specified, setting \"\n                \"it to {}\".format(sample_output_file)\n            )\n        else:\n            sample_output_file = args.sample_output_file\n        fname_out = open(sample_output_file, \"w+\")\n\n    context_count = 0\n    model.eval()\n    with torch.no_grad():\n        while True:\n            terminate_runs = 0\n            raw_text_len = 0\n\n            if (\n                    mpu.is_pipeline_first_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                raw_text = all_raw_text[input_pos]\n                input_pos += 1\n                if input_pos == input_count:\n                    raw_text = \"stop\"\n                raw_text_len = len(raw_text)\n\n                if \"stop\" in raw_text:\n                    terminate_runs = 1\n                else:\n                    context_tokens = tokenizer.tokenize(raw_text)\n                    context_length = len(context_tokens)\n\n                    if context_length >= (args.seq_length // 2):\n                        print(\n                            \"\\nContext length\",\n                            context_length,\n                            \"\\nPlease give smaller context (half of the \"\n                            \"sequence length)!\",\n                            flush=True,\n                        )\n                        continue\n            else:\n                context_tokens = tokenizer.tokenize(\"EMPTY TEXT\")\n                context_length = 0\n\n            input_info = [terminate_runs, raw_text_len, context_length]\n            input_info_tensor = torch.cuda.LongTensor(input_info)\n            torch.distributed.all_reduce(\n                input_info_tensor, group=mpu.get_model_parallel_group()\n            )\n            terminate_runs = input_info_tensor[0].item()\n            raw_text_len = input_info_tensor[1].item()\n            context_length = input_info_tensor[2].item()\n\n            if terminate_runs == 1:\n                return\n\n            # For pipeline parallel we send context tokens to other stages\n            # so they get the lengths correct\n            if (\n                    mpu.get_tensor_model_parallel_rank() == 0\n                    and args.pipeline_model_parallel_size > 1\n            ):\n                if mpu.is_pipeline_first_stage():\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                else:\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.empty(\n                        context_length, dtype=torch.int64, device=torch.device(\"cuda\")\n                    )\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                    context_tokens = context_tokens_tensor.cpu().numpy().tolist()\n\n            token_stream = get_token_stream(model, [context_tokens])\n            for _, decode_tokens in enumerate(token_stream):\n                pass\n\n            if mpu.get_tensor_model_parallel_rank() == 0:\n                if mpu.is_pipeline_first_stage():\n                    os.system(\"clear\")\n                    print(\"\\nContext:\", raw_text, flush=True)\n\n                    fname_out.write(\"\\nContext:\")\n                    fname_out.write(raw_text)\n\n                    decode_tokens, _ = decode_tokens\n                    decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n                    trim_decode_tokens = tokenizer.detokenize(decode_tokens)[\n                                         raw_text_len:\n                                         ]\n                    print(\"\\nMegatron-LM:\", trim_decode_tokens, flush=True)\n\n                    fname_out.write(\"\\n\\nMegatron-LM:\")\n                    fname_out.write(trim_decode_tokens)\n                    fname_out.write(\"\\n\")\n\n            raw_text = None\n            context_count += 1\n\n\n# We added this function to support the tasks evaluation such as squad\n# and drop in the https://github.com/EleutherAI/lm-evaluation-harness\n# codebase. The lm-evaluation-harness code can now call this function\n# similar to their current generate function call used for gpt style models.\ndef generate_samples_eval(model, context, max_gen_length, eos_token_id):\n    # Generate samples for lm evaluation\n    # NEED TO THINK ABOUT eos token\n\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    raw_text_len = len(context)\n    model.eval()\n\n    context_tokens = tokenizer.tokenize(context)\n    args.out_seq_length = max_gen_length + len(context_tokens)\n    args.eos_id = eos_token_id\n\n    with torch.no_grad():\n        token_stream = get_token_stream(model, [context_tokens])\n        for counter, decode_tokens in enumerate(token_stream):\n            if counter == args.out_seq_length:\n                break\n\n    decode_tokens, _ = decode_tokens\n    decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n    trim_decode_tokens = tokenizer.detokenize(decode_tokens)[raw_text_len:]\n\n    return trim_decode_tokens\n\n\ndef generate_samples_interactive_code_contest(model, print_frequency=10):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    context_count = 0\n    model.eval()\n    with torch.no_grad():\n        while True:\n            terminate_runs = 0\n            raw_text_len = 0\n\n            if (\n                    mpu.is_pipeline_first_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                # os.system(\"clear\")\n                raw_text = []\n                input_line = input(\"\\nContext prompt (EOF to exit) >>> \")\n\n                if input_line == \":recompute\":\n                    args.recompute = True\n                    print(f\"set recompute: {args.recompute}\")\n                    continue\n\n                if input_line == \":no-recompute\":\n                    args.recompute = False\n                    print(f\"set recompute: {args.recompute}\")\n                    continue\n\n                while input_line != \"EOF\":\n                    raw_text.append(input_line)\n                    input_line = input(\"\\nContext prompt (EOF to exit) >>> \")\n                raw_text = \"\\n\".join(raw_text)\n\n                raw_text_len = len(raw_text)\n\n                if \"stop\" in raw_text:\n                    # terminate_runs = 1\n                    pass\n                else:\n                    context_tokens = tokenizer.tokenize(raw_text)\n                    context_length = len(context_tokens)\n\n                    if context_length >= (args.seq_length // 2):\n                        print(\n                            \"\\nContext length\",\n                            context_length,\n                            \"\\nPlease give smaller context (half of the \"\n                            \"sequence length)!\",\n                            flush=True,\n                        )\n                        continue\n            else:\n                context_tokens = tokenizer.tokenize(\"EMPTY TEXT\")\n                context_length = 0\n\n            input_info = [terminate_runs, raw_text_len, context_length]\n            input_info_tensor = torch.cuda.LongTensor(input_info)\n            torch.distributed.all_reduce(\n                input_info_tensor, group=mpu.get_model_parallel_group()\n            )\n            terminate_runs = input_info_tensor[0].item()\n            raw_text_len = input_info_tensor[1].item()\n            context_length = input_info_tensor[2].item()\n\n            if terminate_runs == 1:\n                return\n\n            # For pipeline parallel we send context tokens to other stages\n            # so they get the lengths correct\n            if (\n                    mpu.get_tensor_model_parallel_rank() == 0\n                    and args.pipeline_model_parallel_size > 1\n            ):\n                if mpu.is_pipeline_first_stage():\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                else:\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.empty(\n                        context_length, dtype=torch.int64, device=torch.device(\"cuda\")\n                    )\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                    context_tokens = context_tokens_tensor.cpu().numpy().tolist()\n\n            token_stream = get_token_stream(model, [context_tokens for _ in range(args.micro_batch_size)])\n\n            for counter, decode_tokens in enumerate(token_stream):\n                if (\n                        counter % print_frequency != 0\n                        or mpu.get_tensor_model_parallel_rank() != 0\n                        or not mpu.is_pipeline_first_stage()\n                ):\n                    continue\n\n                os.system(\"clear\")\n                print(\"\\nContext:\", raw_text, flush=True)\n\n                decode_tokens, _ = decode_tokens\n                decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n                trim_decode_tokens = tokenizer.detokenize(decode_tokens)[raw_text_len:]\n                print(f\"\\nMegatron-LM (gen len: {counter}):\", trim_decode_tokens, flush=True)\n\n            if (\n                    mpu.is_pipeline_first_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                os.system(\"clear\")\n                print(\"\\nContext:\", raw_text, flush=True)\n\n                if not isinstance(decode_tokens, list):\n                    decode_tokens, _ = decode_tokens\n                    decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n                trim_decode_tokens = tokenizer.detokenize(decode_tokens)[raw_text_len:]\n                print(\"\\nMegatron-LM:\", trim_decode_tokens, flush=True)\n\n                input(\"\\nPress Enter to continue >>>\")\n\n            raw_text = None\n            context_count += 1\n\n\ndef generate_samples_interactive(model, print_frequency=24):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    context_count = 0\n    model.eval()\n    with torch.no_grad():\n        while True:\n            terminate_runs = 0\n            raw_text_len = 0\n\n            if (\n                    mpu.is_pipeline_first_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                os.system(\"clear\")\n                raw_text = input(\"\\nContext prompt (stop to exit) >>> \")\n                while not raw_text:\n                    print(\"Prompt should not be empty!\")\n                    raw_text = input(\"\\nContext prompt (stop to exit) >>> \")\n                raw_text_len = len(raw_text)\n\n                if \"stop\" in raw_text:\n                    terminate_runs = 1\n                else:\n                    context_tokens = tokenizer.tokenize(raw_text)\n                    context_length = len(context_tokens)\n\n                    if context_length >= (args.seq_length // 2):\n                        print(\n                            \"\\nContext length\",\n                            context_length,\n                            \"\\nPlease give smaller context (half of the \"\n                            \"sequence length)!\",\n                            flush=True,\n                        )\n                        continue\n            else:\n                context_tokens = tokenizer.tokenize(\"EMPTY TEXT\")\n                context_length = 0\n\n            input_info = [terminate_runs, raw_text_len, context_length]\n            input_info_tensor = torch.cuda.LongTensor(input_info)\n            torch.distributed.all_reduce(\n                input_info_tensor, group=mpu.get_model_parallel_group()\n            )\n            terminate_runs = input_info_tensor[0].item()\n            raw_text_len = input_info_tensor[1].item()\n            context_length = input_info_tensor[2].item()\n\n            if terminate_runs == 1:\n                return\n\n            # For pipeline parallel we send context tokens to other stages\n            # so they get the lengths correct\n            if (\n                    mpu.get_tensor_model_parallel_rank() == 0\n                    and args.pipeline_model_parallel_size > 1\n            ):\n                if mpu.is_pipeline_first_stage():\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                else:\n                    src = mpu.get_pipeline_model_parallel_first_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    context_tokens_tensor = torch.empty(\n                        context_length, dtype=torch.int64, device=torch.device(\"cuda\")\n                    )\n                    torch.distributed.broadcast(context_tokens_tensor, src, group)\n                    context_tokens = context_tokens_tensor.cpu().numpy().tolist()\n\n            token_stream = get_token_stream(model, [context_tokens])\n\n            for counter, decode_tokens in enumerate(token_stream):\n                if (\n                        counter % print_frequency != 0\n                        or mpu.get_tensor_model_parallel_rank() != 0\n                        or not mpu.is_pipeline_first_stage()\n                ):\n                    continue\n\n                os.system(\"clear\")\n                print(\"\\nContext:\", raw_text, flush=True)\n\n                decode_tokens, _ = decode_tokens\n                decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n                trim_decode_tokens = tokenizer.detokenize(decode_tokens)[raw_text_len:]\n                print(\"\\nMegatron-LM:\", trim_decode_tokens, flush=True)\n\n            if (\n                    mpu.is_pipeline_first_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                os.system(\"clear\")\n                print(\"\\nContext:\", raw_text, flush=True)\n\n                if not isinstance(decode_tokens, list):\n                    decode_tokens, _ = decode_tokens\n                    decode_tokens = decode_tokens[0].cpu().numpy().tolist()\n                trim_decode_tokens = tokenizer.detokenize(decode_tokens)[raw_text_len:]\n                print(\"\\nMegatron-LM:\", trim_decode_tokens, flush=True)\n\n                input(\"\\nPress Enter to continue >>>\")\n\n            raw_text = None\n            context_count += 1\n\n\ndef generate_samples_unconditional(model):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    num_samples = args.num_samples\n    context_tokens = [[tokenizer.eod] for _ in range(args.micro_batch_size)]\n    ctr = 0\n    while True:\n        start_time = time.time()\n        for token_stream in get_token_stream(model, copy.deepcopy(context_tokens)):\n            pass\n        if mpu.is_pipeline_last_stage() and mpu.get_tensor_model_parallel_rank() == 0:\n            if ctr % args.log_interval == 0:\n                print(\n                    \"Avg s/batch:\",\n                    (time.time() - start_time) / min(args.log_interval, ctr + 1),\n                )\n                start_time = time.time()\n            length = len(token_stream)\n            token_batch = token_stream[0].cpu().numpy().tolist()\n            length_batch = token_stream[1].cpu().numpy().tolist()\n            assert len(length_batch) == args.micro_batch_size\n            for tokens, length in zip(token_batch, length_batch):\n                tokens = tokens[1: length - 1]\n                text = tokenizer.detokenize(tokens)\n                is_finished = length < args.seq_length - 1\n                datum = {\"text\": text, \"length\": length - 1, \"finished\": is_finished}\n                yield datum\n                ctr += 1\n                if ctr >= num_samples:\n                    break\n        else:\n            for _ in range(args.micro_batch_size):\n                yield None\n                ctr += 1\n                if ctr >= num_samples:\n                    break\n        if ctr >= num_samples:\n            break\n\n\ndef generate_and_write_samples_unconditional(model):\n    args = get_args()\n    assert args.genfile is not None\n    with open(args.genfile, \"w\") as f:\n        for datum in generate_samples_unconditional(model):\n            if (\n                    mpu.is_pipeline_last_stage()\n                    and mpu.get_tensor_model_parallel_rank() == 0\n            ):\n                f.write(json.dumps(datum) + \"\\n\")\n\n\ndef pad_batch(batch, pad_id, args):\n    context_lengths = []\n    for tokens in batch:\n        context_length = len(tokens)\n        if context_length < args.seq_length:\n            tokens.extend([pad_id] * (args.seq_length - context_length))\n        context_lengths.append(context_length)\n    return batch, context_lengths\n\n\ndef topk_sampling(logits: torch.FloatTensor, num_samples: int):\n    \"\"\"\n    Samples from a multinomial distribution using the top-k sampling strategy.\n\n    Args:\n        logits: A tensor of shape (batch_size, vocab_size) containing the logits.\n        num_samples: The number of samples to draw.\n    \"\"\"\n    log_prob = F.log_softmax(logits, dim=-1)\n    topk = torch.topk(log_prob, num_samples, dim=-1)\n    topk_tokens = topk.indices\n    topk_log_prob = topk.values\n\n    return topk_tokens, topk_log_prob\n\n\ndef nuclear_sampling(logits: torch.FloatTensor, temperature: float, top_p: float = None, top_k: int = None):\n    orig_log_probs = F.log_softmax(logits, dim=-1)\n    logits /= temperature\n    logits = top_k_logits(logits, top_k, top_p)\n    log_probs = F.softmax(logits, dim=-1)\n    tokens = torch.multinomial(log_probs, num_samples=1).view(-1)\n\n    indices = tokens.view(-1, 1)\n    new_scores = orig_log_probs.gather(1, indices).view(-1)\n\n    return tokens, new_scores\n\n\ndef sample_topk_tokens(model,\n                       input_tokens, attention_mask, position_ids,\n                       context_length: int, num_samples: int):\n    assert context_length < input_tokens.shape[-1], \"context_length must be smaller than seq_length\"\n\n    model.eval()\n    with torch.no_grad():\n        output = forward_step(\n            model,\n            input_tokens,\n            position_ids,\n            attention_mask,\n            tokentype_ids=None,\n            forward_method_parallel_output=False,\n        )\n    assert output is not None\n    logits = output[:, context_length - 1, :]\n\n    return topk_sampling(logits, num_samples)\n\n\ndef nuclear_sample_tokens(model,\n                          input_tokens, attention_mask, position_ids,\n                          context_length: int, temperature: float, top_p: float, top_k: int):\n    assert context_length < input_tokens.shape[-1], \"context_length must be smaller than seq_length\"\n\n    model.eval()\n    with torch.no_grad():\n        output = forward_step(\n            model,\n            input_tokens,\n            position_ids,\n            attention_mask,\n            tokentype_ids=None,\n            forward_method_parallel_output=False,\n        )\n    assert output is not None\n    logits = output[:, context_length - 1, :]\n    return nuclear_sampling(logits, temperature, top_p, top_k)\n\n\n@dataclass\nclass Beam:\n    tokens: List[int]\n    score: float\n\n    def __repr__(self):\n        return f\"<Beam {repr(get_tokenizer().detokenize(self.tokens))}, score={self.score}>\"\n\n    def get_code(self):\n        return get_tokenizer().detokenize(self.tokens)\n\n\ndef expand_beams(beams: List[Beam], num_beams: int, model) -> List[Beam]:\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    context_tokens = [b.tokens.copy() for b in beams]\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eod, args)\n\n    context_lengths = set(context_lengths)\n    assert len(context_lengths) == 1, \"context_lengths must be the same\"\n    context_length = list(context_lengths)[0]\n\n    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n    tokens, attention_mask, position_ids = get_batch_(context_tokens_tensor)\n    tokens, scores = sample_topk_tokens(model, tokens, attention_mask, position_ids, context_length, num_beams)\n    tokens = tokens.detach().cpu().tolist()\n    scores = scores.detach().cpu().tolist()\n    assert len(tokens) == len(beams), \"output tokens and input beams must have the same length\"\n\n    all_beams = []\n    for i in range(len(beams)):\n        this_tokens = tokens[i]\n        this_scores = scores[i]\n\n        for token, score in zip(this_tokens, this_scores):\n            all_beams.append(Beam(beams[i].tokens + [token], beams[i].score + score))\n\n    return all_beams\n\n\ndef beam_search(model, context_tokens, num_beams: int):\n    \"\"\"Beam search.\n\n    Note that this function does not support model parallel!\n    \"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    assert not isinstance(context_tokens[0], list), \"batched beam search not supported\"\n\n    initial_beam = Beam(context_tokens, 0.0)\n    context_len = len(context_tokens)\n    org_context_len = context_len\n    finished_beams = []\n\n    # first expansion\n    beams = expand_beams([initial_beam], num_beams, model)\n    context_len += 1\n\n    # print(f\"initial beam: {initial_beam}\")\n\n    while len(beams) > 0 and context_len < args.seq_length:\n        expanded_beams = expand_beams(beams, num_beams, model)\n        next_beams = []\n        for beam in expanded_beams:\n            if args.beam_warmup:\n                if len(beam.tokens) >= org_context_len + args.beam_warmup_length or beam.tokens[-1] == tokenizer.eod:\n                    finished_beams.append(beam)\n                else:\n                    next_beams.append(beam)\n            else:\n                if args.evaluation:\n                    generated_code = tokenizer.detokenize(beam.tokens[org_context_len:])\n                    if is_code_generation_finished(generated_code):\n                        finished_beams.append(beam)\n                        continue\n                if beam.tokens[-1] == tokenizer.eod:\n                    finished_beams.append(beam)\n                else:\n                    next_beams.append(beam)\n        # only keep top-k beams\n        next_beams.sort(key=lambda b: b.score, reverse=True)\n        beams = next_beams[:num_beams]\n        context_len += 1\n\n        if len(finished_beams) >= num_beams:\n            # first, only keep top-k beams\n            finished_beams.sort(key=lambda b: b.score, reverse=True)\n            finished_beams = finished_beams[:num_beams]\n            return finished_beams  # return finished beams with highest scores\n            # stop if all currently expanding beams has a score lower than the minimal score of finished ones\n            min_score = min([b.score for b in finished_beams])\n            if min_score >= beams[0].score:\n                break\n            else:\n                print(f\"we have got enough finished beams, but the minimal score is {min_score}\")\n                print(f\"and the maximum searching score is {beams[0].score}\")\n\n    # return top-k finished and unfinished beams\n    all_beams = finished_beams + beams\n    all_beams.sort(key=lambda b: b.score, reverse=True)\n\n    return all_beams[:num_beams]\n\n\n@dataclass\nclass Handle:\n    tokens: List[int]\n    score: float\n\n    def __repr__(self):\n        return f\"<Handle {repr(get_tokenizer().detokenize(self.tokens))}, score={self.score}>\"\n\n    def is_finished(self):\n        return len(self.tokens) and self.tokens[-1] == get_tokenizer().eod\n\n    def derived(self, new_token: int, log_prob: float):\n        assert not self.is_finished(), \"cannot derive from a finished handle\"\n        return Handle(self.tokens + [new_token], self.score + log_prob)\n\n\ndef expand_handles(handles: List[Handle], temperature: float, top_p: float, top_k: int, model):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    context_tokens = [b.tokens.copy() for b in handles]\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eod, args)\n\n    context_lengths = set(context_lengths)\n    assert len(context_lengths) == 1, \"context_lengths must be the same\"\n    context_length = list(context_lengths)[0]\n\n    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n    tokens, attention_mask, position_ids = get_batch_(context_tokens_tensor)\n    tokens, scores = nuclear_sample_tokens(model, tokens, attention_mask, position_ids, context_length, temperature,\n                                           top_p, top_k)\n    tokens = tokens.detach().cpu().tolist()\n    scores = scores.detach().cpu().tolist()\n    assert len(tokens) == len(handles), \"output tokens and input must have the same length\"\n\n    all_beams = []\n    for i in range(len(handles)):\n        this_tokens = tokens[i]\n        this_scores = scores[i]\n\n        all_beams.append(handles[i].derived(this_tokens, this_scores))\n\n    return all_beams\n\n\ndef generate_nuclear_sampling(model, context_tokens, num_samples: int, temperature: float, top_p: float, top_k: int):\n    \"\"\"Beam search.\n\n    Note that this function does not support model parallel!\n    \"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    assert not isinstance(context_tokens[0], list), \"batched beam search not supported\"\n\n    handles = [Handle(tokens=context_tokens, score=0) for _ in range(num_samples)]\n    context_len = len(context_tokens)\n    finished_handles = []\n\n    while len(handles) > 0 and context_len < args.seq_length:\n        expanded_handles = expand_handles(handles, temperature, top_p, top_k, model)\n\n        new_handles = []\n        for h in expanded_handles:\n            if h.is_finished():\n                finished_handles.append(h)\n            else:\n                new_handles.append(h)\n\n        context_len += 1\n        handles = new_handles\n\n    return handles + finished_handles\n\n\ndef forward_step(\n        model,\n        tokens,\n        position_ids,\n        attention_mask,\n        tokentype_ids,\n        layer_past=None,\n        get_key_value=None,\n        forward_method_parallel_output=None,\n        prompt_length=None,\n        context_length=None,\n):\n    # Hidden size changes when not using recompute, need to tell p2p_communicate\n    # functions the correct size\n    args = get_args()\n    orig_seq_length = args.seq_length\n    args.seq_length = tokens.shape[1]\n\n    # Forward pass through the model.\n    output_tensor = model(\n        tokens,\n        position_ids,\n        attention_mask,\n        tokentype_ids=tokentype_ids,\n        layer_past=layer_past,\n        get_key_value=get_key_value,\n        prompt_length=prompt_length,\n        context_length=context_length,\n    )\n\n    if get_key_value:\n        output_tensor, layer_past = output_tensor\n\n    args.seq_length = orig_seq_length\n    if get_key_value:\n        return output_tensor, layer_past\n\n    return output_tensor\n\n\ndef get_token_stream(\n        model,\n        context_tokens,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        micro_batch_size: int = None,\n        bad_ids: List = None,\n        temperature: float = None,\n        topp: float = None,\n        topk: int = None,\n):\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eod, args)\n\n    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n    context_length_tensor = torch.cuda.LongTensor(context_lengths)\n\n    torch.distributed.broadcast(\n        context_length_tensor,\n        mpu.get_tensor_model_parallel_src_rank(),\n        group=mpu.get_tensor_model_parallel_group(),\n    )\n    torch.distributed.broadcast(\n        context_tokens_tensor,\n        mpu.get_tensor_model_parallel_src_rank(),\n        group=mpu.get_tensor_model_parallel_group(),\n    )\n\n    context_length = context_length_tensor.min().item()\n    tokens, attention_mask, position_ids = get_batch(context_tokens_tensor, micro_batch_size)\n\n    batch_token_iterator = sample_sequence_batch(\n        model,\n        context_tokens_tensor,\n        context_length_tensor,\n        attention_mask,\n        position_ids,\n        return_scores=return_scores,\n        prompt_length=prompt_length,\n        bad_ids=bad_ids,\n        temperature=temperature,\n        topp=topp,\n        topk=topk,\n    )\n\n    if args.beam_search:\n        for beams in batch_token_iterator:\n            yield beams\n    else:\n        for tokens, lengths in batch_token_iterator:\n            context_length += 1\n            if tokens is not None:\n                yield tokens[:, :context_length], lengths\n            else:\n                yield None, None\n\n\ndef switch(val1, val2, boolean):\n    boolean = boolean.type_as(val1)\n    return (1 - boolean) * val1 + boolean * val2\n\n\ndef sample_sequence_batch(\n        model,\n        context_tokens,\n        context_lengths,\n        attention_mask,\n        position_ids,\n        maxlen=None,\n        type_ids=None,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        bad_ids: List = None,\n        temperature: float = None,\n        topp: float = None,\n        topk: int = None,\n):\n    args = get_args()\n    tokenizer = get_tokenizer()\n    temperature = temperature if temperature is not None else args.temperature\n    topp = topp if topp is not None else args.top_p\n    topk = topk if topk is not None else args.top_k\n\n    model.eval()\n    with torch.no_grad():\n        context_length = context_lengths.min().item()\n\n        # added eos_id to support the function generate_samples_eval that passes\n        # eos_id as an argument and needs termination when that id id found.\n        if hasattr(args, \"eos_id\"):\n            eos_id = args.eos_id\n        else:\n            eos_id = tokenizer.eod\n\n        counter = 0\n        org_context_length = context_length\n\n        layer_past = None\n        batch_size = context_tokens.size(0)\n        is_done = torch.zeros([batch_size]).byte().cuda()\n        tokens = context_tokens\n        if maxlen is None:\n            maxlen = args.seq_length - 1\n            if maxlen > (org_context_length + args.out_seq_length):\n                maxlen = org_context_length + args.out_seq_length\n\n        lengths = torch.ones([batch_size]).long().cuda() * maxlen\n        if return_scores:\n            scores = torch.zeros([batch_size]).float().cuda()\n\n        if args.beam_search:\n            beams = beam_search(model, context_tokens=tokens.cpu().numpy().tolist()[0][:context_length],\n                                num_beams=args.num_beams)\n            if args.beam_warmup:\n                beam = beams[0]\n                tokens_ = beam.tokens\n                tokens_ = (tokens_ if tokens_[-1] != tokenizer.eod else tokens_[:-1])\n                tokens_warmup = []\n                for i in range(batch_size):\n                    tokens_warmup.append(tokens_.copy())\n                tokens, context_lengths = pad_batch(tokens_warmup, tokenizer.eod, args)\n                tokens = torch.cuda.LongTensor(tokens)\n                context_lengths = torch.cuda.LongTensor(context_lengths)\n                context_length = len(tokens_)\n                org_context_length = context_length\n                if maxlen is None:\n                    maxlen = args.seq_length - 1\n                    if maxlen > (org_context_length + args.out_seq_length):\n                        maxlen = org_context_length + args.out_seq_length\n                lengths = torch.ones([batch_size]).long().cuda() * maxlen\n                tokens, attention_mask, position_ids = get_batch(tokens, batch_size)\n            else:\n                yield beams\n        else:\n            while context_length <= (maxlen):\n                if args.recompute:\n                    logits = model(tokens,\n                                position_ids,\n                                attention_mask,\n                                tokentype_ids=type_ids,\n                                forward_method_parallel_output=False,\n                                prompt_length=prompt_length,\n                                context_length=context_length,\n                                )\n                    logits = logits[:, context_length - 1, :]\n                else:\n                    types2use = None\n                    if counter == 0:\n                        tokens2use = tokens[:, :context_length]\n                        positions2use = position_ids[:, :context_length]\n                        if type_ids is not None:\n                            types2use = type_ids[:, :context_length]\n                    else:\n                        tokens2use = tokens[:, context_length - 1].view(\n                            batch_size, -1)\n                        positions2use = position_ids[:, context_length - 1].view(\n                            batch_size, -1)\n                        if type_ids is not None:\n                            types2use = type_ids[:, context_length - 1].view(\n                                batch_size, -1)\n                    logits, layer_past = model(tokens2use,\n                                            positions2use,\n                                            attention_mask,\n                                            layer_past=layer_past,\n                                            get_key_value=True,\n                                            tokentype_ids=types2use,\n                                            forward_method_parallel_output=False,\n                                            prompt_length=prompt_length,\n                                            context_length=context_length,\n                                            )\n                    logits = logits[:, -1].view(batch_size, -1).contiguous()\n\n                if mpu.is_pipeline_last_stage():\n                    if bad_ids is not None:\n                        for bad_id in bad_ids:\n                            logits[:, bad_id] = -10000\n                    if args.greedy:\n                        prev = torch.argmax(logits, dim=-1).view(-1)\n                    else:\n                        logits = logits.float()\n                        if return_scores:\n                            orig_log_probs = torch.log_softmax(logits, dim=-1)\n                        logits /= temperature\n                        logits = top_k_logits(logits, top_k=topk, top_p=topp)\n                        log_probs = F.softmax(logits, dim=-1)\n                        prev = torch.multinomial(log_probs, num_samples=1).view(-1)\n\n                    started = context_lengths <= context_length\n\n                    new_tokens = switch(tokens[:, context_length].view(-1), prev, started)\n\n                    if not args.greedy and return_scores:\n                        indices = prev.view(-1, 1)\n                        new_scores = orig_log_probs.gather(1, indices).view(-1)\n                        new_scores = new_scores * started\n                        new_scores = new_scores * is_done.bool().logical_not()\n                        scores += new_scores\n\n                    tokens[:, context_length] = new_tokens\n                    src = mpu.get_pipeline_model_parallel_last_rank()\n                    group = mpu.get_embedding_group()\n                    torch.distributed.broadcast(new_tokens, src, group)\n\n                    done_token = (prev == eos_id).byte() & started.byte()\n                    just_finished = (done_token & ~is_done).bool()\n                    lengths[just_finished.view(-1)] = context_length\n                    is_done = is_done | done_token\n\n                    done = torch.all(is_done)\n                    src = mpu.get_pipeline_model_parallel_last_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    torch.distributed.broadcast(done, src, group)\n\n                    if return_scores:\n                        yield tokens, (lengths, scores)\n                    else:\n                        yield tokens, lengths\n\n                else:\n                    if mpu.is_pipeline_first_stage():\n                        src = mpu.get_pipeline_model_parallel_last_rank()\n                        group = mpu.get_embedding_group()\n                        new_tokens = torch.empty_like(tokens[:, context_length])\n                        torch.distributed.broadcast(new_tokens, src, group)\n                        tokens[:, context_length] = new_tokens\n                        yield tokens, None\n                    else:\n                        yield None, None\n\n                    done = torch.cuda.ByteTensor([0])\n                    src = mpu.get_pipeline_model_parallel_last_rank()\n                    group = mpu.get_pipeline_model_parallel_group()\n                    torch.distributed.broadcast(done, src, group)\n\n                context_length += 1\n                counter += 1\n                if done:\n                    break\n"
  },
  {
    "path": "codegeex/megatron/convert_ckpt_parallel.py",
    "content": "\"\"\"Get model parallel partitions.\"\"\"\n\nimport os\nimport torch\nimport argparse\n\n\ndef get_change_ckpt_args(parser):\n    \"\"\"Provide extra arguments required for merging.\"\"\"\n    group = parser.add_argument_group(title='Mindspore to megatron')\n    group.add_argument(\n        '--load-ckpt-path',\n        type=str,\n        required=True,\n        help='path to load \".pt\" checkpoint.',\n    )\n    group.add_argument(\n        '--save-ckpt-path',\n        type=str,\n        required=True,\n        help='dir to save converted checkpoints.',\n    )\n    group.add_argument(\n        '--target-tensor-model-parallel-size',\n        type=int,\n        default=2,\n        help='target tensor model parallel size',\n    )\n    \n    return parser\n\n\ndef get_element_from_dict_by_path(d, path):\n    \"\"\"\n    Get element from dictionary by path. If element is not present, recursively add empty dictionaries.\n    Args:\n        d (dict): the dictionary to get the element from\n        path (list): the path to the element which is delimited by \".\"\n    \"\"\"\n    path = path.split(\".\")\n    for k in path:\n        if k not in d:\n            d[k] = {}\n        d = d[k]\n    return d\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser = get_change_ckpt_args(parser)\n    args, _ = parser.parse_known_args()\n    \n    print(f\"Load ckpt from {args.load_ckpt_path}...\")\n    state_dict = torch.load(args.load_ckpt_path, map_location=\"cpu\")\n\n    print(f\"Spliting ckpt into {args.target_tensor_model_parallel_size} parts...\")\n    output_state_dict = []\n    for i in range(args.target_tensor_model_parallel_size):\n        output_state_dict.append({})\n    \n    print(\"Converting Embedding layers...\")\n    word_embeddings = state_dict['module']['language_model']['embedding']['word_embeddings']['weight']\n    position_embeddings = state_dict['module']['language_model']['embedding']['position_embeddings']['weight']\n    out_word_embeddings = torch.chunk(word_embeddings, args.target_tensor_model_parallel_size, dim=0)\n    \n    for i in range(args.target_tensor_model_parallel_size):\n        pos_emb_dict = get_element_from_dict_by_path(\n            output_state_dict[i], \"module.language_model.embedding.position_embeddings\"\n        )\n        pos_emb_dict[\"weight\"] = position_embeddings\n\n        word_emb_dict = get_element_from_dict_by_path(\n            output_state_dict[i], \"module.language_model.embedding.word_embeddings\"\n        )\n        word_emb_dict[\"weight\"] = out_word_embeddings[i].clone()\n        \n    print(\"Converting QueryEmbedding layers...\")\n    query_embeddings = state_dict['module']['language_model']['topQueryEmbedding']['top_query_embeddings']['weight']\n    out_query_embeddings = torch.chunk(query_embeddings, args.target_tensor_model_parallel_size, dim=0)\n    \n    for i in range(args.target_tensor_model_parallel_size):\n        query_emb_dict = get_element_from_dict_by_path(\n            output_state_dict[i], \"module.language_model.topQueryEmbedding.top_query_embeddings\"\n        )\n        query_emb_dict[\"weight\"] = out_query_embeddings[i].clone()\n    \n    print(\"Converting Transformer layers...\")\n    for layer_name in state_dict['module']['language_model']['transformer'].keys():\n        params = state_dict['module']['language_model']['transformer'][layer_name]\n        if \"layernorm\" in layer_name:\n            pass\n        elif \"attention\" in layer_name and \"weight\" in layer_name:\n            if \"dense\" in layer_name:\n                params = torch.chunk(params, args.target_tensor_model_parallel_size, dim=1)\n            else:\n                params = torch.chunk(params, args.target_tensor_model_parallel_size, dim=0)\n        elif \"weight\" in layer_name and \"dense\" in layer_name:\n            if \"h_to_4h\" in layer_name:\n                params = torch.chunk(params, args.target_tensor_model_parallel_size, dim=0)\n            else:\n                params = torch.chunk(params, args.target_tensor_model_parallel_size, dim=1)\n        elif \"bias\" in layer_name:\n            if \"dense\" not in layer_name or \"mlp\" in layer_name:\n                if \"4h_to_h\" in layer_name:\n                    pass\n                else:\n                    params = torch.chunk(params, args.target_tensor_model_parallel_size, dim=0)\n                \n        for i in range(args.target_tensor_model_parallel_size):\n            params_dict = get_element_from_dict_by_path(output_state_dict[i], \"module.language_model.transformer\")\n            if type(params) is tuple:\n                params_dict[layer_name] = params[i].clone()\n            else:\n                params_dict[layer_name] = params\n    \n    os.makedirs(args.save_ckpt_path, exist_ok=True)\n    for rank in range(args.target_tensor_model_parallel_size):\n        save_ckpt_path = os.path.join(args.save_ckpt_path, f\"mp_rank_{rank:02d}_model_states.pt\")\n        torch.save(output_state_dict[rank], save_ckpt_path)\n        print(f\"Converted checkpoint saved in {save_ckpt_path}.\")\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "codegeex/megatron/data/__init__.py",
    "content": ""
  },
  {
    "path": "codegeex/megatron/data/blendable_dataset.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Blendable dataset.\"\"\"\n\nimport time\nimport torch\nimport numpy as np\n\nfrom codegeex.megatron import print_rank_0\n\n\nclass BlendableDataset(torch.utils.data.Dataset):\n    def __init__(self, datasets, weights):\n\n        self.datasets = datasets\n        num_datasets = len(datasets)\n        assert num_datasets == len(weights)\n\n        self.size = 0\n        for dataset in self.datasets:\n            self.size += len(dataset)\n\n        # Normalize weights.\n        weights = np.array(weights, dtype=np.float64)\n        sum_weights = np.sum(weights)\n        assert sum_weights > 0.0\n        weights /= sum_weights\n\n        # Build indecies.\n        start_time = time.time()\n        assert num_datasets < 255\n        self.dataset_index = np.zeros(self.size, dtype=np.uint8)\n        self.dataset_sample_index = np.zeros(self.size, dtype=np.int64)\n\n        from megatron.data import helpers\n\n        helpers.build_blending_indices(\n            self.dataset_index,\n            self.dataset_sample_index,\n            weights,\n            num_datasets,\n            self.size,\n            torch.distributed.get_rank() == 0,\n        )\n        print_rank_0(\n            \"> elapsed time for building blendable dataset indices: \"\n            \"{:.2f} (sec)\".format(time.time() - start_time)\n        )\n\n    def __len__(self):\n        return self.size\n\n    def __getitem__(self, idx):\n        dataset_idx = self.dataset_index[idx]\n        sample_idx = self.dataset_sample_index[idx]\n        return self.datasets[dataset_idx][sample_idx]\n"
  },
  {
    "path": "codegeex/megatron/data/data_samplers.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Dataloaders.\"\"\"\n\n\nimport torch\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import mpu\n\n\ndef build_pretraining_data_loader(dataset, consumed_samples):\n    \"\"\"Buld dataloader given an input dataset.\"\"\"\n\n    if dataset is None:\n        return None\n    args = get_args()\n\n    # Megatron sampler\n    if args.dataloader_type == \"single\":\n        batch_sampler = MegatronPretrainingSampler(\n            total_samples=len(dataset),\n            consumed_samples=consumed_samples,\n            micro_batch_size=args.micro_batch_size,\n            data_parallel_rank=mpu.get_data_parallel_rank(),\n            data_parallel_size=mpu.get_data_parallel_world_size(),\n        )\n    elif args.dataloader_type == \"cyclic\":\n        batch_sampler = MegatronPretrainingRandomSampler(\n            total_samples=len(dataset),\n            consumed_samples=consumed_samples,\n            micro_batch_size=args.micro_batch_size,\n            data_parallel_rank=mpu.get_data_parallel_rank(),\n            data_parallel_size=mpu.get_data_parallel_world_size(),\n        )\n    else:\n        raise Exception(\n            \"{} dataloader type is not supported.\".format(args.dataloader_type)\n        )\n\n    # Torch dataloader.\n    return torch.utils.data.DataLoader(\n        dataset,\n        batch_sampler=batch_sampler,\n        num_workers=args.num_workers,\n        pin_memory=True,\n    )\n\n\nclass MegatronPretrainingSampler:\n    def __init__(\n        self,\n        total_samples,\n        consumed_samples,\n        micro_batch_size,\n        data_parallel_rank,\n        data_parallel_size,\n        drop_last=True,\n    ):\n        # Keep a copy of input params for later use.\n        self.total_samples = total_samples\n        self.consumed_samples = consumed_samples\n        self.micro_batch_size = micro_batch_size\n        self.data_parallel_rank = data_parallel_rank\n        self.micro_batch_times_data_parallel_size = (\n            self.micro_batch_size * data_parallel_size\n        )\n        self.drop_last = drop_last\n\n        # Sanity checks.\n        assert self.total_samples > 0, \"no sample to consume: {}\".format(\n            self.total_samples\n        )\n        assert (\n            self.consumed_samples < self.total_samples\n        ), \"no samples left to consume: {}, {}\".format(\n            self.consumed_samples, self.total_samples\n        )\n        assert self.micro_batch_size > 0\n        assert data_parallel_size > 0\n        assert (\n            self.data_parallel_rank < data_parallel_size\n        ), \"data_parallel_rank should be smaller than data size: {}, \" \"{}\".format(\n            self.data_parallel_rank, data_parallel_size\n        )\n\n    def __len__(self):\n        return self.total_samples\n\n    def get_start_end_idx(self):\n        start_idx = self.data_parallel_rank * self.micro_batch_size\n        end_idx = start_idx + self.micro_batch_size\n        return start_idx, end_idx\n\n    def __iter__(self):\n        batch = []\n        # Last batch will be dropped if drop_last is not set False\n        for idx in range(self.consumed_samples, self.total_samples):\n            batch.append(idx)\n            if len(batch) == self.micro_batch_times_data_parallel_size:\n                start_idx, end_idx = self.get_start_end_idx()\n                yield batch[start_idx:end_idx]\n                batch = []\n\n        # Check the last partial batch and see drop_last is set\n        if len(batch) > 0 and not self.drop_last:\n            start_idx, end_idx = self.get_start_end_idx()\n            yield batch[start_idx:end_idx]\n\n\nclass MegatronPretrainingRandomSampler:\n    def __init__(\n        self,\n        total_samples,\n        consumed_samples,\n        micro_batch_size,\n        data_parallel_rank,\n        data_parallel_size,\n    ):\n        # Keep a copy of input params for later use.\n        self.total_samples = total_samples\n        self.consumed_samples = consumed_samples\n        self.micro_batch_size = micro_batch_size\n        self.data_parallel_rank = data_parallel_rank\n        self.data_parallel_size = data_parallel_size\n        self.micro_batch_times_data_parallel_size = (\n            self.micro_batch_size * data_parallel_size\n        )\n        self.last_batch_size = (\n            self.total_samples % self.micro_batch_times_data_parallel_size\n        )\n\n        # Sanity checks.\n        assert self.total_samples > 0, \"no sample to consume: {}\".format(\n            self.total_samples\n        )\n        assert self.micro_batch_size > 0\n        assert data_parallel_size > 0\n        assert (\n            self.data_parallel_rank < data_parallel_size\n        ), \"data_parallel_rank should be smaller than data size: {}, \" \"{}\".format(\n            self.data_parallel_rank, data_parallel_size\n        )\n\n    def __len__(self):\n        return self.total_samples\n\n    def __iter__(self):\n        active_total_samples = self.total_samples - self.last_batch_size\n        self.epoch = self.consumed_samples // active_total_samples\n        current_epoch_samples = self.consumed_samples % active_total_samples\n        assert current_epoch_samples % self.micro_batch_times_data_parallel_size == 0\n\n        # data sharding and random sampling\n        bucket_size = (\n            self.total_samples // self.micro_batch_times_data_parallel_size\n        ) * self.micro_batch_size\n        bucket_offset = current_epoch_samples // self.data_parallel_size\n        start_idx = self.data_parallel_rank * bucket_size\n\n        g = torch.Generator()\n        g.manual_seed(self.epoch)\n        random_idx = torch.randperm(bucket_size, generator=g).tolist()\n        idx_range = [start_idx + x for x in random_idx[bucket_offset:]]\n\n        batch = []\n        # Last batch if not complete will be dropped.\n        for idx in idx_range:\n            batch.append(idx)\n            if len(batch) == self.micro_batch_size:\n                self.consumed_samples += self.micro_batch_times_data_parallel_size\n                yield batch\n                batch = []\n"
  },
  {
    "path": "codegeex/megatron/data/dataset_utils.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Google AI Language Team Authors, and NVIDIA.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Most of the code here has been copied from:\n#   https://github.com/google-research/albert/blob/master/create_pretraining_data.py\n# with some modifications.\n\nimport math\nimport os\nimport time\nimport collections\n\nimport numpy as np\nimport torch\n\nfrom codegeex.megatron import mpu, print_rank_0\nfrom codegeex.megatron.data.indexed_dataset import make_dataset as make_indexed_dataset\n\n\ndef get_datasets_weights_and_num_samples(data_prefix, train_valid_test_num_samples):\n\n    # The data prefix should be in the format of:\n    #   weight-1, data-prefix-1, weight-2, data-prefix-2, ..\n    assert len(data_prefix) % 2 == 0\n    num_datasets = len(data_prefix) // 2\n    weights = [0] * num_datasets\n    prefixes = [0] * num_datasets\n    for i in range(num_datasets):\n        weights[i] = float(data_prefix[2 * i])\n        prefixes[i] = (data_prefix[2 * i + 1]).strip()\n    # Normalize weights\n    weight_sum = 0.0\n    for weight in weights:\n        weight_sum += weight\n    assert weight_sum > 0.0\n    weights = [weight / weight_sum for weight in weights]\n\n    # Add 0.5% (the 1.005 factor) so in case the bleding dataset does\n    # not uniformly distribute the number of samples, we still have\n    # samples left to feed to the network.\n    datasets_train_valid_test_num_samples = []\n    for weight in weights:\n        datasets_train_valid_test_num_samples.append(\n            [\n                int(math.ceil(val * weight * 1.005))\n                for val in train_valid_test_num_samples\n            ]\n        )\n\n    return prefixes, weights, datasets_train_valid_test_num_samples\n\n\ndef compile_helper():\n    \"\"\"Compile helper function ar runtime. Make sure this\n    is invoked on a single process.\"\"\"\n    import os\n    import subprocess\n\n    path = os.path.abspath(os.path.dirname(__file__))\n    ret = subprocess.run([\"make\", \"-C\", path])\n    if ret.returncode != 0:\n        print(\"Making C++ dataset helpers module failed, exiting.\")\n        import sys\n\n        sys.exit(1)\n\n\ndef get_a_and_b_segments(sample, np_rng):\n    \"\"\"Divide sample into a and b segments.\"\"\"\n\n    # Number of sentences in the sample.\n    n_sentences = len(sample)\n    # Make sure we always have two sentences.\n    assert n_sentences > 1, \"make sure each sample has at least two sentences.\"\n\n    # First part:\n    # `a_end` is how many sentences go into the `A`.\n    a_end = 1\n    if n_sentences >= 3:\n        # Note that randin in numpy is exclusive.\n        a_end = np_rng.randint(1, n_sentences)\n    tokens_a = []\n    for j in range(a_end):\n        tokens_a.extend(sample[j])\n\n    # Second part:\n    tokens_b = []\n    for j in range(a_end, n_sentences):\n        tokens_b.extend(sample[j])\n\n    # Random next:\n    is_next_random = False\n    if np_rng.random() < 0.5:\n        is_next_random = True\n        tokens_a, tokens_b = tokens_b, tokens_a\n\n    return tokens_a, tokens_b, is_next_random\n\n\ndef truncate_segments(tokens_a, tokens_b, len_a, len_b, max_num_tokens, np_rng):\n    \"\"\"Truncates a pair of sequences to a maximum sequence length.\"\"\"\n    # print(len_a, len_b, max_num_tokens)\n    assert len_a > 0\n    if len_a + len_b <= max_num_tokens:\n        return False\n    while len_a + len_b > max_num_tokens:\n        if len_a > len_b:\n            len_a -= 1\n            tokens = tokens_a\n        else:\n            len_b -= 1\n            tokens = tokens_b\n        if np_rng.random() < 0.5:\n            del tokens[0]\n        else:\n            tokens.pop()\n    return True\n\n\ndef create_tokens_and_tokentypes(tokens_a, tokens_b, cls_id, sep_id):\n    \"\"\"Merge segments A and B, add [CLS] and [SEP] and build tokentypes.\"\"\"\n\n    tokens = []\n    tokentypes = []\n    # [CLS].\n    tokens.append(cls_id)\n    tokentypes.append(0)\n    # Segment A.\n    for token in tokens_a:\n        tokens.append(token)\n        tokentypes.append(0)\n    # [SEP].\n    tokens.append(sep_id)\n    tokentypes.append(0)\n    # Segment B.\n    for token in tokens_b:\n        tokens.append(token)\n        tokentypes.append(1)\n    if tokens_b:\n        # [SEP].\n        tokens.append(sep_id)\n        tokentypes.append(1)\n\n    return tokens, tokentypes\n\n\nMaskedLmInstance = collections.namedtuple(\"MaskedLmInstance\", [\"index\", \"label\"])\n\n\ndef is_start_piece(piece):\n    \"\"\"Check if the current word piece is the starting piece (BERT).\"\"\"\n    # When a word has been split into\n    # WordPieces, the first token does not have any marker and any subsequence\n    # tokens are prefixed with ##. So whenever we see the ## token, we\n    # append it to the previous set of word indexes.\n    return not piece.startswith(\"##\")\n\n\ndef create_masked_lm_predictions(\n    tokens,\n    vocab_id_list,\n    vocab_id_to_token_dict,\n    masked_lm_prob,\n    cls_id,\n    sep_id,\n    mask_id,\n    max_predictions_per_seq,\n    np_rng,\n    max_ngrams=3,\n    do_whole_word_mask=True,\n    favor_longer_ngram=False,\n    do_permutation=False,\n    geometric_dist=False,\n    masking_style=\"bert\",\n):\n    \"\"\"Creates the predictions for the masked LM objective.\n    Note: Tokens here are vocab ids and not text tokens.\"\"\"\n\n    cand_indexes = []\n    # Note(mingdachen): We create a list for recording if the piece is\n    # the starting piece of current token, where 1 means true, so that\n    # on-the-fly whole word masking is possible.\n    token_boundary = [0] * len(tokens)\n\n    for (i, token) in enumerate(tokens):\n        if token == cls_id or token == sep_id:\n            token_boundary[i] = 1\n            continue\n        # Whole Word Masking means that if we mask all of the wordpieces\n        # corresponding to an original word.\n        #\n        # Note that Whole Word Masking does *not* change the training code\n        # at all -- we still predict each WordPiece independently, softmaxed\n        # over the entire vocabulary.\n        if (\n            do_whole_word_mask\n            and len(cand_indexes) >= 1\n            and not is_start_piece(vocab_id_to_token_dict[token])\n        ):\n            cand_indexes[-1].append(i)\n        else:\n            cand_indexes.append([i])\n            if is_start_piece(vocab_id_to_token_dict[token]):\n                token_boundary[i] = 1\n\n    output_tokens = list(tokens)\n\n    masked_lm_positions = []\n    masked_lm_labels = []\n\n    if masked_lm_prob == 0:\n        return (output_tokens, masked_lm_positions, masked_lm_labels, token_boundary)\n\n    num_to_predict = min(\n        max_predictions_per_seq, max(1, int(round(len(tokens) * masked_lm_prob)))\n    )\n\n    ngrams = np.arange(1, max_ngrams + 1, dtype=np.int64)\n    if not geometric_dist:\n        # Note(mingdachen):\n        # By default, we set the probilities to favor shorter ngram sequences.\n        pvals = 1.0 / np.arange(1, max_ngrams + 1)\n        pvals /= pvals.sum(keepdims=True)\n        if favor_longer_ngram:\n            pvals = pvals[::-1]\n\n    ngram_indexes = []\n    for idx in range(len(cand_indexes)):\n        ngram_index = []\n        for n in ngrams:\n            ngram_index.append(cand_indexes[idx : idx + n])\n        ngram_indexes.append(ngram_index)\n\n    np_rng.shuffle(ngram_indexes)\n\n    (masked_lms, masked_spans) = ([], [])\n    covered_indexes = set()\n    for cand_index_set in ngram_indexes:\n        if len(masked_lms) >= num_to_predict:\n            break\n        if not cand_index_set:\n            continue\n        # Note(mingdachen):\n        # Skip current piece if they are covered in lm masking or previous ngrams.\n        for index_set in cand_index_set[0]:\n            for index in index_set:\n                if index in covered_indexes:\n                    continue\n\n        if not geometric_dist:\n            n = np_rng.choice(\n                ngrams[: len(cand_index_set)],\n                p=pvals[: len(cand_index_set)]\n                / pvals[: len(cand_index_set)].sum(keepdims=True),\n            )\n        else:\n            # Sampling \"n\" from the geometric distribution and clipping it to\n            # the max_ngrams. Using p=0.2 default from the SpanBERT paper\n            # https://arxiv.org/pdf/1907.10529.pdf (Sec 3.1)\n            n = min(np_rng.geometric(0.2), max_ngrams)\n\n        index_set = sum(cand_index_set[n - 1], [])\n        n -= 1\n        # Note(mingdachen):\n        # Repeatedly looking for a candidate that does not exceed the\n        # maximum number of predictions by trying shorter ngrams.\n        while len(masked_lms) + len(index_set) > num_to_predict:\n            if n == 0:\n                break\n            index_set = sum(cand_index_set[n - 1], [])\n            n -= 1\n        # If adding a whole-word mask would exceed the maximum number of\n        # predictions, then just skip this candidate.\n        if len(masked_lms) + len(index_set) > num_to_predict:\n            continue\n        is_any_index_covered = False\n        for index in index_set:\n            if index in covered_indexes:\n                is_any_index_covered = True\n                break\n        if is_any_index_covered:\n            continue\n        for index in index_set:\n            covered_indexes.add(index)\n            masked_token = None\n            if masking_style == \"bert\":\n                # 80% of the time, replace with [MASK]\n                if np_rng.random() < 0.8:\n                    masked_token = mask_id\n                else:\n                    # 10% of the time, keep original\n                    if np_rng.random() < 0.5:\n                        masked_token = tokens[index]\n                    # 10% of the time, replace with random word\n                    else:\n                        masked_token = vocab_id_list[\n                            np_rng.randint(0, len(vocab_id_list))\n                        ]\n            elif masking_style == \"t5\":\n                masked_token = mask_id\n            else:\n                raise ValueError(\"invalid value of masking style\")\n\n            output_tokens[index] = masked_token\n            masked_lms.append(MaskedLmInstance(index=index, label=tokens[index]))\n\n        masked_spans.append(\n            MaskedLmInstance(\n                index=index_set, label=[tokens[index] for index in index_set]\n            )\n        )\n\n    assert len(masked_lms) <= num_to_predict\n    np_rng.shuffle(ngram_indexes)\n\n    select_indexes = set()\n    if do_permutation:\n        for cand_index_set in ngram_indexes:\n            if len(select_indexes) >= num_to_predict:\n                break\n            if not cand_index_set:\n                continue\n            # Note(mingdachen):\n            # Skip current piece if they are covered in lm masking or previous ngrams.\n            for index_set in cand_index_set[0]:\n                for index in index_set:\n                    if index in covered_indexes or index in select_indexes:\n                        continue\n\n            n = np.random.choice(\n                ngrams[: len(cand_index_set)],\n                p=pvals[: len(cand_index_set)]\n                / pvals[: len(cand_index_set)].sum(keepdims=True),\n            )\n            index_set = sum(cand_index_set[n - 1], [])\n            n -= 1\n\n            while len(select_indexes) + len(index_set) > num_to_predict:\n                if n == 0:\n                    break\n                index_set = sum(cand_index_set[n - 1], [])\n                n -= 1\n            # If adding a whole-word mask would exceed the maximum number of\n            # predictions, then just skip this candidate.\n            if len(select_indexes) + len(index_set) > num_to_predict:\n                continue\n            is_any_index_covered = False\n            for index in index_set:\n                if index in covered_indexes or index in select_indexes:\n                    is_any_index_covered = True\n                    break\n            if is_any_index_covered:\n                continue\n            for index in index_set:\n                select_indexes.add(index)\n        assert len(select_indexes) <= num_to_predict\n\n        select_indexes = sorted(select_indexes)\n        permute_indexes = list(select_indexes)\n        np_rng.shuffle(permute_indexes)\n        orig_token = list(output_tokens)\n\n        for src_i, tgt_i in zip(select_indexes, permute_indexes):\n            output_tokens[src_i] = orig_token[tgt_i]\n            masked_lms.append(MaskedLmInstance(index=src_i, label=orig_token[src_i]))\n\n    masked_lms = sorted(masked_lms, key=lambda x: x.index)\n    # Sort the spans by the index of the first span\n    masked_spans = sorted(masked_spans, key=lambda x: x.index[0])\n\n    for p in masked_lms:\n        masked_lm_positions.append(p.index)\n        masked_lm_labels.append(p.label)\n    return (\n        output_tokens,\n        masked_lm_positions,\n        masked_lm_labels,\n        token_boundary,\n        masked_spans,\n    )\n\n\ndef pad_and_convert_to_numpy(\n    tokens, tokentypes, masked_positions, masked_labels, pad_id, max_seq_length\n):\n    \"\"\"Pad sequences and convert them to numpy.\"\"\"\n\n    # Some checks.\n    num_tokens = len(tokens)\n    padding_length = max_seq_length - num_tokens\n    assert padding_length >= 0\n    assert len(tokentypes) == num_tokens\n    assert len(masked_positions) == len(masked_labels)\n\n    # Tokens and token types.\n    filler = [pad_id] * padding_length\n    tokens_np = np.array(tokens + filler, dtype=np.int64)\n    tokentypes_np = np.array(tokentypes + filler, dtype=np.int64)\n\n    # Padding mask.\n    padding_mask_np = np.array([1] * num_tokens + [0] * padding_length, dtype=np.int64)\n\n    # Lables and loss mask.\n    labels = [-1] * max_seq_length\n    loss_mask = [0] * max_seq_length\n    for i in range(len(masked_positions)):\n        assert masked_positions[i] < num_tokens\n        labels[masked_positions[i]] = masked_labels[i]\n        loss_mask[masked_positions[i]] = 1\n    labels_np = np.array(labels, dtype=np.int64)\n    loss_mask_np = np.array(loss_mask, dtype=np.int64)\n\n    return tokens_np, tokentypes_np, labels_np, padding_mask_np, loss_mask_np\n\n\ndef get_indexed_dataset_(data_prefix, data_impl, skip_warmup):\n\n    print_rank_0(\" > building dataset index ...\")\n\n    start_time = time.time()\n    indexed_dataset = make_indexed_dataset(data_prefix, data_impl, skip_warmup)\n    assert indexed_dataset.sizes.shape[0] == indexed_dataset.doc_idx[-1]\n    print_rank_0(\n        \" > finished creating indexed dataset in {:4f} \"\n        \"seconds\".format(time.time() - start_time)\n    )\n\n    print_rank_0(\" > indexed dataset stats:\")\n    print_rank_0(\n        \"    number of documents: {}\".format(indexed_dataset.doc_idx.shape[0] - 1)\n    )\n    print_rank_0(\"    number of sentences: {}\".format(indexed_dataset.sizes.shape[0]))\n\n    return indexed_dataset\n\n\ndef get_train_valid_test_split_(splits_string, size):\n    \"\"\"Get dataset splits from comma or '/' separated string list.\"\"\"\n\n    splits = []\n    if splits_string.find(\",\") != -1:\n        splits = [float(s) for s in splits_string.split(\",\")]\n    elif splits_string.find(\"/\") != -1:\n        splits = [float(s) for s in splits_string.split(\"/\")]\n    else:\n        splits = [float(splits_string)]\n    while len(splits) < 3:\n        splits.append(0.0)\n    splits = splits[:3]\n    splits_sum = sum(splits)\n    assert splits_sum > 0.0\n    splits = [split / splits_sum for split in splits]\n    splits_index = [0]\n    for index, split in enumerate(splits):\n        splits_index.append(splits_index[index] + int(round(split * float(size))))\n    diff = splits_index[-1] - size\n    for index in range(1, len(splits_index)):\n        splits_index[index] -= diff\n    assert len(splits_index) == 4\n    assert splits_index[-1] == size\n    return splits_index\n\n\ndef get_samples_mapping(\n    indexed_dataset,\n    data_prefix,\n    num_epochs,\n    max_num_samples,\n    max_seq_length,\n    short_seq_prob,\n    seed,\n    name,\n    binary_head,\n):\n    \"\"\"Get a list that maps a sample index to a starting sentence index, end sentence index, and length\"\"\"\n\n    if not num_epochs:\n        if not max_num_samples:\n            raise ValueError(\"Need to specify either max_num_samples \" \"or num_epochs\")\n        num_epochs = np.iinfo(np.int32).max - 1\n    if not max_num_samples:\n        max_num_samples = np.iinfo(np.int64).max - 1\n\n    # Filename of the index mapping\n    indexmap_filename = data_prefix\n    indexmap_filename += \"_{}_indexmap\".format(name)\n    if num_epochs != (np.iinfo(np.int32).max - 1):\n        indexmap_filename += \"_{}ep\".format(num_epochs)\n    if max_num_samples != (np.iinfo(np.int64).max - 1):\n        indexmap_filename += \"_{}mns\".format(max_num_samples)\n    indexmap_filename += \"_{}msl\".format(max_seq_length)\n    indexmap_filename += \"_{:0.2f}ssp\".format(short_seq_prob)\n    indexmap_filename += \"_{}s\".format(seed)\n    indexmap_filename += \".npy\"\n\n    # Build the indexed mapping if not exist.\n    if torch.distributed.get_rank() == 0 and not os.path.isfile(indexmap_filename):\n        print(\n            \" > WARNING: could not find index map file {}, building \"\n            \"the indices on rank 0 ...\".format(indexmap_filename)\n        )\n\n        # Make sure the types match the helpers input types.\n        assert indexed_dataset.doc_idx.dtype == np.int64\n        assert indexed_dataset.sizes.dtype == np.int32\n\n        # Build samples mapping\n        verbose = torch.distributed.get_rank() == 0\n        start_time = time.time()\n        print_rank_0(\" > building sapmles index mapping for {} ...\".format(name))\n        # First compile and then import.\n        from megatron.data import helpers\n\n        samples_mapping = helpers.build_mapping(\n            indexed_dataset.doc_idx,\n            indexed_dataset.sizes,\n            num_epochs,\n            max_num_samples,\n            max_seq_length,\n            short_seq_prob,\n            seed,\n            verbose,\n            2 if binary_head else 1,\n        )\n        print_rank_0(\" > done building sapmles index maping\")\n        np.save(indexmap_filename, samples_mapping, allow_pickle=True)\n        print_rank_0(\" > saved the index mapping in {}\".format(indexmap_filename))\n        # Make sure all the ranks have built the mapping\n        print_rank_0(\n            \" > elasped time to build and save samples mapping \"\n            \"(seconds): {:4f}\".format(time.time() - start_time)\n        )\n    # This should be a barrier but nccl barrier assumes\n    # device_index=rank which is not the case for model\n    # parallel case\n    counts = torch.cuda.LongTensor([1])\n    torch.distributed.all_reduce(counts, group=mpu.get_data_parallel_group())\n    torch.distributed.all_reduce(counts, group=mpu.get_pipeline_model_parallel_group())\n    assert counts[0].item() == (\n        torch.distributed.get_world_size()\n        // torch.distributed.get_world_size(group=mpu.get_tensor_model_parallel_group())\n    )\n\n    # Load indexed dataset.\n    print_rank_0(\" > loading indexed mapping from {}\".format(indexmap_filename))\n    start_time = time.time()\n    samples_mapping = np.load(indexmap_filename, allow_pickle=True, mmap_mode=\"r\")\n    print_rank_0(\n        \"    loaded indexed file in {:3.3f} seconds\".format(time.time() - start_time)\n    )\n    print_rank_0(\"    total number of samples: {}\".format(samples_mapping.shape[0]))\n\n    return samples_mapping\n"
  },
  {
    "path": "codegeex/megatron/data/helpers.cpp",
    "content": "/*\n coding=utf-8\n Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n     http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n */\n\n\n/* Helper methods for fast index mapping builds */\n\n#include <algorithm>\n#include <iostream>\n#include <limits>\n#include <math.h>\n#include <stdexcept>\n#include <pybind11/pybind11.h>\n#include <pybind11/numpy.h>\n#include <random>\n\nnamespace py = pybind11;\nusing namespace std;\n\nconst int32_t LONG_SENTENCE_LEN = 512;\n\n\nvoid build_blending_indices(py::array_t<uint8_t>& dataset_index,\n\t\t\t    py::array_t<int64_t>& dataset_sample_index,\n\t\t\t    const py::array_t<double>& weights,\n\t\t\t    const int32_t num_datasets,\n\t\t\t    const int64_t size, const bool verbose) {\n  /* Given multiple datasets and a weighting array, build samples\n   such that it follows those wieghts.*/\n\n  if (verbose) {\n    std::cout << \"> building indices for blendable datasets ...\" << std::endl;\n  }\n\n  // Get the pointer access without the checks.\n  auto dataset_index_ptr = dataset_index.mutable_unchecked<1>();\n  auto dataset_sample_index_ptr = dataset_sample_index.mutable_unchecked<1>();\n  auto weights_ptr = weights.unchecked<1>();\n\n  // Initialize buffer for number of samples used for each dataset.\n  int64_t current_samples[num_datasets];\n  for(int64_t i = 0; i < num_datasets; ++i) {\n    current_samples[i] = 0;\n  }\n\n  // For each sample:\n  for(int64_t sample_idx = 0; sample_idx < size; ++sample_idx) {\n\n    // Determine where the max error in sampling is happening.\n    auto sample_idx_double = std::max(static_cast<double>(sample_idx), 1.0);\n    int64_t max_error_index = 0;\n    double max_error = weights_ptr[0] * sample_idx_double -\n      static_cast<double>(current_samples[0]);\n    for (int64_t dataset_idx = 1; dataset_idx < num_datasets; ++dataset_idx) {\n      double error = weights_ptr[dataset_idx] * sample_idx_double -\n\tstatic_cast<double>(current_samples[dataset_idx]);\n      if (error > max_error) {\n\tmax_error = error;\n\tmax_error_index = dataset_idx;\n      }\n    }\n\n    // Populate the indices.\n    dataset_index_ptr[sample_idx] = static_cast<uint8_t>(max_error_index);\n    dataset_sample_index_ptr[sample_idx] = current_samples[max_error_index];\n\n    // Update the total samples.\n    current_samples[max_error_index] += 1;\n    \n  }\n\n  // print info\n  if (verbose) {\n    std::cout << \" > sample ratios:\" << std::endl;\n    for (int64_t dataset_idx = 0; dataset_idx < num_datasets; ++dataset_idx) {\n      auto ratio = static_cast<double>(current_samples[dataset_idx]) /\n\tstatic_cast<double>(size);\n      std::cout << \"   dataset \" << dataset_idx << \", input: \" <<\n\tweights_ptr[dataset_idx] << \", achieved: \" << ratio << std::endl; \n    }\n  }\n\n}\n\n\npy::array build_sample_idx(const py::array_t<int32_t>& sizes_,\n\t\t\t   const py::array_t<int32_t>& doc_idx_,\n\t\t\t   const int32_t seq_length,\n\t\t\t   const int32_t num_epochs,\n\t\t\t   const int64_t tokens_per_epoch) {\n    /* Sample index (sample_idx) is used for gpt2 like dataset for which\n       the documents are flattened and the samples are built based on this\n       1-D flatten array. It is a 2D array with sizes [number-of-samples + 1, 2]\n       where [..., 0] contains the index into `doc_idx` and [..., 1] is the\n       starting offset in that document.*/\n\n    // Consistency checks.\n    assert(seq_length > 1);\n    assert(num_epochs > 0);\n    assert(tokens_per_epoch > 1);\n\n    // Remove bound checks.\n    auto sizes = sizes_.unchecked<1>();\n    auto doc_idx = doc_idx_.unchecked<1>();\n\n    // Mapping and it's length (1D).\n    int64_t num_samples = (num_epochs * tokens_per_epoch - 1) / seq_length;\n    int32_t* sample_idx = new int32_t[2*(num_samples+1)];\n\n    cout << \"    using:\" << endl << std::flush;\n    cout << \"     number of documents:       \" <<\n      doc_idx_.shape(0) / num_epochs << endl << std::flush;\n    cout << \"     number of epochs:          \" << num_epochs <<\n      endl << std::flush;\n    cout << \"     sequence length:           \" << seq_length <<\n      endl << std::flush;\n    cout << \"     total number of samples:   \" << num_samples <<\n      endl << std::flush;\n\n    // Index into sample_idx.\n    int64_t sample_index = 0;\n    // Index into doc_idx.\n    int64_t doc_idx_index = 0;\n    // Begining offset for each document.\n    int32_t doc_offset = 0;\n    // Start with first document and no offset.\n    sample_idx[2 * sample_index] = doc_idx_index;\n    sample_idx[2 * sample_index + 1] = doc_offset;\n    ++sample_index;\n\n    while (sample_index <= num_samples) {\n        // Start with a fresh sequence.\n      int32_t remaining_seq_length = seq_length + 1;\n      while (remaining_seq_length != 0) {\n            // Get the document length.\n\tauto doc_id = doc_idx[doc_idx_index];\n\tauto doc_length = sizes[doc_id] - doc_offset;\n\t// And add it to the current sequence.\n\tremaining_seq_length -= doc_length;\n\t// If we have more than a full sequence, adjust offset and set\n\t// remaining length to zero so we return from the while loop.\n\t// Note that -1 here is for the same reason we have -1 in\n\t// `_num_epochs` calculations.\n\tif (remaining_seq_length <= 0) {\n\t  doc_offset += (remaining_seq_length + doc_length - 1);\n\t  remaining_seq_length = 0;\n\t} else {\n\t  // Otherwise, start from the beginning of the next document.\n\t  ++doc_idx_index;\n\t  doc_offset = 0;\n\t}\n      }\n      // Record the sequence.\n      sample_idx[2 * sample_index] = doc_idx_index;\n      sample_idx[2 * sample_index + 1] = doc_offset;\n      ++sample_index;\n    }\n\n    // Method to deallocate memory.\n    py::capsule free_when_done(sample_idx, [](void *mem_) {\n\tint32_t *mem = reinterpret_cast<int32_t*>(mem_);\n\tdelete[] mem;\n      });\n\n    // Return the numpy array.\n    const auto byte_size = sizeof(int32_t);\n    return py::array(std::vector<int64_t>{num_samples+1, 2}, // shape\n                     {2*byte_size, byte_size}, // C-style contiguous strides\n                     sample_idx, // the data pointer\n                     free_when_done); // numpy array references\n    \n}\n\n\ninline int32_t get_target_sample_len(const int32_t short_seq_ratio,\n\t\t\t\t     const int32_t max_length,\n\t\t\t\t     std::mt19937& rand32_gen) {\n    /* Training sample length. */\n    if (short_seq_ratio == 0) {\n      return max_length;\n    }\n    const auto random_number = rand32_gen();\n    if ((random_number % short_seq_ratio) == 0) {\n      return 2 + random_number % (max_length - 1);\n    }\n    return max_length;\n}\n\n\ntemplate<typename DocIdx>\npy::array build_mapping_impl(const py::array_t<int64_t>& docs_,\n                             const py::array_t<int32_t>& sizes_,\n                             const int32_t num_epochs,\n                             const uint64_t max_num_samples,\n                             const int32_t max_seq_length,\n                             const double short_seq_prob,\n                             const int32_t seed,\n\t\t\t     const bool verbose,\n\t\t\t     const int32_t min_num_sent) {\n    /* Build a mapping of (start-index, end-index, sequence-length) where\n       start and end index are the indices of the sentences in the sample\n       and sequence-length is the target sequence length.\n    */\n\n    // Consistency checks.\n    assert(num_epochs > 0);\n    assert(max_seq_length > 1);\n    assert(short_seq_prob >= 0.0);\n    assert(short_seq_prob <= 1.0);\n    assert(seed > 0);\n\n    // Remove bound checks.\n    auto docs = docs_.unchecked<1>();\n    auto sizes = sizes_.unchecked<1>();\n\n    // For efficiency, convert probability to ratio. Note: rand() generates int.\n    int32_t short_seq_ratio = 0;\n    if (short_seq_prob > 0) {\n      short_seq_ratio = static_cast<int32_t>(round(1.0 / short_seq_prob));\n    }\n\n    if (verbose) {\n        const auto sent_start_index = docs[0];\n\tconst auto sent_end_index = docs[docs_.shape(0) - 1];\n\tconst auto num_sentences = sent_end_index - sent_start_index;\n\tcout << \"    using:\" << endl << std::flush;\n\tcout << \"     number of documents:            \" << docs_.shape(0) - 1 <<\n\t  endl << std::flush;\n\tcout << \"     sentences range:                [\" << sent_start_index <<\n\t\", \" << sent_end_index << \")\" << endl << std::flush;\n\tcout << \"     total number of sentences:      \" << num_sentences <<\n\t  endl << std::flush;\n\tcout << \"     number of epochs:               \" << num_epochs <<\n\t  endl << std::flush;\n\tcout << \"     maximum number of samples:      \" << max_num_samples <<\n\t  endl << std::flush;\n\tcout << \"     maximum sequence length:        \" << max_seq_length <<\n\t  endl << std::flush;\n\tcout << \"     short sequence probability:     \" << short_seq_prob <<\n\tendl << std::flush;\n\tcout << \"     short sequence ration (1/prob): \" << short_seq_ratio <<\n\t  endl << std::flush;\n\tcout << \"     seed:                           \" << seed << endl <<\n\t  std::flush;\n    }\n\n    // Mapping and it's length (1D).\n    int64_t num_samples = -1;\n    DocIdx* maps = NULL;\n\n    // Perform two iterations, in the first iteration get the size\n    // and allocate memory and in the second iteration populate the map.\n    bool second = false;\n    for (int32_t iteration=0; iteration<2; ++iteration) {\n\n        // Set the seed so both iterations produce the same results.\n        std::mt19937 rand32_gen(seed);\n\n        // Set the flag on second iteration.\n        second = (iteration == 1);\n\n        // Counters:\n        uint64_t empty_docs = 0;\n        uint64_t one_sent_docs = 0;\n\tuint64_t long_sent_docs = 0;\n\n        // Current map index.\n        uint64_t map_index = 0;\n\n        // For each epoch:\n        for (int32_t epoch=0; epoch<num_epochs; ++epoch) {\n            if (map_index >= max_num_samples) {\n\t        if (verbose && (!second)) {\n\t\t  cout << \"    reached \" << max_num_samples << \" samples after \"\n\t\t       << epoch << \" epochs ...\" << endl << std::flush;\n\t\t}\n                break;\n            }\n            // For each document:\n            for (int32_t doc=0; doc<(docs.shape(0) - 1); ++doc) {\n\n                // Document sentences are in [sent_index_first, sent_index_last)\n                const auto sent_index_first = docs[doc];\n                const auto sent_index_last = docs[doc + 1];\n\n                // At the beginning of the document previous index is the\n\t\t// start index.\n                auto prev_start_index = sent_index_first;\n\n                // Remaining documents.\n                auto num_remain_sent = sent_index_last - sent_index_first;\n\n                // Some bookkeeping\n                if ((epoch == 0) && (!second)) {\n                    if (num_remain_sent == 0) {\n\t\t        ++empty_docs;\n                    }\n                    if (num_remain_sent == 1) {\n\t\t        ++one_sent_docs;\n                    }\n                }\n\n\t\t// Detect documents with long sentences.\n\t\tbool contains_long_sentence = false;\n\t\tif (num_remain_sent > 1) {\n\t\t    for (auto sent_index=sent_index_first;\n\t\t\t sent_index < sent_index_last; ++sent_index) {\n\t\t        if (sizes[sent_index] > LONG_SENTENCE_LEN){\n\t\t\t    if ((epoch == 0) && (!second)) {\n\t\t\t        ++long_sent_docs;\n\t\t\t    }\n\t\t\t    contains_long_sentence = true;\n\t\t\t    break;\n\t\t\t}\n\t\t    }\n\t\t}\n\n                // If we have more than two sentences.\n                if ((num_remain_sent >= min_num_sent) && (!contains_long_sentence)) {\n\n                    // Set values.\n                    auto seq_len = int32_t{0};\n                    auto num_sent = int32_t{0};\n                    auto target_seq_len = get_target_sample_len(short_seq_ratio,\n\t\t\t\t\t\t\t\tmax_seq_length,\n\t\t\t\t\t\t\t\trand32_gen);\n\n                    // Loop through sentences.\n                    for (auto sent_index=sent_index_first;\n                         sent_index < sent_index_last; ++sent_index) {\n\n\t\t        // Add the size and number of sentences.\n\t\t        seq_len += sizes[sent_index];\n\t\t        ++num_sent;\n\t\t\t--num_remain_sent;\n\n\t\t\t// If we have reached the target length.\n\t\t\t// and if not only one sentence is left in the document.\n\t\t\t// and if we have at least two sentneces.\n\t\t\t// and if we have reached end of the document.\n\t\t\tif (((seq_len >= target_seq_len) &&\n\t\t\t     (num_remain_sent > 1) &&\n\t\t\t     (num_sent >= min_num_sent) ) || (num_remain_sent == 0)) {\n\n\t\t\t    // Check for overflow.\n\t\t\t    if ((3 * map_index + 2) >\n\t\t\t\tstd::numeric_limits<int64_t>::max()) {\n\t\t\t        cout << \"number of samples exceeded maximum \"\n\t\t\t\t     << \"allowed by type int64: \"\n\t\t\t\t     << std::numeric_limits<int64_t>::max()\n\t\t\t\t     << endl;\n\t\t\t\tthrow std::overflow_error(\"Number of samples\");\n\t\t\t    }\n\n\t\t\t    // Populate the map.\n\t\t\t    if (second) {\n\t\t\t        const auto map_index_0 = 3 * map_index;\n\t\t\t\tmaps[map_index_0] = static_cast<DocIdx>(prev_start_index);\n\t\t\t\tmaps[map_index_0 + 1] = static_cast<DocIdx>(sent_index + 1);\n\t\t\t\tmaps[map_index_0 + 2] = static_cast<DocIdx>(target_seq_len);\n\t\t\t    }\n\n\t\t\t    // Update indices / counters.\n\t\t\t    ++map_index;\n\t\t\t    prev_start_index = sent_index + 1;\n\t\t\t    target_seq_len = get_target_sample_len(short_seq_ratio,\n\t\t\t\t\t\t\t\t   max_seq_length,\n\t\t\t\t\t\t\t\t   rand32_gen);\n\t\t\t    seq_len = 0;\n\t\t\t    num_sent = 0;\n\t\t\t}\n\n                    } // for (auto sent_index=sent_index_first; ...\n                } // if (num_remain_sent > 1) {\n            } // for (int doc=0; doc < num_docs; ++doc) {\n        } // for (int epoch=0; epoch < num_epochs; ++epoch) {\n\n        if (!second) {\n\t    if (verbose) {\n\t        cout << \"   number of empty documents: \" << empty_docs <<\n\t\t  endl << std::flush;\n\t\tcout << \"   number of documents with one sentence: \" <<\n\t\t  one_sent_docs << endl << std::flush;\n\t\tcout << \"   number of documents with long sentences: \" <<\n\t\t  long_sent_docs << endl << std::flush;\n\t\tcout << \"   will create mapping for \" << map_index <<\n\t\t  \" samples\" << endl << std::flush;\n\t    }\n\t    assert(maps == NULL);\n\t    assert(num_samples < 0);\n            maps = new DocIdx[3*map_index];\n            num_samples = static_cast<int64_t>(map_index);\n        }\n\n    } // for (int iteration=0; iteration < 2; ++iteration) {\n\n    // Shuffle.\n    // We need a 64 bit random number generator as we might have more\n    // than 2 billion samples.\n    std::mt19937_64 rand64_gen(seed + 1);\n    for (auto i=(num_samples - 1); i > 0; --i) {\n      const auto j = static_cast<int64_t>(rand64_gen() % (i + 1));\n      const auto i0 = 3 * i;\n      const auto j0 = 3 * j;\n      // Swap values.\n      swap(maps[i0], maps[j0]);\n      swap(maps[i0 + 1], maps[j0 + 1]);\n      swap(maps[i0 + 2], maps[j0 + 2]);\n    }\n\n    // Method to deallocate memory.\n    py::capsule free_when_done(maps, [](void *mem_) {\n            DocIdx *mem = reinterpret_cast<DocIdx*>(mem_);\n\t    delete[] mem;\n        });\n\n    // Return the numpy array.\n    const auto byte_size = sizeof(DocIdx);\n    return py::array(std::vector<int64_t>{num_samples, 3}, // shape\n                     {3*byte_size, byte_size}, // C-style contiguous strides\n                     maps, // the data pointer\n                     free_when_done); // numpy array references\n\n}\n\n\npy::array build_mapping(const py::array_t<int64_t>& docs_,\n                        const py::array_t<int>& sizes_,\n                        const int num_epochs,\n                        const uint64_t max_num_samples,\n                        const int max_seq_length,\n                        const double short_seq_prob,\n                        const int seed,\n\t\t\tconst bool verbose,\n\t\t\tconst int32_t min_num_sent) {\n\n    if (sizes_.size() > std::numeric_limits<uint32_t>::max()) {\n        if (verbose) {\n\t   cout << \"    using uint64 for data mapping...\" << endl << std::flush;\n\t}\n\treturn build_mapping_impl<uint64_t>(docs_, sizes_, num_epochs,\n\t\t\t\t\t    max_num_samples, max_seq_length,\n\t\t\t\t\t    short_seq_prob, seed, verbose,\n\t\t\t\t\t    min_num_sent);\n    } else {\n       if (verbose) {\n\t   cout << \"    using uint32 for data mapping...\" << endl << std::flush;\n       }\n       return build_mapping_impl<uint32_t>(docs_, sizes_, num_epochs,\n\t\t\t\t\t   max_num_samples, max_seq_length,\n\t\t\t\t\t   short_seq_prob, seed, verbose,\n\t\t\t\t\t   min_num_sent);\n    }\n}\n\ntemplate<typename DocIdx>\npy::array build_blocks_mapping_impl(const py::array_t<int64_t>& docs_,\n                                    const py::array_t<int32_t>& sizes_,\n                                    const py::array_t<int32_t>& titles_sizes_,\n                                    const int32_t num_epochs,\n                                    const uint64_t max_num_samples,\n                                    const int32_t max_seq_length,\n                                    const int32_t seed,\n                                    const bool verbose,\n                                    const bool use_one_sent_blocks) {\n    /* Build a mapping of (start-index, end-index, sequence-length) where\n       start and end index are the indices of the sentences in the sample\n       and sequence-length is the target sequence length.\n    */\n\n    // Consistency checks.\n    assert(num_epochs > 0);\n    assert(max_seq_length > 1);\n    assert(seed > 0);\n\n    // Remove bound checks.\n    auto docs = docs_.unchecked<1>();\n    auto sizes = sizes_.unchecked<1>();\n    auto titles_sizes = titles_sizes_.unchecked<1>();\n\n    if (verbose) {\n        const auto sent_start_index = docs[0];\n        const auto sent_end_index = docs[docs_.shape(0) - 1];\n        const auto num_sentences = sent_end_index - sent_start_index;\n        cout << \"    using:\" << endl << std::flush;\n        cout << \"     number of documents:            \" << docs_.shape(0) - 1 <<\n          endl << std::flush;\n        cout << \"     sentences range:                [\" << sent_start_index <<\n        \", \" << sent_end_index << \")\" << endl << std::flush;\n        cout << \"     total number of sentences:      \" << num_sentences <<\n          endl << std::flush;\n        cout << \"     number of epochs:               \" << num_epochs <<\n          endl << std::flush;\n        cout << \"     maximum number of samples:      \" << max_num_samples <<\n          endl << std::flush;\n        cout << \"     maximum sequence length:        \" << max_seq_length <<\n          endl << std::flush;\n        cout << \"     seed:                           \" << seed << endl <<\n          std::flush;\n    }\n\n    // Mapping and its length (1D).\n    int64_t num_samples = -1;\n    DocIdx* maps = NULL;\n\n    // Acceptable number of sentences per block.\n    int min_num_sent = 2;\n    if (use_one_sent_blocks) {\n        min_num_sent = 1;\n    }\n\n    // Perform two iterations, in the first iteration get the size\n    // and allocate memory and in the second iteration populate the map.\n    bool second = false;\n    for (int32_t iteration=0; iteration<2; ++iteration) {\n\n        // Set the flag on second iteration.\n        second = (iteration == 1);\n\n        // Current map index.\n        uint64_t map_index = 0;\n\n        uint64_t empty_docs = 0;\n        uint64_t one_sent_docs = 0;\n        uint64_t long_sent_docs = 0;\n        // For each epoch:\n        for (int32_t epoch=0; epoch<num_epochs; ++epoch) {\n            // assign every block a unique id\n            int32_t block_id = 0;\n\n            if (map_index >= max_num_samples) {\n                if (verbose && (!second)) {\n                cout << \"    reached \" << max_num_samples << \" samples after \"\n                     << epoch << \" epochs ...\" << endl << std::flush;\n                }\n                break;\n            }\n            // For each document:\n            for (int32_t doc=0; doc<(docs.shape(0) - 1); ++doc) {\n\n                // Document sentences are in [sent_index_first, sent_index_last)\n                const auto sent_index_first = docs[doc];\n                const auto sent_index_last = docs[doc + 1];\n                const auto target_seq_len = max_seq_length - titles_sizes[doc];\n\n                // At the beginning of the document previous index is the\n                // start index.\n                auto prev_start_index = sent_index_first;\n\n                // Remaining documents.\n                auto num_remain_sent = sent_index_last - sent_index_first;\n\n                // Some bookkeeping\n                if ((epoch == 0) && (!second)) {\n                    if (num_remain_sent == 0) {\n\t\t                ++empty_docs;\n                    }\n                    if (num_remain_sent == 1) {\n\t\t                ++one_sent_docs;\n                    }\n                }\n                // Detect documents with long sentences.\n                bool contains_long_sentence = false;\n                if (num_remain_sent >= min_num_sent) {\n                    for (auto sent_index=sent_index_first;\n                    sent_index < sent_index_last; ++sent_index) {\n                        if (sizes[sent_index] > LONG_SENTENCE_LEN){\n                            if ((epoch == 0) && (!second)) {\n                                ++long_sent_docs;\n                            }\n                            contains_long_sentence = true;\n                            break;\n                        }\n                    }\n                }\n                // If we have enough sentences and no long sentences.\n                if ((num_remain_sent >= min_num_sent) && (!contains_long_sentence)) {\n\n                    // Set values.\n                    auto seq_len = int32_t{0};\n                    auto num_sent = int32_t{0};\n\n                    // Loop through sentences.\n                    for (auto sent_index=sent_index_first;\n                         sent_index < sent_index_last; ++sent_index) {\n\n                            // Add the size and number of sentences.\n                            seq_len += sizes[sent_index];\n                            ++num_sent;\n                            --num_remain_sent;\n\n                        // If we have reached the target length.\n                        // and there are an acceptable number of sentences left\n                        // and if we have at least the minimum number of sentences.\n                        // or if we have reached end of the document.\n                        if (((seq_len >= target_seq_len) &&\n                             (num_remain_sent >= min_num_sent) &&\n                             (num_sent >= min_num_sent) ) || (num_remain_sent == 0)) {\n\n                            // Populate the map.\n                            if (second) {\n                                const auto map_index_0 = 4 * map_index;\n                                // Each sample has 4 items: the starting sentence index, ending sentence index,\n                                // the index of the document from which the block comes (used for fetching titles)\n                                // and the unique id of the block (used for creating block indexes)\n\n                                maps[map_index_0] = static_cast<DocIdx>(prev_start_index);\n                                maps[map_index_0 + 1] = static_cast<DocIdx>(sent_index + 1);\n                                maps[map_index_0 + 2] = static_cast<DocIdx>(doc);\n                                maps[map_index_0 + 3] = static_cast<DocIdx>(block_id);\n                            }\n\n                            // Update indices / counters.\n                            ++map_index;\n                            ++block_id;\n                            prev_start_index = sent_index + 1;\n                            seq_len = 0;\n                            num_sent = 0;\n                        }\n                    } // for (auto sent_index=sent_index_first; ...\n                } // if (num_remain_sent > 1) {\n            } // for (int doc=0; doc < num_docs; ++doc) {\n        } // for (int epoch=0; epoch < num_epochs; ++epoch) {\n\n        if (!second) {\n            if (verbose) {\n\t        cout << \"   number of empty documents: \" << empty_docs <<\n              endl << std::flush;\n            cout << \"   number of documents with one sentence: \" <<\n              one_sent_docs << endl << std::flush;\n            cout << \"   number of documents with long sentences: \" <<\n              long_sent_docs << endl << std::flush;\n            cout << \"   will create mapping for \" << map_index <<\n              \" samples\" << endl << std::flush;\n            }\n            assert(maps == NULL);\n            assert(num_samples < 0);\n            maps = new DocIdx[4*map_index];\n            num_samples = static_cast<int64_t>(map_index);\n        }\n\n    } // for (int iteration=0; iteration < 2; ++iteration) {\n\n    // Shuffle.\n    // We need a 64 bit random number generator as we might have more\n    // than 2 billion samples.\n    std::mt19937_64 rand64_gen(seed + 1);\n    for (auto i=(num_samples - 1); i > 0; --i) {\n        const auto j = static_cast<int64_t>(rand64_gen() % (i + 1));\n        const auto i0 = 4 * i;\n        const auto j0 = 4 * j;\n        // Swap values.\n        swap(maps[i0], maps[j0]);\n        swap(maps[i0 + 1], maps[j0 + 1]);\n        swap(maps[i0 + 2], maps[j0 + 2]);\n        swap(maps[i0 + 3], maps[j0 + 3]);\n    }\n\n    // Method to deallocate memory.\n    py::capsule free_when_done(maps, [](void *mem_) {\n            DocIdx *mem = reinterpret_cast<DocIdx*>(mem_);\n\t    delete[] mem;\n        });\n\n    // Return the numpy array.\n    const auto byte_size = sizeof(DocIdx);\n    return py::array(std::vector<int64_t>{num_samples, 4}, // shape\n                     {4*byte_size, byte_size}, // C-style contiguous strides\n                     maps, // the data pointer\n                     free_when_done); // numpy array references\n\n}\n\npy::array build_blocks_mapping(const py::array_t<int64_t>& docs_,\n                               const py::array_t<int>& sizes_,\n                               const py::array_t<int>& titles_sizes_,\n                               const int num_epochs,\n                               const uint64_t max_num_samples,\n                               const int max_seq_length,\n                               const int seed,\n                    const bool verbose,\n                    const bool use_one_sent_blocks) {\n\n    if (sizes_.size() > std::numeric_limits<uint32_t>::max()) {\n        if (verbose) {\n\t   cout << \"    using uint64 for data mapping...\" << endl << std::flush;\n\t}\n\treturn build_blocks_mapping_impl<uint64_t>(docs_, sizes_, titles_sizes_,\n\t                    num_epochs, max_num_samples, max_seq_length, seed, verbose, use_one_sent_blocks);\n    } else {\n       if (verbose) {\n\t   cout << \"    using uint32 for data mapping...\" << endl << std::flush;\n       }\n       return build_blocks_mapping_impl<uint32_t>(docs_, sizes_, titles_sizes_,\n                        num_epochs, max_num_samples, max_seq_length, seed, verbose, use_one_sent_blocks);\n    }\n}\n\nPYBIND11_MODULE(helpers, m) {\n    m.def(\"build_mapping\", &build_mapping);\n    m.def(\"build_blocks_mapping\", &build_blocks_mapping);\n    m.def(\"build_sample_idx\", &build_sample_idx);\n    m.def(\"build_blending_indices\", &build_blending_indices);\n}\n"
  },
  {
    "path": "codegeex/megatron/data/indexed_dataset.py",
    "content": "# Copyright (c) Facebook, Inc. and its affiliates.\n#\n# This source code is licensed under the MIT license found in the\n# LICENSE file in the root directory of this source tree.\n\n\n# copied from fairseq/fairseq/data/indexed_dataset.py\n# Removed IndexedRawTextDataset since it relied on Fairseq dictionary\n# other slight modifications to remove fairseq dependencies\n# Added document index to index file and made it accessible.\n#    An empty sentence no longer separates documents.\n\n\nimport os\nimport shutil\nimport struct\n\nimport torch\nimport numpy as np\n\nfrom functools import lru_cache\nfrom itertools import accumulate\nfrom codegeex.megatron import print_rank_0\n\n\ndef __best_fitting_dtype(vocab_size=None):\n    if vocab_size is not None and vocab_size < 65500:\n        return np.uint16\n    else:\n        return np.int32\n\n\ndef get_available_dataset_impl():\n    return [\"lazy\", \"cached\", \"mmap\"]\n\n\ndef infer_dataset_impl(path):\n    if IndexedDataset.exists(path):\n        with open(index_file_path(path), \"rb\") as f:\n            magic = f.read(8)\n            if magic == IndexedDataset._HDR_MAGIC:\n                return \"cached\"\n            elif magic == MMapIndexedDataset.Index._HDR_MAGIC[:8]:\n                return \"mmap\"\n            else:\n                return None\n    else:\n        print(f\"Dataset does not exist: {path}\")\n        print(\n            \"Path should be a basename that both .idx and .bin can be appended to get full filenames.\"\n        )\n        return None\n\n\ndef make_builder(out_file, impl, vocab_size=None):\n    if impl == \"mmap\":\n        return MMapIndexedDatasetBuilder(\n            out_file, dtype=__best_fitting_dtype(vocab_size)\n        )\n    else:\n        return IndexedDatasetBuilder(out_file)\n\n\ndef make_dataset(path, impl, skip_warmup=False):\n    if not IndexedDataset.exists(path):\n        print(f\"Dataset does not exist: {path}\")\n        print(\n            \"Path should be a basename that both .idx and .bin can be appended to get full filenames.\"\n        )\n        return None\n    if impl == \"infer\":\n        impl = infer_dataset_impl(path)\n    if impl == \"lazy\" and IndexedDataset.exists(path):\n        return IndexedDataset(path)\n    elif impl == \"cached\" and IndexedDataset.exists(path):\n        return IndexedCachedDataset(path)\n    elif impl == \"mmap\" and MMapIndexedDataset.exists(path):\n        return MMapIndexedDataset(path, skip_warmup)\n    print(f\"Unknown dataset implementation: {impl}\")\n    return None\n\n\ndef dataset_exists(path, impl):\n    if impl == \"mmap\":\n        return MMapIndexedDataset.exists(path)\n    else:\n        return IndexedDataset.exists(path)\n\n\ndef read_longs(f, n):\n    a = np.empty(n, dtype=np.int64)\n    f.readinto(a)\n    return a\n\n\ndef write_longs(f, a):\n    f.write(np.array(a, dtype=np.int64))\n\n\ndtypes = {\n    1: np.uint8,\n    2: np.int8,\n    3: np.int16,\n    4: np.int32,\n    5: np.int64,\n    6: np.float,\n    7: np.double,\n    8: np.uint16,\n}\n\n\ndef __best_fitting_dtype(vocab_size=None):\n    if vocab_size is not None and vocab_size < 65500:\n        return np.uint16\n    else:\n        return np.int32\n\n\ndef make_mmap_builder(out_file, vocab_size=None):\n    return MMapIndexedDatasetBuilder(\n        out_file, dtype=__best_fitting_dtype(vocab_size)\n    )\n\n\ndef code(dtype):\n    for k in dtypes.keys():\n        if dtypes[k] == dtype:\n            return k\n    raise ValueError(dtype)\n\n\ndef index_file_path(prefix_path):\n    return prefix_path + \".idx\"\n\n\ndef data_file_path(prefix_path):\n    return prefix_path + \".bin\"\n\n\ndef create_doc_idx(sizes):\n    doc_idx = [0]\n    for i, s in enumerate(sizes):\n        if s == 0:\n            doc_idx.append(i + 1)\n    return doc_idx\n\n\nclass IndexedDataset(torch.utils.data.Dataset):\n    \"\"\"Loader for IndexedDataset\"\"\"\n\n    _HDR_MAGIC = b\"TNTIDX\\x00\\x00\"\n\n    def __init__(self, path):\n        super().__init__()\n        self.path = path\n        self.data_file = None\n        self.read_index(path)\n\n    def read_index(self, path):\n        with open(index_file_path(path), \"rb\") as f:\n            magic = f.read(8)\n            assert magic == self._HDR_MAGIC, (\n                \"Index file doesn't match expected format. \"\n                \"Make sure that --dataset-impl is configured properly.\"\n            )\n            version = f.read(8)\n            assert struct.unpack(\"<Q\", version) == (1,)\n            code, self.element_size = struct.unpack(\"<QQ\", f.read(16))\n            self.dtype = dtypes[code]\n            self._len, self.s = struct.unpack(\"<QQ\", f.read(16))\n            self.doc_count = struct.unpack(\"<Q\", f.read(8))\n            self.dim_offsets = read_longs(f, self._len + 1)\n            self.data_offsets = read_longs(f, self._len + 1)\n            self.sizes = read_longs(f, self.s)\n            self.doc_idx = read_longs(f, self.doc_count)\n\n    def read_data(self, path):\n        self.data_file = open(data_file_path(path), \"rb\", buffering=0)\n\n    def check_index(self, i):\n        if i < 0 or i >= self._len:\n            raise IndexError(\"index out of range\")\n\n    def __del__(self):\n        if self.data_file:\n            self.data_file.close()\n\n    # @lru_cache(maxsize=8)\n    def __getitem__(self, idx):\n        if not self.data_file:\n            self.read_data(self.path)\n        if isinstance(idx, int):\n            i = idx\n            self.check_index(i)\n            tensor_size = self.sizes[self.dim_offsets[i] : self.dim_offsets[i + 1]]\n            a = np.empty(tensor_size, dtype=self.dtype)\n            self.data_file.seek(self.data_offsets[i] * self.element_size)\n            self.data_file.readinto(a)\n            return a\n        elif isinstance(idx, slice):\n            start, stop, step = idx.indices(len(self))\n            if step != 1:\n                raise ValueError(\"Slices into indexed_dataset must be contiguous\")\n            sizes = self.sizes[self.dim_offsets[start] : self.dim_offsets[stop]]\n            size = sum(sizes)\n            a = np.empty(size, dtype=self.dtype)\n            self.data_file.seek(self.data_offsets[start] * self.element_size)\n            self.data_file.readinto(a)\n            offsets = list(accumulate(sizes))\n            sents = np.split(a, offsets[:-1])\n            return sents\n\n    def __len__(self):\n        return self._len\n\n    def num_tokens(self, index):\n        return self.sizes[index]\n\n    def size(self, index):\n        return self.sizes[index]\n\n    @staticmethod\n    def exists(path):\n        return os.path.exists(index_file_path(path)) and os.path.exists(\n            data_file_path(path)\n        )\n\n    @property\n    def supports_prefetch(self):\n        return False  # avoid prefetching to save memory\n\n\nclass IndexedCachedDataset(IndexedDataset):\n    def __init__(self, path):\n        super().__init__(path)\n        self.cache = None\n        self.cache_index = {}\n\n    @property\n    def supports_prefetch(self):\n        return True\n\n    def prefetch(self, indices):\n        if all(i in self.cache_index for i in indices):\n            return\n        if not self.data_file:\n            self.read_data(self.path)\n        indices = sorted(set(indices))\n        total_size = 0\n        for i in indices:\n            total_size += self.data_offsets[i + 1] - self.data_offsets[i]\n        self.cache = np.empty(total_size, dtype=self.dtype)\n        ptx = 0\n        self.cache_index.clear()\n        for i in indices:\n            self.cache_index[i] = ptx\n            size = self.data_offsets[i + 1] - self.data_offsets[i]\n            a = self.cache[ptx : ptx + size]\n            self.data_file.seek(self.data_offsets[i] * self.element_size)\n            self.data_file.readinto(a)\n            ptx += size\n        if self.data_file:\n            # close and delete data file after prefetch so we can pickle\n            self.data_file.close()\n            self.data_file = None\n\n    # @lru_cache(maxsize=8)\n    def __getitem__(self, idx):\n        if isinstance(idx, int):\n            i = idx\n            self.check_index(i)\n            tensor_size = self.sizes[self.dim_offsets[i] : self.dim_offsets[i + 1]]\n            a = np.empty(tensor_size, dtype=self.dtype)\n            ptx = self.cache_index[i]\n            np.copyto(a, self.cache[ptx : ptx + a.size])\n            return a\n        elif isinstance(idx, slice):\n            # Hack just to make this work, can optimizer later if necessary\n            sents = []\n            for i in range(*idx.indices(len(self))):\n                sents.append(self[i])\n            return sents\n\n\nclass IndexedDatasetBuilder(object):\n    element_sizes = {\n        np.uint8: 1,\n        np.int8: 1,\n        np.int16: 2,\n        np.int32: 4,\n        np.int64: 8,\n        np.float: 4,\n        np.double: 8,\n    }\n\n    def __init__(self, out_file, dtype=np.int32):\n        self.out_file = open(out_file, \"wb\")\n        self.dtype = dtype\n        self.data_offsets = [0]\n        self.dim_offsets = [0]\n        self.sizes = []\n        self.element_size = self.element_sizes[self.dtype]\n        self.doc_idx = [0]\n\n    def add_item(self, tensor):\n        bytes = self.out_file.write(np.array(tensor.numpy(), dtype=self.dtype))\n        self.data_offsets.append(self.data_offsets[-1] + bytes / self.element_size)\n        for s in tensor.size():\n            self.sizes.append(s)\n        self.dim_offsets.append(self.dim_offsets[-1] + len(tensor.size()))\n\n    def end_document(self):\n        self.doc_idx.append(len(self.sizes))\n\n    def merge_file_(self, another_file):\n        index = IndexedDataset(another_file)\n        assert index.dtype == self.dtype\n\n        begin = self.data_offsets[-1]\n        for offset in index.data_offsets[1:]:\n            self.data_offsets.append(begin + offset)\n        self.sizes.extend(index.sizes)\n        begin = self.dim_offsets[-1]\n        for dim_offset in index.dim_offsets[1:]:\n            self.dim_offsets.append(begin + dim_offset)\n\n        with open(data_file_path(another_file), \"rb\") as f:\n            while True:\n                data = f.read(1024)\n                if data:\n                    self.out_file.write(data)\n                else:\n                    break\n\n    def finalize(self, index_file):\n        self.out_file.close()\n        index = open(index_file, \"wb\")\n        index.write(b\"TNTIDX\\x00\\x00\")\n        index.write(struct.pack(\"<Q\", 1))\n        index.write(struct.pack(\"<QQ\", code(self.dtype), self.element_size))\n        index.write(struct.pack(\"<QQ\", len(self.data_offsets) - 1, len(self.sizes)))\n        index.write(struct.pack(\"<Q\", len(self.doc_idx)))\n        write_longs(index, self.dim_offsets)\n        write_longs(index, self.data_offsets)\n        write_longs(index, self.sizes)\n        write_longs(index, self.doc_idx)\n        index.close()\n\n\ndef _warmup_mmap_file(path):\n    with open(path, \"rb\") as stream:\n        while stream.read(100 * 1024 * 1024):\n            pass\n\n\nclass MMapIndexedDataset(torch.utils.data.Dataset):\n    class Index(object):\n        _HDR_MAGIC = b\"MMIDIDX\\x00\\x00\"\n\n        @classmethod\n        def writer(cls, path, dtype):\n            class _Writer(object):\n                def __enter__(self):\n                    self._file = open(path, \"wb\")\n\n                    self._file.write(cls._HDR_MAGIC)\n                    self._file.write(struct.pack(\"<Q\", 1))\n                    self._file.write(struct.pack(\"<B\", code(dtype)))\n\n                    return self\n\n                @staticmethod\n                def _get_pointers(sizes):\n                    dtype_size = dtype().itemsize\n                    address = 0\n                    pointers = []\n\n                    for size in sizes:\n                        pointers.append(address)\n                        address += size * dtype_size\n\n                    return pointers\n\n                def write(self, sizes, doc_idx):\n                    pointers = self._get_pointers(sizes)\n\n                    self._file.write(struct.pack(\"<Q\", len(sizes)))\n                    self._file.write(struct.pack(\"<Q\", len(doc_idx)))\n\n                    sizes = np.array(sizes, dtype=np.int32)\n                    self._file.write(sizes.tobytes(order=\"C\"))\n                    del sizes\n\n                    pointers = np.array(pointers, dtype=np.int64)\n                    self._file.write(pointers.tobytes(order=\"C\"))\n                    del pointers\n\n                    doc_idx = np.array(doc_idx, dtype=np.int64)\n                    self._file.write(doc_idx.tobytes(order=\"C\"))\n\n                def __exit__(self, exc_type, exc_val, exc_tb):\n                    self._file.close()\n\n            return _Writer()\n\n        def __init__(self, path, skip_warmup=False):\n            with open(path, \"rb\") as stream:\n                magic_test = stream.read(9)\n                assert self._HDR_MAGIC == magic_test, (\n                    \"Index file doesn't match expected format. \"\n                    \"Make sure that --dataset-impl is configured properly.\"\n                )\n                version = struct.unpack(\"<Q\", stream.read(8))\n                assert (1,) == version\n\n                (dtype_code,) = struct.unpack(\"<B\", stream.read(1))\n                self._dtype = dtypes[dtype_code]\n                self._dtype_size = self._dtype().itemsize\n\n                self._len = struct.unpack(\"<Q\", stream.read(8))[0]\n                self._doc_count = struct.unpack(\"<Q\", stream.read(8))[0]\n                offset = stream.tell()\n\n            self._bin_buffer_mmap = np.memmap(path, mode=\"r\", order=\"C\")\n            self._bin_buffer = memoryview(self._bin_buffer_mmap)\n            self._sizes = np.frombuffer(\n                self._bin_buffer, dtype=np.int32, count=self._len, offset=offset\n            )\n            self._pointers = np.frombuffer(\n                self._bin_buffer,\n                dtype=np.int64,\n                count=self._len,\n                offset=offset + self._sizes.nbytes,\n            )\n            self._doc_idx = np.frombuffer(\n                self._bin_buffer,\n                dtype=np.int64,\n                count=self._doc_count,\n                offset=offset + self._sizes.nbytes + self._pointers.nbytes,\n            )\n\n        def __del__(self):\n            self._bin_buffer_mmap._mmap.close()\n            del self._bin_buffer_mmap\n\n        @property\n        def dtype(self):\n            return self._dtype\n\n        @property\n        def sizes(self):\n            return self._sizes\n\n        @property\n        def doc_idx(self):\n            return self._doc_idx\n\n        @lru_cache(maxsize=8)\n        def __getitem__(self, i):\n            return self._pointers[i], self._sizes[i]\n\n        def __len__(self):\n            return self._len\n\n    def __init__(self, path, skip_warmup=False):\n        super().__init__()\n\n        self._path = None\n        self._index = None\n        self._bin_buffer = None\n\n        self._do_init(path, skip_warmup)\n\n    def __getstate__(self):\n        return self._path\n\n    def __setstate__(self, state):\n        self._do_init(state)\n\n    def _do_init(self, path, skip_warmup):\n        self._path = path\n        self._index = self.Index(index_file_path(self._path), skip_warmup)\n\n        if not skip_warmup:\n            print_rank_0(\"    warming up data mmap file...\")\n            _warmup_mmap_file(data_file_path(self._path))\n        print_rank_0(\"    creating numpy buffer of mmap...\")\n        self._bin_buffer_mmap = np.memmap(\n            data_file_path(self._path), mode=\"r\", order=\"C\"\n        )\n        print_rank_0(\"    creating memory view of numpy buffer...\")\n        self._bin_buffer = memoryview(self._bin_buffer_mmap)\n\n    def __del__(self):\n        self._bin_buffer_mmap._mmap.close()\n        del self._bin_buffer_mmap\n        del self._index\n\n    def __len__(self):\n        return len(self._index)\n\n    # @lru_cache(maxsize=8)\n    def __getitem__(self, idx):\n        if isinstance(idx, int):\n            ptr, size = self._index[idx]\n            np_array = np.frombuffer(\n                self._bin_buffer, dtype=self._index.dtype, count=size, offset=ptr\n            )\n            return np_array\n        elif isinstance(idx, slice):\n            start, stop, step = idx.indices(len(self))\n            if step != 1:\n                raise ValueError(\"Slices into indexed_dataset must be contiguous\")\n            ptr = self._index._pointers[start]\n            sizes = self._index._sizes[idx]\n            offsets = list(accumulate(sizes))\n            total_size = sum(sizes)\n            np_array = np.frombuffer(\n                self._bin_buffer, dtype=self._index.dtype, count=total_size, offset=ptr\n            )\n            sents = np.split(np_array, offsets[:-1])\n            return sents\n\n    def get(self, idx, offset=0, length=None):\n        \"\"\"Retrieves a single item from the dataset with the option to only\n        return a portion of the item.\n\n        get(idx) is the same as [idx] but get() does not support slicing.\n        \"\"\"\n        ptr, size = self._index[idx]\n        if length is None:\n            length = size - offset\n        ptr += offset * np.dtype(self._index.dtype).itemsize\n        np_array = np.frombuffer(\n            self._bin_buffer, dtype=self._index.dtype, count=length, offset=ptr\n        )\n        return np_array\n\n    @property\n    def sizes(self):\n        return self._index.sizes\n\n    @property\n    def doc_idx(self):\n        return self._index.doc_idx\n\n    def get_doc_idx(self):\n        return self._index._doc_idx\n\n    def set_doc_idx(self, doc_idx_):\n        self._index._doc_idx = doc_idx_\n\n    @property\n    def supports_prefetch(self):\n        return False\n\n    @staticmethod\n    def exists(path):\n        return os.path.exists(index_file_path(path)) and os.path.exists(\n            data_file_path(path)\n        )\n\n\nclass MMapIndexedDatasetBuilder(object):\n    def __init__(self, out_file, dtype=np.int64):\n        self._data_file = open(out_file, \"wb\")\n        self._dtype = dtype\n        self._sizes = []\n        self._doc_idx = [0]\n\n    def add_item(self, tensor):\n        np_array = np.array(tensor.numpy(), dtype=self._dtype)\n        self._data_file.write(np_array.tobytes(order=\"C\"))\n        self._sizes.append(np_array.size)\n\n    def end_document(self):\n        self._doc_idx.append(len(self._sizes))\n\n    def merge_file_(self, another_file):\n        # Concatenate index\n        index = MMapIndexedDataset.Index(index_file_path(another_file))\n        assert index.dtype == self._dtype\n\n        for size in index.sizes:\n            self._sizes.append(size)\n\n        # Concatenate data\n        with open(data_file_path(another_file), \"rb\") as f:\n            shutil.copyfileobj(f, self._data_file)\n\n    def finalize(self, index_file):\n        self._data_file.close()\n\n        with MMapIndexedDataset.Index.writer(index_file, self._dtype) as index:\n            index.write(self._sizes, self._doc_idx)\n"
  },
  {
    "path": "codegeex/megatron/data/prompt_dataset.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"GPT prompting dataset.\"\"\"\n\nimport os\nimport time\n\nimport numpy as np\nimport torch\n\nfrom codegeex.megatron import mpu, print_rank_0, get_tokenizer\nfrom codegeex.megatron.data.blendable_dataset import BlendableDataset\nfrom codegeex.megatron.data.dataset_utils import get_datasets_weights_and_num_samples\nfrom codegeex.megatron.data.dataset_utils import get_train_valid_test_split_\nfrom codegeex.megatron.data.indexed_dataset import make_dataset as make_indexed_dataset\n\n\ndef build_train_valid_test_datasets(\n    data_prefix,\n    data_impl,\n    splits_string,\n    train_valid_test_num_samples,\n    seq_length,\n    seed,\n    skip_warmup,\n):\n    \"\"\"Build train, valid, and test datasets.\"\"\"\n\n    # Single dataset.\n    if len(data_prefix) == 1:\n        return _build_train_valid_test_datasets(\n            data_prefix[0],\n            data_impl,\n            splits_string,\n            train_valid_test_num_samples,\n            seq_length,\n            seed,\n            skip_warmup,\n        )\n\n    # Blending dataset.\n    # Parse the values.\n    output = get_datasets_weights_and_num_samples(\n        data_prefix, train_valid_test_num_samples\n    )\n    prefixes, weights, datasets_train_valid_test_num_samples = output\n\n    # Build individual datasets.\n    train_datasets = []\n    valid_datasets = []\n    test_datasets = []\n    for i in range(len(prefixes)):\n        train_ds, valid_ds, test_ds = _build_train_valid_test_datasets(\n            prefixes[i],\n            data_impl,\n            splits_string,\n            datasets_train_valid_test_num_samples[i],\n            seq_length,\n            seed,\n            skip_warmup,\n        )\n        if train_ds:\n            train_datasets.append(train_ds)\n        if valid_ds:\n            valid_datasets.append(valid_ds)\n        if test_ds:\n            test_datasets.append(test_ds)\n\n    # Blend.\n    blending_train_dataset = None\n    if train_datasets:\n        blending_train_dataset = BlendableDataset(train_datasets, weights)\n    blending_valid_dataset = None\n    if valid_datasets:\n        blending_valid_dataset = BlendableDataset(valid_datasets, weights)\n    blending_test_dataset = None\n    if test_datasets:\n        blending_test_dataset = BlendableDataset(test_datasets, weights)\n\n    return (blending_train_dataset, blending_valid_dataset, blending_test_dataset)\n\n\ndef _build_train_valid_test_datasets(\n    data_prefix,\n    data_impl,\n    splits_string,\n    train_valid_test_num_samples,\n    seq_length,\n    seed,\n    skip_warmup,\n):\n    \"\"\"Build train, valid, and test datasets.\"\"\"\n\n    # Indexed dataset.\n    assert os.path.exists(data_prefix + \"_input_ids.bin\"), f\"Input tokens datafile not found: {data_prefix}_input_ids.bin\"\n    assert os.path.exists(data_prefix + \"_attention_mask.bin\"), f\"Attention mask datafile not found: {data_prefix}_attention_mask.bin\"\n    assert os.path.exists(data_prefix + \"_labels.bin\"), f\"Labels datafile not found: {data_prefix}_labels.bin\"\n\n    input_ids_indexed_dataset = get_indexed_dataset_(data_prefix + \"_input_ids\", data_impl, skip_warmup)\n    attention_mask_indexed_dataset = get_indexed_dataset_(data_prefix + \"_attention_mask\", data_impl, skip_warmup)\n    labels_indexed_dataset = get_indexed_dataset_(data_prefix + \"_labels\", data_impl, skip_warmup)\n\n    total_num_of_documents = input_ids_indexed_dataset.sizes.shape[0]\n    splits = get_train_valid_test_split_(splits_string, total_num_of_documents)\n\n    # Print stats about the splits.\n    print_rank_0(\" > dataset split:\")\n\n    def print_split_stats(name, index):\n        print_rank_0(\"    {}:\".format(name))\n        print_rank_0(\n            \"     document indices in [{}, {}) total of {} \"\n            \"documents\".format(\n                splits[index], splits[index + 1], splits[index + 1] - splits[index]\n            )\n        )\n\n    print_split_stats(\"train\", 0)\n    print_split_stats(\"validation\", 1)\n    print_split_stats(\"test\", 2)\n\n    def build_dataset(index, name):\n        dataset = None\n        if splits[index + 1] > splits[index]:\n            documents = np.arange(\n                start=splits[index], stop=splits[index + 1], step=1, dtype=np.int32\n            )\n            dataset = PromptDataset(\n                name,\n                data_prefix,\n                documents,\n                input_ids_indexed_dataset,\n                attention_mask_indexed_dataset,\n                labels_indexed_dataset,\n                train_valid_test_num_samples[index],\n                seq_length,\n                seed,\n            )\n        return dataset\n\n    train_dataset = build_dataset(0, \"train\")\n    valid_dataset = build_dataset(1, \"valid\")\n    test_dataset = build_dataset(2, \"test\")\n    print_rank_0(f\"train_dataset:{type(train_dataset)}\")\n    print_rank_0(f\"valid_dataset:{type(valid_dataset)}\")\n    print_rank_0(f\"test_dataset:{type(test_dataset)}\")\n\n    return (train_dataset, valid_dataset, test_dataset)\n\n\ndef get_indexed_dataset_(data_prefix, data_impl, skip_warmup):\n    \"\"\"Build indexed dataset.\"\"\"\n    print_rank_0(\" > building dataset index ...\")\n\n    start_time = time.time()\n    indexed_dataset = make_indexed_dataset(data_prefix, data_impl, skip_warmup)\n    print_rank_0(\n        \" > finished creating indexed dataset in {:4f} \"\n        \"seconds\".format(time.time() - start_time)\n    )\n    print_rank_0(\"    number of documents: {}\".format(indexed_dataset.sizes.shape[0]))\n\n    return indexed_dataset\n\n\nclass PromptDataset(torch.utils.data.Dataset):\n    def __init__(\n        self,\n        name,\n        data_prefix,\n        documents,\n        input_ids_indexed_dataset,\n        attention_mask_index_dataset,\n        labels_indexed_dataset,\n        num_samples,\n        seq_length,\n        seed,\n    ):\n        \"\"\"\n        Args:\n            name: name of the dataset.\n            data_prefix: prefix of the data.\n            documents: list of document indices.\n            input_ids_indexed_dataset: indexed dataset for prompts.\n            attention_mask_index_dataset: indexed dataset for text.\n            labels_indexed_dataset: indexed dataset for labels.\n            num_samples: number of samples to draw from the indexed dataset.\n            seq_length: sequence length.\n            seed: seed for random number generator.\n        \"\"\"\n\n        self.name = name\n        self.input_ids_indexed_dataset = input_ids_indexed_dataset\n        self.attention_mask_index_dataset = attention_mask_index_dataset\n        self.labels_indexed_dataset = labels_indexed_dataset\n        self.seq_length = seq_length\n        self.eod_token = get_tokenizer().eod\n\n        # Checks\n        assert np.min(documents) >= 0\n        assert np.max(documents) < input_ids_indexed_dataset.sizes.shape[0]\n        assert input_ids_indexed_dataset.sizes.shape[0] == attention_mask_index_dataset.sizes.shape[0]\n        assert attention_mask_index_dataset.sizes.shape[0] == labels_indexed_dataset.sizes.shape[0]\n\n        # Build index mappings.\n        self.doc_idx = _build_index_mappings(\n            self.name,\n            data_prefix,\n            documents,\n            self.input_ids_indexed_dataset.sizes,\n            num_samples,\n            seq_length,\n            seed,\n        )\n\n    def __len__(self):\n        # -1 is due to data structure used to retieve the index:\n        #    sample i --> [sample_idx[i], sample_idx[i+1])\n        return self.doc_idx.shape[0]\n\n    def __getitem__(self, idx):\n        # get the doc index\n        doc_idx = self.doc_idx[idx]\n        doc_idx = int(doc_idx)  # NumPy int => Python int\n\n        input_ids = self.input_ids_indexed_dataset[doc_idx]\n        # print_rank_0(f\"input_ids={input_ids}\")\n        attention_mask = self.attention_mask_index_dataset[doc_idx]\n        labels = self.labels_indexed_dataset[doc_idx]\n\n        res = {\n            \"input_ids\": np.array(input_ids, dtype=np.int64),\n            \"attention_mask\": np.array(attention_mask, dtype=np.int64),\n            \"labels\": np.array(labels, dtype=np.int64),\n        }\n\n        return res\n\n\ndef _build_index_mappings(\n    name, data_prefix, documents, sizes, num_samples, seq_length, seed,\n):\n    \"\"\"Build index mappings.\n    We only have to build doc-idx in prompt dataset.\n\n    Args:\n        name: name of the dataset.\n        data_prefix: prefix of the data.\n        documents: list of document indices.\n        sizes: sizes of the indexed dataset.\n        num_samples: number of samples to draw from the indexed dataset.\n        seq_length: sequence length.\n        seed: seed for random number generator.\n    \"\"\"\n    num_epochs = _num_epochs(documents.shape[0], num_samples)\n    np_rng = np.random.RandomState(seed=seed)\n\n    _filename = data_prefix\n    _filename += \"_{}_indexmap\".format(name)\n    _filename += \"_{}ns\".format(num_samples)\n    _filename += \"_{}sl\".format(seq_length)\n    _filename += \"_{}s\".format(seed)\n    doc_idx_filename = _filename + \"_doc_idx.npy\"\n\n    if torch.distributed.get_rank() == 0:\n        if not os.path.isfile(doc_idx_filename):\n            print_rank_0(\n                \" > WARNING: could not find index map files, building \"\n                \"the indices on rank 0 ...\"\n            )\n\n            start_time = time.time()\n            doc_idx = _build_doc_idx(documents, num_epochs, np_rng, False)[:num_samples]\n            np.save(doc_idx_filename, doc_idx, allow_pickle=True)\n\n            print_rank_0(\n                \" > elasped time to build and save doc-idx mapping \"\n                \"(seconds): {:4f}\".format(time.time() - start_time)\n            )\n\n    # This should be a barrier but nccl barrier assumes\n    # device_index=rank which is not the case for model\n    # parallel case\n    counts = torch.cuda.LongTensor([1])\n    torch.distributed.all_reduce(counts, group=mpu.get_data_parallel_group())\n    torch.distributed.all_reduce(counts, group=mpu.get_pipeline_model_parallel_group())\n    assert counts[0].item() == (\n            torch.distributed.get_world_size()\n            // torch.distributed.get_world_size(group=mpu.get_tensor_model_parallel_group())\n    )\n    # Load mappings.\n    start_time = time.time()\n    print_rank_0(\" > loading doc-idx mapping from {}\".format(doc_idx_filename))\n    doc_idx = np.load(doc_idx_filename, allow_pickle=True, mmap_mode=\"r\")\n    print_rank_0(\"    total number of samples: {}\".format(doc_idx.shape[0]))\n    print_rank_0(\"    total number of epochs: {}\".format(num_epochs))\n\n    return doc_idx\n\n\ndef _num_epochs(samples_per_epoch, num_samples):\n    \"\"\"Calculate the epoch needed for so many sample.\"\"\"\n    return int(np.ceil(num_samples / samples_per_epoch))\n\n\ndef _build_doc_idx(documents, num_epochs, np_rng, separate_last_epoch):\n    \"\"\"Build an array with length = number-of-epochs * number-of-dcuments.\n    Each index is mapped to a corresponding document.\"\"\"\n    if not separate_last_epoch or num_epochs == 1:\n        doc_idx = np.mgrid[0:num_epochs, 0 : len(documents)][1]\n        doc_idx[:] = documents\n        doc_idx = doc_idx.reshape(-1)\n        doc_idx = doc_idx.astype(np.int32)\n        np_rng.shuffle(doc_idx)\n        return doc_idx\n\n    doc_idx_first = _build_doc_idx(documents, num_epochs - 1, np_rng, False)\n    doc_idx_last = _build_doc_idx(documents, 1, np_rng, False)\n    return np.concatenate((doc_idx_first, doc_idx_last))"
  },
  {
    "path": "codegeex/megatron/enums.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport enum\n\n\nclass LayerType(enum.Enum):\n    encoder = 1\n    decoder = 2\n\n\nclass AttnType(enum.Enum):\n    self_attn = 1\n    cross_attn = 2\n\n\nclass AttnMaskType(enum.Enum):\n    padding = 1\n    causal = 2\n"
  },
  {
    "path": "codegeex/megatron/global_vars.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron global variables.\"\"\"\n\nimport os\nimport sys\nimport time\nimport torch\n\nfrom codegeex.megatron.tokenizer import build_tokenizer\nfrom codegeex.megatron.arguments import parse_args\nfrom codegeex.megatron.microbatches import build_num_microbatches_calculator\n\n\n_GLOBAL_ARGS = None\n_GLOBAL_NUM_MICROBATCHES_CALCULATOR = None\n_GLOBAL_TOKENIZER = None\n_GLOBAL_TENSORBOARD_WRITER = None\n_GLOBAL_ADLR_AUTORESUME = None\n_GLOBAL_TIMERS = None\n\n\ndef get_args():\n    \"\"\"Return arguments.\"\"\"\n    _ensure_var_is_initialized(_GLOBAL_ARGS, \"args\")\n    return _GLOBAL_ARGS\n\n\ndef get_num_microbatches():\n    return _GLOBAL_NUM_MICROBATCHES_CALCULATOR.get()\n\n\ndef get_current_global_batch_size():\n    return _GLOBAL_NUM_MICROBATCHES_CALCULATOR.get_current_global_batch_size()\n\n\ndef update_num_microbatches(consumed_samples, consistency_check=True):\n    _GLOBAL_NUM_MICROBATCHES_CALCULATOR.update(consumed_samples, consistency_check)\n\n\ndef get_tokenizer():\n    \"\"\"Return tokenizer.\"\"\"\n    _ensure_var_is_initialized(_GLOBAL_TOKENIZER, \"tokenizer\")\n    return _GLOBAL_TOKENIZER\n\n\ndef get_tensorboard_writer():\n    \"\"\"Return tensorboard writer. It can be None so no need\n    to check if it is initialized.\"\"\"\n    return _GLOBAL_TENSORBOARD_WRITER\n\n\ndef get_adlr_autoresume():\n    \"\"\"ADLR autoresume object. It can be None so no need\n    to check if it is initialized.\"\"\"\n    return _GLOBAL_ADLR_AUTORESUME\n\n\ndef get_timers():\n    \"\"\"Return timers.\"\"\"\n    _ensure_var_is_initialized(_GLOBAL_TIMERS, \"timers\")\n    return _GLOBAL_TIMERS\n\n\ndef set_global_variables(\n    extra_args_provider=None, args_defaults={}, ignore_unknown_args=False\n):\n    \"\"\"Set args, tokenizer, tensorboard-writer, adlr-autoresume, and timers.\"\"\"\n    args = _parse_args(\n        extra_args_provider=extra_args_provider,\n        defaults=args_defaults,\n        ignore_unknown_args=ignore_unknown_args,\n    )\n    _build_num_microbatches_calculator(args)\n    if args.vocab_file or args.tokenizer_path:\n        _ = _build_tokenizer(args)\n    _set_tensorboard_writer(args)\n    _set_adlr_autoresume(args)\n    _set_timers()\n\n\ndef _parse_args(extra_args_provider=None, defaults={}, ignore_unknown_args=False):\n    \"\"\"Parse entire arguments.\"\"\"\n    global _GLOBAL_ARGS\n    _ensure_var_is_not_initialized(_GLOBAL_ARGS, \"args\")\n    _GLOBAL_ARGS = parse_args(\n        extra_args_provider=extra_args_provider,\n        defaults=defaults,\n        ignore_unknown_args=ignore_unknown_args,\n    )\n    return _GLOBAL_ARGS\n\n\ndef _build_num_microbatches_calculator(args):\n\n    global _GLOBAL_NUM_MICROBATCHES_CALCULATOR\n    _ensure_var_is_not_initialized(\n        _GLOBAL_NUM_MICROBATCHES_CALCULATOR, \"num microbatches calculator\"\n    )\n\n    _GLOBAL_NUM_MICROBATCHES_CALCULATOR = build_num_microbatches_calculator(args)\n    \n    \ndef _build_tokenizer(args):\n    \"\"\"Initialize tokenizer.\"\"\"\n    global _GLOBAL_TOKENIZER\n    _ensure_var_is_not_initialized(_GLOBAL_TOKENIZER, \"tokenizer\")\n    _GLOBAL_TOKENIZER = build_tokenizer(args)\n    return _GLOBAL_TOKENIZER\n\n\ndef rebuild_tokenizer(args):\n    global _GLOBAL_TOKENIZER\n    _GLOBAL_TOKENIZER = None\n    return _build_tokenizer(args)\n\n\ndef _set_tensorboard_writer(args):\n    \"\"\"Set tensorboard writer.\"\"\"\n    global _GLOBAL_TENSORBOARD_WRITER\n    _ensure_var_is_not_initialized(_GLOBAL_TENSORBOARD_WRITER, \"tensorboard writer\")\n\n    if (\n        hasattr(args, \"tensorboard_dir\")\n        and args.tensorboard_dir\n        and args.rank == (args.world_size - 1)\n    ):\n        try:\n            from torch.utils.tensorboard import SummaryWriter\n\n            print(\"> setting tensorboard ...\")\n            _GLOBAL_TENSORBOARD_WRITER = SummaryWriter(\n                log_dir=args.tensorboard_dir, max_queue=args.tensorboard_queue_size\n            )\n        except ModuleNotFoundError:\n            print(\n                \"WARNING: TensorBoard writing requested but is not \"\n                \"available (are you using PyTorch 1.1.0 or later?), \"\n                \"no TensorBoard logs will be written.\",\n                flush=True,\n            )\n\n\ndef _set_adlr_autoresume(args):\n    \"\"\"Initialize ADLR autoresume.\"\"\"\n    global _GLOBAL_ADLR_AUTORESUME\n    _ensure_var_is_not_initialized(_GLOBAL_ADLR_AUTORESUME, \"adlr autoresume\")\n\n    if args.adlr_autoresume:\n        if args.rank == 0:\n            print(\"enabling autoresume ...\", flush=True)\n        sys.path.append(os.environ.get(\"SUBMIT_SCRIPTS\", \".\"))\n        try:\n            from userlib.auto_resume import AutoResume\n        except BaseException:\n            print(\"ADLR autoresume is not available, exiting ...\")\n            sys.exit()\n\n        _GLOBAL_ADLR_AUTORESUME = AutoResume\n\n\ndef _set_timers():\n    \"\"\"Initialize timers.\"\"\"\n    global _GLOBAL_TIMERS\n    _ensure_var_is_not_initialized(_GLOBAL_TIMERS, \"timers\")\n    _GLOBAL_TIMERS = Timers()\n\n\ndef _ensure_var_is_initialized(var, name):\n    \"\"\"Make sure the input variable is not None.\"\"\"\n    assert var is not None, \"{} is not initialized.\".format(name)\n\n\ndef _ensure_var_is_not_initialized(var, name):\n    \"\"\"Make sure the input variable is not None.\"\"\"\n    assert var is None, \"{} is already initialized.\".format(name)\n\n\nclass _Timer:\n    \"\"\"Timer.\"\"\"\n\n    def __init__(self, name):\n        self.name_ = name\n        self.elapsed_ = 0.0\n        self.started_ = False\n        self.start_time = time.time()\n\n    def start(self):\n        \"\"\"Start the timer.\"\"\"\n        assert not self.started_, \"timer has already been started\"\n        torch.cuda.synchronize()\n        self.start_time = time.time()\n        self.started_ = True\n\n    def stop(self):\n        \"\"\"Stop the timer.\"\"\"\n        assert self.started_, \"timer is not started\"\n        torch.cuda.synchronize()\n        self.elapsed_ += time.time() - self.start_time\n        self.started_ = False\n\n    def reset(self):\n        \"\"\"Reset timer.\"\"\"\n        self.elapsed_ = 0.0\n        self.started_ = False\n\n    def elapsed(self, reset=True):\n        \"\"\"Calculate the elapsed time.\"\"\"\n        started_ = self.started_\n        # If the timing in progress, end it first.\n        if self.started_:\n            self.stop()\n        # Get the elapsed time.\n        elapsed_ = self.elapsed_\n        # Reset the elapsed time\n        if reset:\n            self.reset()\n        # If timing was in progress, set it back.\n        if started_:\n            self.start()\n        return elapsed_\n\n\nclass Timers:\n    \"\"\"Group of timers.\"\"\"\n\n    def __init__(self):\n        self.timers = {}\n\n    def __call__(self, name):\n        if name not in self.timers:\n            self.timers[name] = _Timer(name)\n        return self.timers[name]\n\n    def write(self, names, writer, iteration, normalizer=1.0, reset=False):\n        \"\"\"Write timers to a tensorboard writer\"\"\"\n        # currently when using add_scalars,\n        # torch.utils.add_scalars makes each timer its own run, which\n        # polutes the runs list, so we just add each as a scalar\n        assert normalizer > 0.0\n        for name in names:\n            value = self.timers[name].elapsed(reset=reset) / normalizer\n            writer.add_scalar(name + \"-time\", value, iteration)\n\n    def log(self, names, normalizer=1.0, reset=True):\n        \"\"\"Log a group of timers.\"\"\"\n        assert normalizer > 0.0\n        string = \"time (ms)\"\n        for name in names:\n            elapsed_time = self.timers[name].elapsed(reset=reset) * 1000.0 / normalizer\n            string += \" | {}: {:.2f}\".format(name, elapsed_time)\n        if torch.distributed.is_initialized():\n            if torch.distributed.get_rank() == (torch.distributed.get_world_size() - 1):\n                print(string, flush=True)\n        else:\n            print(string, flush=True)\n"
  },
  {
    "path": "codegeex/megatron/inference.py",
    "content": "import copy\nimport json\nimport random\nimport traceback\nfrom typing import *\n\nimport numpy\nimport torch\nimport zmq\n\nfrom codegeex.benchmark.utils import is_code_generation_finished, cleanup_code\nfrom codegeex.megatron import get_args, get_tokenizer\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.code_generation_utils import get_token_stream\nfrom codegeex.megatron.model import CodeGeeXModel\n\n\ndef model_provider():\n    \"\"\"Build the model.\"\"\"\n\n    model = CodeGeeXModel(num_tokentypes=0,\n                          parallel_output=False)\n\n    return model\n\n\ndef set_random_seed(seed):\n    \"\"\"Set random seed for reproducability.\"\"\"\n    random.seed(seed)\n    numpy.random.seed(seed)\n    torch.manual_seed(seed)\n    mpu.model_parallel_cuda_manual_seed(seed)\n\n\ndef run_generation_distributed(model):\n    args = get_args()\n    if hasattr(args, \"language_tgt_type\"):\n        language_type = args.language_tgt_type\n    else:\n        language_type = args.language_type\n    print(f\"Connecting to tcp://{args.channel_ip}:{args.channel_port}\")\n    context = zmq.Context()\n    socket = context.socket(zmq.REQ)\n    socket.connect(f\"tcp://{args.channel_ip}:{args.channel_port}\")\n    output_file_path = args.output_prefix + f\"_finished_rank{args.gen_rank}.jsonl\"\n    unfinished_output_file_path = args.output_prefix + f\"_unfinished_rank{args.gen_rank}.jsonl\"\n    problems = {}\n    print(\"Building tokenizer...\")\n    tokenizer = get_tokenizer()\n\n    with open(output_file_path, \"w\") as f:\n        with open(unfinished_output_file_path, \"w\") as unfinished_f:\n            while True:\n                socket.send_json({\"rank\": args.gen_rank, \"action\": \"pull\"})\n                resp = socket.recv_json()\n                try:\n                    if \"codecontest\" in args.dataset.lower():\n                        if resp[\"contest_name\"] is None:\n                            break\n                    elif resp[\"task_id\"] is None:\n                        break\n\n                    if \"codecontest\" in args.dataset.lower():\n                        current_spec = problems[resp[\"contest_name\"]]\n                        prompt = current_spec.prompt\n                    else:\n                        current_spec = resp[\"task_id\"]\n                        prompt = current_spec[\"prompt\"]\n\n                    temperature = None if \"temperature\" not in resp else resp[\"temperature\"]\n                    topp = None if \"topp\" not in resp else resp[\"topp\"]\n\n                    f.flush()\n                    unfinished_f.flush()\n                    tokens = tokenizer.tokenize(prompt)\n                    n_token_prompt = len(tokens)\n                    if n_token_prompt >= args.seq_length:\n                        continue\n                    if \"micro_batch_size\" in resp:\n                        micro_batch_size = resp[\"micro_batch_size\"]\n                    else:\n                        micro_batch_size = args.micro_batch_size\n                    if args.beam_search:\n                        beams = get_token_stream(\n                            model,\n                            [\n                                copy.deepcopy(tokens)\n                                for _ in range(micro_batch_size)\n                            ],\n                            return_scores=args.return_scores,\n                            prompt_length=n_token_prompt,\n                            micro_batch_size=micro_batch_size,\n                            bad_ids=args.bad_ids,\n                            temperature=temperature,\n                            topp=topp,\n                            beam_warmup=args.beam_warmup,\n                        )\n                        for beam in beams:\n                            generated_tokens_ = beam.tokens\n                            generated_tokens_ = (\n                                generated_tokens_\n                                if generated_tokens_[-1] != tokenizer.eod\n                                else generated_tokens_[:-1]\n                            )\n                            generated_code = tokenizer.detokenize(generated_tokens_[n_token_prompt:])\n                            generated_code = cleanup_code(generated_code,\n                                                          language_type=language_type,\n                                                          dataset=args.dataset)\n                            f.write(\n                                json.dumps(\n                                    {\n                                        \"task_id\"   : current_spec['task_id'],\n                                        \"prompt\"    : prompt,\n                                        \"generation\": generated_code,\n                                        \"scores\"    : beam.score,\n                                        \"finish\"    : 2 if generated_tokens[i].cpu().numpy()[\n                                                               -1] == tokenizer.eod else 1,\n                                        \"output\"    : beam.tokens,\n                                    }\n                                )\n                                + \"\\n\"\n                            )\n                        socket.send_json(\n                            {\n                                \"rank\"   : args.gen_rank,\n                                \"action\" : \"success\",\n                                \"task_id\": current_spec['task_id']\n                            }\n                        )\n                        socket.recv()\n                        continue\n\n                    token_stream = get_token_stream(\n                        model,\n                        [\n                            copy.deepcopy(tokens)\n                            for _ in range(micro_batch_size)\n                        ],\n                        return_scores=args.return_scores,\n                        prompt_length=n_token_prompt,\n                        micro_batch_size=micro_batch_size,\n                        bad_ids=args.bad_ids,\n                        temperature=temperature,\n                        topp=topp,\n                        beam_warmup=args.beam_warmup,\n                    )\n                    is_finished = [False for _ in range(micro_batch_size)]\n                    for generated in token_stream:\n                        generated_tokens = generated[0]\n                        if args.return_scores:\n                            scores = generated[1][1]\n                        else:\n                            scores = None\n\n                        for i in range(micro_batch_size):\n                            if is_finished[i]:\n                                continue\n\n                            generated_tokens_ = generated_tokens[i].cpu().numpy().tolist()\n                            generated_tokens_ = (\n                                generated_tokens_\n                                if generated_tokens_[-1] != tokenizer.eod\n                                else generated_tokens_[:-1]\n                            )\n                            generated_code = tokenizer.detokenize(generated_tokens_[n_token_prompt:])\n                            if generated_tokens[i].cpu().numpy()[-1] == tokenizer.eod or \\\n                                    is_code_generation_finished(\n                                        generated_code,\n                                        language_type=language_type,\n                                        dataset=args.dataset,\n                                    ):\n                                is_finished[i] = True\n                                generated_code = cleanup_code(generated_code,\n                                                              language_type=language_type,\n                                                              dataset=args.dataset)\n                                f.write(\n                                    json.dumps(\n                                        {\n                                            \"task_id\"   : current_spec['task_id'],\n                                            \"prompt\"    : prompt,\n                                            \"generation\": generated_code,\n                                            \"scores\"    : 0.0 if scores is None else scores[i].detach().cpu().item(),\n                                            \"finish\"    : 2 if generated_tokens[i].cpu().numpy()[\n                                                                   -1] == tokenizer.eod else 1,\n                                            \"output\"    : generated_tokens[i].cpu().numpy().tolist(),\n                                        }\n                                    )\n                                    + \"\\n\"\n                                )\n\n                            if len(generated_tokens[i]) >= args.out_seq_length:\n                                break\n\n                        if all(is_finished):\n                            break\n\n                    for i in range(micro_batch_size):\n                        if not is_finished[i]:\n                            generated_tokens_ = generated_tokens[i].cpu().numpy().tolist()\n                            generated_code = tokenizer.detokenize(generated_tokens_[n_token_prompt:])\n                            unfinished_f.write(\n                                json.dumps(\n                                    {\n                                        \"task_id\"   : current_spec['task_id'],\n                                        \"prompt\"    : prompt,\n                                        \"generation\": generated_code,\n                                        \"scores\"    : 0.0 if scores is None else scores[i].detach().cpu().item(),\n                                        \"finish\"    : 0,\n                                        \"output\"    : generated_tokens_,\n                                    }\n                                )\n                                + \"\\n\"\n                            )\n\n                    socket.send_json(\n                        {\n                            \"rank\"   : args.gen_rank,\n                            \"action\" : \"success\",\n                            \"task_id\": current_spec['task_id']\n                        }\n                    )\n                    socket.recv()\n\n                except Exception as e:\n                    print(f\"*** (rank={args.gen_rank}) crashed.\")\n                    print(f\"    error: {repr(e)}\")\n                    traceback.print_exc()\n                    if args.dataset.lower() == \"codecontest\":\n                        socket.send_json({\n                            \"rank\"            : args.gen_rank,\n                            \"action\"          : \"fail\",\n                            \"contest_name\"    : current_spec.name,\n                            \"micro_batch_size\": micro_batch_size\n                        })\n                    else:\n                        socket.send_json(\n                            {\n                                \"rank\"   : args.gen_rank,\n                                \"action\" : \"fail\",\n                                \"task_id\": current_spec['task_id']\n                            }\n                        )\n                    socket.recv()\n                    continue\n"
  },
  {
    "path": "codegeex/megatron/initialize.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron initialization.\"\"\"\n\nimport random\nimport os\nimport time\nimport datetime\n\nimport numpy as np\nimport torch\n\nfrom codegeex.megatron import get_adlr_autoresume\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import get_tensorboard_writer\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.global_vars import set_global_variables\nfrom codegeex.megatron.mpu import (\n    set_tensor_model_parallel_rank,\n    set_tensor_model_parallel_world_size,\n)\n\ntry:\n    import wandb\nexcept ImportError:\n    wandb = None\n\nimport deepspeed\n\n\ndef initialize_megatron(\n    extra_args_provider=None,\n    args_defaults={},\n    ignore_unknown_args=False,\n    allow_no_cuda=False,\n):\n    \"\"\"Set global variables, initialize distributed, and\n    set autoresume and random seeds.\n    `allow_no_cuda` should not be set unless using megatron for cpu only\n    data processing. In general this arg should not be set unless you know\n    what you are doing.\n    Returns a function to finalize distributed env initialization\n    (optionally, only when args.lazy_mpu_init == True)\n    \"\"\"\n    if not allow_no_cuda:\n        # Make sure cuda is available.\n        assert torch.cuda.is_available(), \"Megatron requires CUDA.\"\n\n    # Parse args, build tokenizer, and set adlr-autoresume,\n    # tensorboard-writer, and timers.\n    set_global_variables(\n        extra_args_provider=extra_args_provider,\n        args_defaults=args_defaults,\n        ignore_unknown_args=ignore_unknown_args,\n    )\n\n    # torch.distributed initialization\n    def finish_mpu_init():\n        args = get_args()\n        # Pytorch distributed.\n        _initialize_distributed()\n\n        # Random seeds for reproducibility.\n        if args.rank == 0:\n            print(\"> setting random seeds to {} ...\".format(args.seed))\n        _set_random_seed(args.seed)\n\n    args = get_args()\n    if args.lazy_mpu_init:\n        args.use_cpu_initialization = True\n        # delayed initialization of DDP-related stuff\n        # We only set basic DDP globals\n        set_tensor_model_parallel_world_size(args.tensor_model_parallel_size)\n        # and return function for external DDP manager\n        # to call when it has DDP initialized\n        set_tensor_model_parallel_rank(args.rank)\n        return finish_mpu_init\n    else:\n        # Megatron's MPU is the master. Complete initialization right away.\n        finish_mpu_init()\n\n        # Initialize memory buffers.\n        _initialize_mem_buffs()\n\n        # Autoresume.\n        _init_autoresume()\n\n        # No continuation function\n        return None\n\n\ndef _compile_dependencies():\n\n    args = get_args()\n\n    # =========================\n    # Compile dataset C++ code.\n    # =========================\n    # TODO: move this to ninja\n    if torch.distributed.get_rank() == 0:\n        start_time = time.time()\n        print(\"> compiling dataset index builder ...\")\n        # from megatron.data.dataset_utils import compile_helper\n        # compile_helper()\n        print(\n            \">>> done with dataset index builder. Compilation time: {:.3f} \"\n            \"seconds\".format(time.time() - start_time),\n            flush=True,\n        )\n\n    # Custom kernel constraints check.\n    seq_len = args.seq_length\n    attn_batch_size = (\n        args.num_attention_heads / args.tensor_model_parallel_size\n    ) * args.micro_batch_size\n    # Constraints on sequence length and attn_batch_size to enable warp based\n    # optimization and upper triangular optimization (for causal mask)\n    custom_kernel_constraint = (\n        seq_len > 16\n        and seq_len <= 2048\n        and seq_len % 4 == 0\n        and attn_batch_size % 4 == 0\n    )\n    # Print a warning.\n    if not (\n        (args.fp16 or args.bf16)\n        and custom_kernel_constraint\n        and args.masked_softmax_fusion\n    ):\n        if args.rank == 0:\n            print(\n                \"WARNING: constraints for invoking optimized\"\n                \" fused softmax kernel are not met. We default\"\n                \" back to unfused kernel invocations.\",\n                flush=True,\n            )\n\n    # Always build on rank zero first.\n    if torch.distributed.get_rank() == 0:\n        start_time = time.time()\n        print(\"> compiling and loading fused kernels ...\", flush=True)\n        torch.distributed.barrier()\n    else:\n        torch.distributed.barrier()\n    # Simple barrier to make sure all ranks have passed the\n    # compilation phase successfully before moving on to the\n    # rest of the program. We think this might ensure that\n    # the lock is released.\n    torch.distributed.barrier()\n    if torch.distributed.get_rank() == 0:\n        print(\n            \">>> done with compiling and loading fused kernels. \"\n            \"Compilation time: {:.3f} seconds\".format(time.time() - start_time),\n            flush=True,\n        )\n\n\ndef setup_deepspeed_random_and_activation_checkpointing(args):\n    \"\"\"Optional DeepSpeed Activation Checkpointing features.\n    Gives access to partition activations, contiguous memory optimizations\n    and cpu checkpointing.\n    Activation checkpoint requires keep track of the random states\n    and setting the random seed for each MP process. Megatron uses\n    mpu.get_cuda_rng_tracker and mpu.model_parallel_cuda_manual_seed\n    for keeping track of the random states and setting the random seeds.\n    Since they are used in places outside of activation checkpointing,\n    we overwrite them to maintain consistency.\n    This must be called before all the calls to mpu.model_parallel_cuda_manual_seed\n    \"\"\"\n    num_layers = args.num_layers // args.checkpoint_num_layers\n    num_layers = (\n        num_layers\n        if args.num_layers % args.checkpoint_num_layers == 0\n        else num_layers + 1\n    )\n    if args.split_transformers:\n        num_layers *= 2\n\n    deepspeed.checkpointing.configure(\n        mpu,\n        partition_activations=args.partition_activations,\n        contiguous_checkpointing=args.contigious_checkpointing,\n        num_checkpoints=num_layers,\n        checkpoint_in_cpu=args.checkpoint_in_cpu,\n        synchronize=args.synchronize_each_layer,\n        profile=args.profile_backward,\n    )\n\n    mpu.checkpoint = deepspeed.checkpointing.checkpoint\n    mpu.get_cuda_rng_tracker = deepspeed.checkpointing.get_cuda_rng_tracker\n    mpu.model_parallel_cuda_manual_seed = (\n        deepspeed.checkpointing.model_parallel_cuda_manual_seed\n    )\n\n\ndef _initialize_distributed():\n    \"\"\"Initialize torch.distributed and mpu.\"\"\"\n    args = get_args()\n\n    device_count = torch.cuda.device_count()\n    if torch.distributed.is_initialized():\n\n        if args.rank == 0:\n            print(\n                \"torch distributed is already initialized, \"\n                \"skipping initialization ...\",\n                flush=True,\n            )\n        args.rank = torch.distributed.get_rank()\n        args.world_size = torch.distributed.get_world_size()\n\n    else:\n\n        if args.rank == 0:\n            print(\"> initializing torch distributed ...\", flush=True)\n        # Manually set the device ids.\n        if device_count > 0:\n            device = args.rank % device_count\n            if args.local_rank is not None:\n                assert (\n                    args.local_rank == device\n                ), \"expected local-rank to be the same as rank % device-count.\"\n            else:\n                args.local_rank = device\n            if args.force_device is not None:\n                print(\n                    f\"  > forcefully set the device to {args.force_device}, originally {device}\"\n                )\n                device = args.force_device\n            torch.cuda.set_device(device)\n        # Call the init process\n        init_method = \"tcp://\"\n        master_ip = os.getenv(\"MASTER_ADDR\", \"localhost\")\n        master_port = os.getenv(\"MASTER_PORT\", \"6000\")\n        init_method += master_ip + \":\" + master_port\n        print(\n            f\"  > (rank={args.rank}) initializing process group: \"\n            f\"world_size={args.world_size} \"\n            f\"backend={args.distributed_backend} \"\n            f\"init_method={init_method}\",\n            flush=True,\n        )\n        timeout = datetime.timedelta(minutes=args.dist_timeout)\n        torch.distributed.init_process_group(\n            backend=args.distributed_backend,\n            world_size=args.world_size,\n            rank=args.rank,\n            init_method=init_method,\n            timeout=timeout\n        )\n        print(f\"  > (rank={args.rank}) process group initialized\")\n\n    # Set the tensor model-parallel, pipeline model-parallel, and\n    # data-parallel communicators.\n    if device_count > 0:\n        if mpu.model_parallel_is_initialized():\n            print(\"model parallel is already initialized\")\n        else:\n            mpu.initialize_model_parallel(\n                args.tensor_model_parallel_size,\n                args.pipeline_model_parallel_size,\n                args.virtual_pipeline_model_parallel_size,\n            )\n\n    if args.deepspeed and args.deepspeed_activation_checkpointing:\n        setup_deepspeed_random_and_activation_checkpointing(args)\n\n\ndef _init_autoresume():\n    \"\"\"Set autoresume start time.\"\"\"\n    autoresume = get_adlr_autoresume()\n    if autoresume:\n        torch.distributed.barrier()\n        autoresume.init()\n        torch.distributed.barrier()\n\n\ndef _set_random_seed(seed_):\n    \"\"\"Set random seed for reproducability.\"\"\"\n    if seed_ is not None and seed_ > 0:\n        # Ensure that different pipeline MP stages get different seeds.\n        seed = seed_ + (100 * mpu.get_pipeline_model_parallel_rank())\n        random.seed(seed)\n        np.random.seed(seed)\n        torch.manual_seed(seed)\n        if torch.cuda.device_count() > 0:\n            mpu.model_parallel_cuda_manual_seed(seed)\n    else:\n        raise ValueError(\"Seed ({}) should be a positive integer.\".format(seed))\n\n\ndef write_args_to_tensorboard():\n    \"\"\"Write arguments to tensorboard.\"\"\"\n    args = get_args()\n    writer = get_tensorboard_writer()\n    if writer:\n        for arg in vars(args):\n            writer.add_text(arg, str(getattr(args, arg)), global_step=args.iteration)\n\n\ndef initialize_wandb_experiment():\n    \"\"\"Initialize wandb experiment.\"\"\"\n    assert wandb is not None, \"Fail to import wandb\"\n\n    args = get_args()\n    config = args.__dict__\n\n    wandb_id_path = os.path.join(args.save, \"wandb_id.txt\")\n    if os.path.exists(wandb_id_path):\n        wandb_id = open(wandb_id_path, \"r\").read().strip()\n    else:\n        wandb_id = wandb.util.generate_id()\n        open(wandb_id_path, \"w\").write(wandb_id)\n\n    wandb.init(id=wandb_id, project=\"megatron\", config=config, resume=\"allow\")\n\n\ndef _initialize_mem_buffs():\n    \"\"\"Initialize manually allocated static memory.\"\"\"\n    args = get_args()\n\n    # Initialize memory for checkpointed activations.\n    if args.distribute_checkpointed_activations:\n        mpu.init_checkpointed_activations_memory_buffer()\n"
  },
  {
    "path": "codegeex/megatron/learning_rates.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Learning rate decay functions.\"\"\"\n\nimport math\n\nfrom codegeex.megatron import print_rank_0, get_args\n\n\nclass AnnealingLR(object):\n    \"\"\"Anneals the learning rate.\"\"\"\n\n    def __init__(\n        self,\n        optimizer,\n        max_lr,\n        min_lr,\n        warmup_steps,\n        decay_steps,\n        decay_style,\n        use_checkpoint_lr_scheduler=True,\n        override_lr_scheduler=False,\n    ):\n        args = get_args()\n        # Class values.\n        self.optimizer = optimizer\n\n        self.max_lr = float(max_lr)\n        self.min_lr = min_lr\n        assert self.min_lr >= 0.0\n        assert self.max_lr >= self.min_lr\n\n        self.warmup_steps = warmup_steps\n        self.num_steps = 0\n        self.decay_steps = decay_steps\n        assert self.decay_steps > 0\n        assert self.warmup_steps < self.decay_steps\n\n        self.decay_tokens = args.lr_decay_tokens\n        self.num_tokens = 0\n        self.warmup_tokens = 0\n\n        self.decay_style = decay_style\n\n        self.override_lr_scheduler = override_lr_scheduler\n        self.use_checkpoint_lr_scheduler = use_checkpoint_lr_scheduler\n        if self.override_lr_scheduler:\n            assert not self.use_checkpoint_lr_scheduler, (\n                \"both override and \" \"use-checkpoint are set.\"\n            )\n\n        # Set the learning rate\n        self.step(0)\n\n        print_rank_0(\"> learning rate decay style: {}\".format(self.decay_style))\n\n    def get_lr(self):\n        \"\"\"Learning rate decay functions from:\n        https://openreview.net/pdf?id=BJYwwY9ll pg. 4\"\"\"\n\n        # Use linear warmup for the initial part.\n        if self.warmup_steps > 0 and self.num_steps <= self.warmup_steps:\n            if self.num_steps == self.warmup_steps and self.decay_tokens is not None:\n                self.warmup_tokens = self.num_tokens\n            return self.max_lr * float(self.num_steps) / float(self.warmup_steps)\n\n        # If the learning rate is constant, just return the initial value.\n        if self.decay_style == \"constant\":\n            return self.max_lr\n\n        if self.decay_tokens is None:\n            # step-based decay\n\n            # For any steps larger than `self.decay_steps`, use `self.min_lr`.\n            if self.num_steps > self.decay_steps:\n                return self.min_lr\n\n            # If we are done with the warmup period, use the decay style.\n            num_steps_ = self.num_steps - self.warmup_steps\n            decay_steps_ = self.decay_steps - self.warmup_steps\n            decay_ratio = float(num_steps_) / float(decay_steps_)\n        else:\n            # token-based decay\n\n            if self.num_tokens > self.decay_tokens:\n                return self.min_lr\n            num_tokens_ = self.num_tokens - self.warmup_tokens\n            decay_tokens_ = self.decay_tokens - self.warmup_tokens\n            decay_ratio = float(num_tokens_) / float(decay_tokens_)\n        assert decay_ratio >= 0.0\n        assert decay_ratio <= 1.0\n        delta_lr = self.max_lr - self.min_lr\n\n        if self.decay_style == \"linear\":\n            coeff = 1.0 - decay_ratio\n        elif self.decay_style == \"cosine\":\n            coeff = 0.5 * (math.cos(math.pi * decay_ratio) + 1.0)\n        else:\n            raise Exception(\"{} decay style is not supported.\".format(self.decay_style))\n\n        return self.min_lr + coeff * delta_lr\n\n    def step(self, increment, token_num=None):\n        \"\"\"Set lr for all parameters groups.\"\"\"\n        if token_num is None:\n            args = get_args()\n            token_num = args.consumed_train_tokens\n        self.num_tokens = token_num\n        self.num_steps += increment\n        new_lr = self.get_lr()\n        for group in self.optimizer.param_groups:\n            group[\"lr\"] = new_lr\n\n    def state_dict(self):\n        state_dict = {\n            \"max_lr\": self.max_lr,\n            \"warmup_steps\": self.warmup_steps,\n            \"num_steps\": self.num_steps,\n            \"warmup_tokens\": self.warmup_tokens,\n            \"num_tokens\": self.num_tokens,\n            \"decay_style\": self.decay_style,\n            \"decay_steps\": self.decay_steps,\n            \"min_lr\": self.min_lr,\n        }\n        return state_dict\n\n    def _check_and_set(self, cls_value, sd_value, name):\n        \"\"\"Auxiliary function for checking the values in the checkpoint and\n        setting them.\"\"\"\n        if self.override_lr_scheduler:\n            print_rank_0(\" > overriding {} value to {}\".format(name, cls_value))\n            return cls_value\n\n        if not self.use_checkpoint_lr_scheduler:\n            assert cls_value == sd_value, (\n                f\"AnnealingLR: class input value {cls_value} and checkpoint\"\n                f\"value {sd_value} for {name} do not match\"\n            )\n        print_rank_0(\" > using checkpoint value {} for {}\".format(sd_value, name))\n        return sd_value\n\n    def load_state_dict(self, sd):\n\n        if \"start_lr\" in sd:\n            max_lr_ = sd[\"start_lr\"]\n        else:\n            max_lr_ = sd[\"max_lr\"]\n        self.max_lr = self._check_and_set(self.max_lr, max_lr_, \"learning rate\")\n\n        self.min_lr = self._check_and_set(\n            self.min_lr, sd[\"min_lr\"], \"minimum learning rate\"\n        )\n\n        if \"warmup_iter\" in sd:\n            warmup_steps_ = sd[\"warmup_iter\"]\n        else:\n            warmup_steps_ = sd[\"warmup_steps\"]\n        self.warmup_steps = self._check_and_set(\n            self.warmup_steps, warmup_steps_, \"warmup iterations\"\n        )\n\n        if \"end_iter\" in sd:\n            decay_steps_ = sd[\"end_iter\"]\n        else:\n            decay_steps_ = sd[\"decay_steps\"]\n        self.decay_steps = self._check_and_set(\n            self.decay_steps, decay_steps_, \"total number of iterations\"\n        )\n        self.decay_style = self._check_and_set(\n            self.decay_style, sd[\"decay_style\"], \"decay style\"\n        )\n\n        if \"num_iters\" in sd:\n            num_steps = sd[\"num_iters\"]\n        else:\n            num_steps = sd[\"num_steps\"]\n        if \"warmup_tokens\" in sd:\n            self.warmup_tokens = sd[\"warmup_tokens\"]\n        if \"num_tokens\" in sd:\n            self.num_tokens = sd[\"num_tokens\"]\n        self.step(num_steps, self.num_tokens)\n"
  },
  {
    "path": "codegeex/megatron/memory.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nimport torch\n\n\n# A dictionary of all the memory buffers allocated.\n_MEM_BUFFS = dict()\n\n\ndef allocate_mem_buff(name, numel, dtype, track_usage):\n    \"\"\"Allocate a memory buffer.\"\"\"\n    assert name not in _MEM_BUFFS, \"memory buffer {} already allocated.\".format(name)\n    _MEM_BUFFS[name] = MemoryBuffer(name, numel, dtype, track_usage)\n    return _MEM_BUFFS[name]\n\n\ndef get_mem_buff(name):\n    \"\"\"Get the memory buffer.\"\"\"\n    return _MEM_BUFFS[name]\n\n\nclass MemoryBuffer:\n    \"\"\"Contiguous memory buffer.\n    Allocate a contiguous memory of type `dtype` and size `numel`. It is\n    used to reduce memory fragmentation.\n\n    Usage: After the allocation, the `_start` index is set tot the first\n           index of the memory. A memory chunk starting from `_start` index\n           can be `allocated` for an input tensor, with the elements of the\n           tensor being coppied. The buffer can be reused by resetting the\n           `_start` index.\n\n    \"\"\"\n\n    def __init__(self, name, numel, dtype, track_usage):\n        if torch.distributed.get_rank() == 0:\n            element_size = torch.tensor([], dtype=dtype).element_size()\n            print(\n                \"> building the {} memory buffer with {} num elements \"\n                \"and {} dtype ({:.1f} MB)...\".format(\n                    name, numel, dtype, numel * element_size / 1024 / 1024\n                ),\n                flush=True,\n            )\n        self.name = name\n        self.numel = numel\n        self.dtype = dtype\n        self.data = torch.empty(\n            self.numel,\n            dtype=self.dtype,\n            device=torch.cuda.current_device(),\n            requires_grad=False,\n        )\n\n        # Index tracking the start of the free memory.\n        self._start = 0\n\n        # Values used for tracking usage.\n        self.track_usage = track_usage\n        if self.track_usage:\n            self.in_use_value = 0.0\n            self.total_value = 0.0\n\n    def reset(self):\n        \"\"\"Reset the buffer start index to the beginning of the buffer.\"\"\"\n        self._start = 0\n\n    def is_in_use(self):\n        \"\"\"Whether the current buffer hold on to any memory.\"\"\"\n        return self._start > 0\n\n    def numel_in_use(self):\n        \"\"\"Return number of elements in use.\"\"\"\n        return self._start\n\n    def add(self, tensor):\n        \"\"\"Allocate a chunk of memory from the buffer to tensor and copy\n        the values.\"\"\"\n        assert (\n            tensor.dtype == self.dtype\n        ), \"Input tensor type {} different from buffer type {}\".format(\n            tensor.dtype, self.dtype\n        )\n        # Number of elements of the input tensor.\n        tensor_numel = torch.numel(tensor)\n        new_start = self._start + tensor_numel\n        assert (\n            new_start <= self.numel\n        ), \"Not enough memory left in the buffer ({} > {})\".format(\n            tensor_numel, self.numel - self._start\n        )\n        # New tensor is a view into the memory.\n        new_tensor = self.data[self._start : new_start]\n        self._start = new_start\n        new_tensor = new_tensor.view(tensor.shape)\n        new_tensor.copy_(tensor)\n        # Return a pointer to the new tensor.\n        return new_tensor\n\n    def get_data(self):\n        \"\"\"Return the data currently in use.\"\"\"\n        if self.track_usage:\n            self.in_use_value += float(self._start)\n            self.total_value += float(self.numel)\n        return self.data[: self._start]\n\n    def print_average_usage(self):\n        \"\"\"Print memory usage average over time. We would like this value\n        to be as high as possible.\"\"\"\n        assert self.track_usage, \"You need to enable track usage.\"\n        if torch.distributed.get_rank() == 0:\n            print(\n                \" > usage of {} memory buffer: {:.2f} %\".format(\n                    self.name, self.in_use_value * 100.0 / self.total_value\n                ),\n                flush=True,\n            )\n\n\nclass RingMemBuffer:\n    \"\"\"A ring of memory buffers.\"\"\"\n\n    def __init__(self, name, num_buffers, numel, dtype, track_usage):\n        self.num_buffers = num_buffers\n        self.buffers = [\n            allocate_mem_buff(name + \" {}\".format(i), numel, dtype, track_usage)\n            for i in range(num_buffers)\n        ]\n        self._index = -1\n\n    def get_next_buffer(self):\n        self._index += 1\n        self._index = self._index % self.num_buffers\n        buff = self.buffers[self._index]\n        assert not buff.is_in_use(), \"buffer is already in use.\"\n        return buff\n"
  },
  {
    "path": "codegeex/megatron/merge_ckpt_parallel.py",
    "content": "\"\"\"Merge model parallel partitions into a single checkpoint.\"\"\"\n\nimport os\nimport torch\nimport random\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.model import CodeGeeXModel\nfrom codegeex.megatron.initialize import initialize_megatron\nfrom codegeex.megatron.checkpointing import ensure_directory_exists\n\n\ndef get_change_ckpt_args(parser):\n    \"\"\"Provide extra arguments required for merging.\"\"\"\n    group = parser.add_argument_group(title='Mindspore to megatron')\n    group.add_argument(\n        '--load-ckpt-path',\n        type=str,\n        required=True,\n        help='dir to load model parallel partitions.',\n    )\n    group.add_argument(\n        '--save-ckpt-path',\n        type=str,\n        required=True,\n        help='path to save \".pt\" checkpoint.',\n    )\n    group.add_argument(\n        '--save-name',\n        type=str,\n        help='name of checkpoint.',\n    )\n    group.add_argument(\n        '--source-tensor-model-parallel-size',\n        type=int,\n        default=2,\n        help='original tensor model parallel size',\n    )\n    \n    return parser\n\n\ndef main():\n    os.environ[\"MASTER_ADDR\"] = \"localhost\"\n    os.environ[\"MASTER_PORT\"] = str(random.randint(10000, 20000))\n\n    initialize_megatron(\n        extra_args_provider=get_change_ckpt_args,\n        args_defaults={\n            \"tokenizer_type\": \"GPT2BPETokenizer\",\n            \"no_load_rng\"   : True,\n            \"no_load_optim\" : True,\n        },\n    )\n    \n    args = get_args()\n    model = CodeGeeXModel()\n    print(model.state_dict)\n\n    # Save the model.\n    sd = {}\n    sd['module'] = model.state_dict_for_save_checkpoint()\n    ensure_directory_exists(args.save_ckpt_path)\n    \n    print(f\"Load ckpt from {args.load_ckpt_path}...\")\n    state_dict_list = []\n    for i in range(args.source_tensor_model_parallel_size):\n        try:\n            state_dict_list.append(torch.load(os.path.join(args.load_ckpt_path, f\"mp_rank_{i:02d}_model_states.pt\"), map_location=\"cpu\"))\n        except Exception as e:\n            print(e)\n            exit(0)\n    \n    print(f\"Merging {len(state_dict_list)} partitions into a single ckpt...\")\n    print(\"Merging Embedding layers...\")\n    vocab_parallel_size = args.make_vocab_size_divisible_by // args.source_tensor_model_parallel_size\n    for i in range(args.source_tensor_model_parallel_size):\n        sd['module']['language_model']['embedding']['word_embeddings']['weight'][i * vocab_parallel_size : (i + 1) * vocab_parallel_size, :] = state_dict_list[i]['module']['language_model']['embedding']['word_embeddings']['weight']\n    \n    sd['module']['language_model']['embedding']['position_embeddings']['weight'] = state_dict_list[0]['module']['language_model']['embedding']['position_embeddings']['weight']\n        \n    print(\"Merging QueryEmbedding layers...\")\n    query_parallel_size = args.max_position_embeddings // args.source_tensor_model_parallel_size\n    for i in range(args.source_tensor_model_parallel_size):\n        sd['module']['language_model']['topQueryEmbedding']['top_query_embeddings']['weight'][i * query_parallel_size : (i + 1) * query_parallel_size, :] = state_dict_list[i]['module']['language_model']['topQueryEmbedding']['top_query_embeddings'].pop('weight', None)\n    \n    print(\"Merging Transformer layers...\")\n    for layer_name in sd['module']['language_model']['transformer'].keys():\n        if \"layernorm\" in layer_name:\n            sd['module']['language_model']['transformer'][layer_name] = state_dict_list[0]['module']['language_model']['transformer'].pop(layer_name, None)\n        elif \"attention\" in layer_name and \"weight\" in layer_name:\n            if \"dense\" in layer_name:\n                hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[1] // args.source_tensor_model_parallel_size\n                for i in range(args.source_tensor_model_parallel_size):\n                    sd['module']['language_model']['transformer'][layer_name][:, i * hidden_parallel_size : (i + 1) * hidden_parallel_size] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n            else:\n                hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[0] // args.source_tensor_model_parallel_size\n                for i in range(args.source_tensor_model_parallel_size):\n                    sd['module']['language_model']['transformer'][layer_name][i * hidden_parallel_size : (i + 1) * hidden_parallel_size, :] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n        elif \"weight\" in layer_name and \"dense\" in layer_name:\n            if \"h_to_4h\" in layer_name:\n                hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[0] // args.source_tensor_model_parallel_size\n                for i in range(args.source_tensor_model_parallel_size):\n                    sd['module']['language_model']['transformer'][layer_name][i * hidden_parallel_size : (i + 1) * hidden_parallel_size, :] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n            else:\n                hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[1] // args.source_tensor_model_parallel_size\n                for i in range(args.source_tensor_model_parallel_size):\n                    sd['module']['language_model']['transformer'][layer_name][:, i * hidden_parallel_size : (i + 1) * hidden_parallel_size] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n        elif \"bias\" in layer_name:\n            if \"mlp\" in layer_name:\n                if \"4h_to_h\" in layer_name:\n                    sd['module']['language_model']['transformer'][layer_name] = state_dict_list[0]['module']['language_model']['transformer'].pop(layer_name, None)\n                else:\n                    hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[0] // args.source_tensor_model_parallel_size\n                    for i in range(args.source_tensor_model_parallel_size):\n                        sd['module']['language_model']['transformer'][layer_name][i * hidden_parallel_size : (i + 1) * hidden_parallel_size] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n            elif \"attention\" in layer_name:\n                if \"dense\" in layer_name:\n                    sd['module']['language_model']['transformer'][layer_name] = state_dict_list[0]['module']['language_model']['transformer'].pop(layer_name, None)\n                else:\n                    hidden_parallel_size = sd['module']['language_model']['transformer'][layer_name].shape[0] // args.source_tensor_model_parallel_size\n                    for i in range(args.source_tensor_model_parallel_size):\n                        sd['module']['language_model']['transformer'][layer_name][i * hidden_parallel_size : (i + 1) * hidden_parallel_size] = state_dict_list[i]['module']['language_model']['transformer'].pop(layer_name, None)\n        else:\n            sd['module']['language_model']['transformer'][layer_name] = state_dict_list[0]['module']['language_model']['transformer'].pop(layer_name, None)\n            \n    if args.save_ckpt_path.endswith(\".pt\"):\n        save_ckpt_path = args.save_ckpt_path\n    else:\n        os.makedirs(args.save_ckpt_path, exist_ok=True)\n        if args.save_name:\n            save_ckpt_path = os.path.join(args.save_ckpt_path, args.save_name)\n        else:\n            save_ckpt_path = os.path.join(args.save_ckpt_path, \"mp_rank_00_model_states.pt\")\n    \n    torch.save(sd, save_ckpt_path)\n    print(f\"Converted checkpoint saved in {save_ckpt_path}.\")\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "codegeex/megatron/microbatches.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron number of micro-batches calculators.\"\"\"\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\n\ndef build_num_microbatches_calculator(args):\n\n    # Constant num micro-batches.\n    if args.rampup_batch_size is None:\n        num_microbatches_calculator = ConstantNumMicroBatches(\n            args.global_batch_size, args.micro_batch_size, args.data_parallel_size\n        )\n        if args.rank == 0:\n            print(\n                \"setting number of micro-batches to constant {}\".format(\n                    num_microbatches_calculator.get()\n                ),\n                flush=True,\n            )\n\n    else:\n        assert len(args.rampup_batch_size) == 3, (\n            \"expected the following \"\n            \"format: --rampup-batch-size <start batch size> \"\n            \"<batch size incerement> <ramp-up samples>\"\n        )\n        start_batch_size = int(args.rampup_batch_size[0])\n        batch_size_increment = int(args.rampup_batch_size[1])\n        ramup_samples = int(args.rampup_batch_size[2])\n        if args.rank == 0:\n            print(\n                \"will use batch size rampup starting from global batch \"\n                \"size {} to global batch size {} with batch size increments \"\n                \"{} over {} samples.\".format(\n                    start_batch_size,\n                    args.global_batch_size,\n                    batch_size_increment,\n                    ramup_samples,\n                ),\n                flush=True,\n            )\n        num_microbatches_calculator = RampupBatchsizeNumMicroBatches(\n            start_batch_size,\n            batch_size_increment,\n            ramup_samples,\n            args.global_batch_size,\n            args.micro_batch_size,\n            args.data_parallel_size,\n        )\n\n    return num_microbatches_calculator\n\n\nclass NumMicroBatchesCalculator(ABC):\n    def __init__(self):\n        self.num_micro_batches = None\n        self.current_global_batch_size = None\n\n    def get(self):\n        return self.num_micro_batches\n\n    def get_current_global_batch_size(self):\n        return self.current_global_batch_size\n\n    @abstractmethod\n    def update(self, consumed_samples, consistency_check):\n        pass\n\n\nclass ConstantNumMicroBatches(NumMicroBatchesCalculator):\n    def __init__(self, global_batch_size, micro_batch_size, data_parallel_size):\n        micro_batch_times_data_parallel = micro_batch_size * data_parallel_size\n        assert global_batch_size % micro_batch_times_data_parallel == 0, (\n            \"global batch size ({}) is not divisible by micro batch size ({})\"\n            \" times data parallel size ({})\".format(\n                global_batch_size, micro_batch_size, data_parallel_size\n            )\n        )\n        self.num_micro_batches = global_batch_size // micro_batch_times_data_parallel\n        assert self.num_micro_batches >= 1\n        self.current_global_batch_size = global_batch_size\n\n    def update(self, consumed_samples, consistency_check):\n        pass\n\n\nclass RampupBatchsizeNumMicroBatches(NumMicroBatchesCalculator):\n    def __init__(\n        self,\n        start_batch_size,\n        batch_size_increment,\n        ramup_samples,\n        global_batch_size,\n        micro_batch_size,\n        data_parallel_size,\n    ):\n        \"\"\"Batch size ramp up.\n        Over\n          steps = (global-batch-size - start-batch-size) / batch_size_increment\n        increment batch size from start-batch-size to global-batch-size using\n          rampup-samples / steps\n        samples.\n        Arguments:\n            start_batch_size: global batch size to start with\n            batch_size_increment: global batch size increments\n            ramup_samples: number of samples to use ramp up global\n               batch size from `start_batch_size` to `global_batch_size`\n            global_batch_size: global batch size post rampup\n            micro_batch_size: micro batch size\n            data_parallel_size: data parallel size.\n        \"\"\"\n\n        self.micro_batch_size = micro_batch_size\n        self.data_parallel_size = data_parallel_size\n        self.micro_batch_times_data_parallel_size = (\n            self.micro_batch_size * self.data_parallel_size\n        )\n        assert self.micro_batch_times_data_parallel_size > 0\n\n        assert start_batch_size > 0\n        self.start_batch_size = start_batch_size\n\n        assert global_batch_size > 0\n        self.global_batch_size = global_batch_size\n        diff_batch_size = self.global_batch_size - self.start_batch_size\n        assert diff_batch_size >= 0\n        assert batch_size_increment > 0\n        self.batch_size_increment = batch_size_increment\n        assert diff_batch_size % batch_size_increment == 0, (\n            \"expected \"\n            \"global batch size interval ({}) to be divisible by global batch \"\n            \"size increment ({})\".format(diff_batch_size, batch_size_increment)\n        )\n\n        num_increments = diff_batch_size // self.batch_size_increment\n        self.ramup_samples = ramup_samples\n        assert self.ramup_samples >= 0\n        self.rampup_samples_per_increment = self.ramup_samples / num_increments\n\n        # Initialize number of microbatches.\n        self.update(0, False)\n\n    def update(self, consumed_samples, consistency_check):\n\n        if consumed_samples > self.ramup_samples:\n            self.current_global_batch_size = self.global_batch_size\n        else:\n            steps = int(consumed_samples / self.rampup_samples_per_increment)\n            self.current_global_batch_size = (\n                self.start_batch_size + steps * self.batch_size_increment\n            )\n            assert self.current_global_batch_size <= self.global_batch_size\n\n        if consistency_check:\n            assert (\n                self.current_global_batch_size\n                % self.micro_batch_times_data_parallel_size\n                == 0\n            ), (\n                \"current global \"\n                \"batch size ({}) is not divisible by micro-batch-size ({}) times\"\n                \"data parallel size ({})\".format(\n                    self.current_global_batch_size,\n                    self.micro_batch_size,\n                    self.data_parallel_size,\n                )\n            )\n        self.num_micro_batches = (\n            self.current_global_batch_size // self.micro_batch_times_data_parallel_size\n        )\n"
  },
  {
    "path": "codegeex/megatron/mindspore_to_megatron.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Merge model parallel partitions.\"\"\"\n\nimport os\nimport random\nimport sys\n\nimport numpy as np\nimport torch\n\nsys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__),\n                                             os.path.pardir)))\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.model import CodeGeeXModel\nfrom codegeex.megatron.initialize import initialize_megatron\nfrom codegeex.megatron.checkpointing import ensure_directory_exists\n\n\ndef get_change_ckpt_args(parser):\n    \"\"\"Provide extra arguments required for merging.\"\"\"\n    group = parser.add_argument_group(title='Mindspore to megatron')\n    group.add_argument(\n        '--npy-ckpt-path',\n        type=str,\n        required=True,\n        help='path of npy checkpoint.',\n    )\n    group.add_argument(\n        '--save-ckpt-path',\n        type=str,\n        required=True,\n        help='path to save checkpoint.',\n    )\n\n    return parser\n\n\ndef loadModelFromNp(sd, args):\n    num_layers = args.num_layers\n    npCkptPath = args.npy_ckpt_path\n    languageModel = sd['module']['language_model']\n    loadEmbeddingFromNp(npCkptPath, languageModel)\n    transformer = sd['module']['language_model']['transformer']\n    for layerID in range(num_layers):\n        loadAttentionLayerFromNp(npCkptPath, transformer, layerID)\n    loadQueryLayerFromNp(npCkptPath, transformer)\n\n    transformer['final_layernorm.weight'][:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.layernorm.gamma.npy')\n        ).float()\n    transformer['final_layernorm.bias'][:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.layernorm.beta.npy')\n        ).float()\n\n\ndef loadEmbeddingFromNp(npCkptPath, languageModel, vocabSize=52224):\n    word_embedding_np = \\\n        np.load(npCkptPath + 'backbone.embedding.word_embedding.embedding_table.npy')\n    languageModel['embedding']['word_embeddings']['weight'][:vocabSize, :] = \\\n        torch.tensor(word_embedding_np).float()\n\n    position_embeddings_np = \\\n        np.load(npCkptPath + 'backbone.embedding.position_embedding.embedding_table.npy')\n    languageModel['embedding']['position_embeddings']['weight'][:, :] = \\\n        torch.tensor(position_embeddings_np).float()\n\n    topQueryEmbedding_np = \\\n        np.load(npCkptPath + 'backbone.top_query_embedding.embedding_table.npy')\n    languageModel['topQueryEmbedding']['top_query_embeddings']['weight'][:, :] = \\\n        torch.tensor(topQueryEmbedding_np).float()\n\n\ndef loadAttentionLayerFromNp(npCkptPath, transformer, layerID):\n    attention_dense1_weight_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense1.weight.npy')\n    attention_dense2_weight_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense2.weight.npy')\n    attention_dense3_weight_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense3.weight.npy')\n\n    attention_dense1_bias_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense1.bias.npy')\n    attention_dense2_bias_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense2.bias.npy')\n    attention_dense3_bias_np = \\\n        np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.dense3.bias.npy')\n\n    query_weight = transformer[f'layers.{layerID}.attention.query.weight']\n    key_weight = transformer[f'layers.{layerID}.attention.key.weight']\n    value_weight = transformer[f'layers.{layerID}.attention.value.weight']\n\n    query_weight[:] = torch.tensor(attention_dense1_weight_np).float()\n    key_weight[:] = torch.tensor(attention_dense2_weight_np).float()\n    value_weight[:] = torch.tensor(attention_dense3_weight_np).float()\n\n    query_bias = transformer[f'layers.{layerID}.attention.query.bias']\n    key_bias = transformer[f'layers.{layerID}.attention.key.bias']\n    value_bias = transformer[f'layers.{layerID}.attention.value.bias']\n\n    query_bias[:] = torch.tensor(attention_dense1_bias_np).float()\n    key_bias[:] = torch.tensor(attention_dense2_bias_np).float()\n    value_bias[:] = torch.tensor(attention_dense3_bias_np).float()\n\n    att_dense_weight = transformer[f'layers.{layerID}.attention.dense.weight']\n    att_dense_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.projection.weight.npy').transpose()\n        ).float()\n    att_dense_bias = transformer[f'layers.{layerID}.attention.dense.bias']\n    att_dense_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.attention.projection.bias.npy')\n        ).float()\n\n    mlp_dense_h_to_4h_weight = transformer[f'layers.{layerID}.mlp.dense_h_to_4h.weight']\n    mlp_dense_h_to_4h_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.output.mapping.weight.npy').transpose()\n        ).float()\n    mlp_dense_h_to_4h_bias = transformer[f'layers.{layerID}.mlp.dense_h_to_4h.bias']\n    mlp_dense_h_to_4h_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.output.mapping.bias.npy')\n        ).float()\n\n    mlp_dense_4h_to_h_weight = transformer[f'layers.{layerID}.mlp.dense_4h_to_h.weight']\n    mlp_dense_4h_to_h_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.output.projection.weight.npy').transpose()\n        ).float()\n    mlp_dense_4h_to_h_bias = transformer[f'layers.{layerID}.mlp.dense_4h_to_h.bias']\n    mlp_dense_4h_to_h_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.output.projection.bias.npy')\n        ).float()\n\n    input_layernorm_weight = transformer[f'layers.{layerID}.input_layernorm.weight']\n    input_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm1.gamma.npy')\n        ).float()\n    input_layernorm_bias = transformer[f'layers.{layerID}.input_layernorm.bias']\n    input_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm1.beta.npy')\n        ).float()\n\n    post_attention_layernorm_weight = transformer[f'layers.{layerID}.post_attention_layernorm.weight']\n    post_attention_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm2.gamma.npy')\n        ).float()\n    post_attention_layernorm_bias = transformer[f'layers.{layerID}.post_attention_layernorm.bias']\n    post_attention_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm2.beta.npy')\n        ).float()\n\n    input_layernorm_weight = transformer[f'layers.{layerID}.input_layernorm.weight']\n    input_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm1.gamma.npy')\n        ).float()\n    input_layernorm_bias = transformer[f'layers.{layerID}.input_layernorm.bias']\n    input_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm1.beta.npy')\n        ).float()\n\n    post_attention_layernorm_weight = transformer[f'layers.{layerID}.post_attention_layernorm.weight']\n    post_attention_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm2.gamma.npy')\n        ).float()\n    post_attention_layernorm_bias = transformer[f'layers.{layerID}.post_attention_layernorm.bias']\n    post_attention_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.blocks.{layerID}.layernorm2.beta.npy')\n        ).float()\n\n\ndef loadQueryLayerFromNp(npCkptPath, transformer):\n    attention_dense1_weight_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense1.weight.npy')\n    attention_dense1_bias_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense1.bias.npy')\n    attention_dense2_weight_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense2.weight.npy')\n    attention_dense2_bias_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense2.bias.npy')\n    attention_dense3_weight_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense3.weight.npy')\n    attention_dense3_bias_np = \\\n        np.load(npCkptPath + f'backbone.top_query_layer.attention.dense3.bias.npy')\n\n    query_weight = transformer[f'topQueryLayer.attention.query.weight']\n    query_weight[:, :] = \\\n        torch.tensor(attention_dense1_weight_np).float()\n    query_bias = transformer[f'topQueryLayer.attention.query.bias']\n    query_bias[:] = torch.tensor(attention_dense1_bias_np).float()\n\n    key_weight = transformer[f'topQueryLayer.attention.key.weight']\n    key_weight[:, :] = \\\n        torch.tensor(attention_dense2_weight_np).float()\n    key_bias = transformer[f'topQueryLayer.attention.key.bias']\n    key_bias[:] = torch.tensor(attention_dense2_bias_np).float()\n\n    value_weight = transformer[f'topQueryLayer.attention.value.weight']\n    value_weight[:, :] = \\\n        torch.tensor(attention_dense3_weight_np).float()\n    value_bias = transformer[f'topQueryLayer.attention.value.bias']\n    value_bias[:] = torch.tensor(attention_dense3_bias_np).float()\n\n    att_dense_weight = transformer[f'topQueryLayer.attention.dense.weight']\n    att_dense_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.attention.projection.weight.npy')\n            .transpose()\n        ).float()\n    att_dense_bias = transformer[f'topQueryLayer.attention.dense.bias']\n    att_dense_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.attention.projection.bias.npy')\n        ).float()\n\n    mlp_dense_h_to_4h_weight = transformer[f'topQueryLayer.mlp.dense_h_to_4h.weight']\n    mlp_dense_h_to_4h_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.output.mapping.weight.npy')\n            .transpose()\n        ).float()\n    mlp_dense_h_to_4h_bias = transformer[f'topQueryLayer.mlp.dense_h_to_4h.bias']\n    mlp_dense_h_to_4h_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.output.mapping.bias.npy')\n        ).float()\n\n    mlp_dense_4h_to_h_weight = transformer[f'topQueryLayer.mlp.dense_4h_to_h.weight']\n    mlp_dense_4h_to_h_weight[:, :] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.output.projection.weight.npy')\n            .transpose()\n        ).float()\n    mlp_dense_4h_to_h_bias = transformer[f'topQueryLayer.mlp.dense_4h_to_h.bias']\n    mlp_dense_4h_to_h_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.output.projection.bias.npy')\n        ).float()\n\n    input_layernorm_weight = transformer[f'topQueryLayer.input_layernorm.weight']\n    input_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.layernorm1.gamma.npy')\n        ).float()\n    input_layernorm_bias = transformer[f'topQueryLayer.input_layernorm.bias']\n    input_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.layernorm1.beta.npy')\n        ).float()\n\n    post_attention_layernorm_weight = transformer[f'topQueryLayer.post_attention_layernorm.weight']\n    post_attention_layernorm_weight[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.layernorm2.gamma.npy')\n        ).float()\n    post_attention_layernorm_bias = transformer[f'topQueryLayer.post_attention_layernorm.bias']\n    post_attention_layernorm_bias[:] = \\\n        torch.tensor(\n            np.load(npCkptPath + f'backbone.top_query_layer.layernorm2.beta.npy')\n        ).float()\n\n\ndef main():\n    os.environ[\"MASTER_ADDR\"] = \"localhost\"\n    os.environ[\"MASTER_PORT\"] = str(random.randint(10000, 20000))\n\n    initialize_megatron(\n        extra_args_provider=get_change_ckpt_args,\n        args_defaults={\n            \"tokenizer_type\": \"GPT2BPETokenizer\",\n            \"no_load_rng\"   : True,\n            \"no_load_optim\" : True,\n        },\n    )\n\n    args = get_args()\n    model = CodeGeeXModel()\n    # print(dir(model))\n    print(model.state_dict)\n\n    # Save the model.\n    sd = {}\n    sd['module'] = model.state_dict_for_save_checkpoint()\n    ensure_directory_exists(args.save_ckpt_path)\n    loadModelFromNp(sd, args)\n    print('> saving merged model to {}'.format(args.save_ckpt_path))\n    torch.save(sd, args.save_ckpt_path)\n    print(f\"Converted checkpoint saved in {args.save_ckpt_path}.\")\n\n\nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "codegeex/megatron/model/__init__.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom torch.nn import LayerNorm\nfrom .distributed import DistributedDataParallel\nfrom .codegeex_model import CodeGeeXModel\nfrom .language_model import get_language_model\nfrom .module import Float16Module"
  },
  {
    "path": "codegeex/megatron/model/codegeex_model.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport torch\nfrom codegeex.megatron import get_args, mpu\nfrom codegeex.megatron.model import LayerNorm\nfrom codegeex.megatron.enums import AttnMaskType\nfrom codegeex.megatron.model.module import MegatronModule\nfrom codegeex.megatron.model.language_model import parallel_lm_logits, get_language_model, EmbeddingPipe, QueryEmbeddingPipe\nfrom codegeex.megatron.model.utils import init_method_normal, scaled_init_method_normal\nfrom codegeex.megatron.model.transformer import ParallelTransformerLayerPipe, ParallelTopQueryLayerPipe\nfrom deepspeed.pipe import PipelineModule, LayerSpec, TiedLayerSpec\n\n\nclass CodeGeeXModel(MegatronModule):\n    \"\"\"Code Generation Model for Multilingual Program Synthesis.\"\"\"\n\n    def __init__(self, num_tokentypes=0, parallel_output=False):\n        super(CodeGeeXModel, self).__init__()\n        args = get_args()\n\n        self.parallel_output = parallel_output\n        self.fp16_lm_cross_entropy = args.fp16_lm_cross_entropy\n\n        self.language_model, self._language_model_key = get_language_model(\n            num_tokentypes=num_tokentypes,\n            add_pooler=False,\n            init_method=init_method_normal(args.init_method_std),\n            scaled_init_method=scaled_init_method_normal(args.init_method_std,\n                                                         args.num_layers))\n\n    def set_input_tensor(self, input_tensor):\n        \"\"\"See megatron.model.transformer.set_input_tensor()\"\"\"\n        self.language_model.set_input_tensor(input_tensor)\n        \n    def forward(\n            self,\n            input_ids,\n            position_ids,\n            attention_mask,\n            labels=None,\n            tokentype_ids=None,\n            layer_past=None,\n            get_key_value=False,\n            forward_method_parallel_output=None,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Language model.\n        lm_output = self.language_model(input_ids,\n                                        position_ids,\n                                        attention_mask,\n                                        tokentype_ids=tokentype_ids,\n                                        layer_past=layer_past,\n                                        get_key_value=get_key_value,\n                                        prompt_length=prompt_length,\n                                        context_length=context_length)\n\n        if get_key_value:\n            lm_output, presents = lm_output\n\n        lm_output = torch.add(lm_output, 0)\n        # Output.\n        parallel_output = self.parallel_output\n        if forward_method_parallel_output is not None:\n            parallel_output = forward_method_parallel_output\n        output = parallel_lm_logits(\n            lm_output,\n            self.language_model.embedding.word_embeddings.weight,\n            parallel_output)\n\n        if get_key_value:\n            output = [output, presents]\n\n        if labels is None:\n            return output\n        else:\n            if self.fp16_lm_cross_entropy:\n                assert output.dtype == torch.half\n                loss = mpu.vocab_parallel_cross_entropy(output, labels)\n            else:\n                loss = mpu.vocab_parallel_cross_entropy(output.float(), labels)\n\n            return loss\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n\n        state_dict_ = {}\n        state_dict_[self._language_model_key] \\\n            = self.language_model.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        if self._language_model_key in state_dict:\n            state_dict = state_dict[self._language_model_key]\n        self.language_model.load_state_dict(state_dict, strict=strict)\n\n\ndef CrossEntropy(output, labels):\n    labels, loss_mask = labels[0], labels[1]\n\n    args = get_args()\n\n    losses = mpu.vocab_parallel_cross_entropy(output.contiguous().float(), labels)\n    loss_mask = loss_mask.view(-1)\n    loss = torch.sum(losses.view(-1) * loss_mask) / loss_mask.sum()\n    return loss\n\n\nclass CodeGeeXModelPipe(PipelineModule, MegatronModule):\n    \"\"\"Pipeline version of CodeGeeX.\"\"\"\n\n    def __init__(self, num_tokentypes=0, parallel_output=True):\n        args = get_args()\n        self.parallel_output = parallel_output\n\n        init_method = init_method_normal(args.init_method_std)\n\n        self.specs = []\n        \n        # Embedding layer\n        self.specs.append(\n            TiedLayerSpec(\n                \"embed\",\n                EmbeddingPipe,\n                args.hidden_size,\n                args.padded_vocab_size,\n                args.max_position_embeddings,\n                args.hidden_dropout,\n                init_method=init_method,\n                num_tokentypes=num_tokentypes,\n                tied_weight_attr=\"word_embeddings_weight\",\n            )\n        )\n\n        self.specs.append(lambda x: x.transpose(0, 1).contiguous())\n\n        for layer_idx in range(args.num_layers):\n            self.specs.append(\n                LayerSpec(\n                    ParallelTransformerLayerPipe,\n                    init_method=init_method,\n                    output_layer_init_method=scaled_init_method_normal(\n                        args.init_method_std, args.num_layers\n                    ),\n                    layer_number=layer_idx,\n                    self_attn_mask_type=AttnMaskType.causal,\n                )\n            )\n\n        # Undo data format change\n        self.specs.append(lambda x: x.transpose(0, 1).contiguous())\n\n        # Final layernorm after transformer layers\n        self.specs.append(\n            LayerSpec(LayerNorm, args.hidden_size, eps=args.layernorm_epsilon)\n        )\n\n        def _logits_helper(embedding, lm_output):\n            \"\"\"A wrapper to massage inputs/outputs from pipeline.\"\"\"\n            return parallel_lm_logits(\n                lm_output, embedding.word_embeddings_weight, self.parallel_output\n            )\n\n        self.specs.append(\n            TiedLayerSpec(\n                \"embed\",\n                EmbeddingPipe,\n                args.hidden_size,\n                args.padded_vocab_size,\n                args.max_position_embeddings,\n                args.hidden_dropout,\n                init_method=init_method,\n                num_tokentypes=num_tokentypes,\n                forward_fn=_logits_helper,\n                tied_weight_attr=\"word_embeddings_weight\",\n            )\n        )\n\n        if args.checkpoint_activations:\n            interval = args.checkpoint_num_layers\n        else:\n            interval = 0\n\n        from deepspeed.runtime.pipe.topology import PipeModelDataParallelTopology\n\n        topo = PipeModelDataParallelTopology(\n            num_pp=mpu.get_pipeline_model_parallel_world_size(),\n            num_mp=mpu.get_tensor_model_parallel_world_size(),\n            num_dp=mpu.get_data_parallel_world_size(),\n        )\n\n        super().__init__(\n            layers=self.specs,\n            loss_fn=CrossEntropy,\n            topology=topo,\n            activation_checkpoint_interval=interval,\n            partition_method=\"type:transformer\",\n        )\n"
  },
  {
    "path": "codegeex/megatron/model/distributed.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\nimport torch\nfrom torch._utils import _flatten_dense_tensors, _unflatten_dense_tensors\n\nfrom codegeex.megatron import mpu\nfrom .module import MegatronModule\n\n\nclass MemoryBuffer:\n    def __init__(self, numel, dtype):\n        self.numel = numel\n        self.dtype = dtype\n        self.data = torch.zeros(\n            self.numel,\n            dtype=self.dtype,\n            device=torch.cuda.current_device(),\n            requires_grad=False,\n        )\n\n    def zero(self):\n        \"\"\"Reset the buffer to zero.\"\"\"\n        self.data.zero_()\n\n    def get(self, shape, start_index):\n        \"\"\"Return a tensor with the input `shape` as a view into the\n        1-D data starting at `start_index`.\"\"\"\n        end_index = start_index + shape.numel()\n        assert end_index <= self.numel, \"requested tensor is out of the buffer range.\"\n        buffer_tensor = self.data[start_index:end_index]\n        buffer_tensor = buffer_tensor.view(shape)\n        return buffer_tensor\n\n\nclass DistributedDataParallelBase(MegatronModule, ABC):\n    \"\"\"Abstract class for DDP.\"\"\"\n\n    def __init__(self, module):\n        super(DistributedDataParallelBase, self).__init__()\n        # Keep a pointer to the model.\n        self.module = module\n\n    @abstractmethod\n    def allreduce_gradients(self):\n        pass\n\n    def forward(self, *inputs, **kwargs):\n        return self.module(*inputs, **kwargs)\n\n    def state_dict(self, destination=None, prefix=\"\", keep_vars=False):\n        return self.module.state_dict(destination, prefix, keep_vars)\n\n    def state_dict_for_save_checkpoint(\n            self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        return self.module.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars\n        )\n\n    def load_state_dict(self, state_dict, strict=True):\n        self.module.load_state_dict(state_dict, strict=strict)\n\n\nclass DistributedDataParallel(DistributedDataParallelBase):\n    \"\"\"DDP with contiguous buffers options to storre and accumulate gradients.\n    This class:\n        - has the potential to reduce memory fragmentation.\n        - provides the option to do the gradient accumulation\n          in a type other than the params type (for example fp32)\n\n    Arguments:\n        module: input model.\n        accumulate_allreduce_grads_in_fp32: if true do the gradient accumulation\n            and the gradient all-reduce all in in float32. If this option is\n            true, we require `use_contiguous_buffers` to be true too.\n        use_contiguous_buffers: if true, use a contiguous buffer to store the\n            gradients.\n    \"\"\"\n\n    def __init__(\n            self, module, accumulate_allreduce_grads_in_fp32, use_contiguous_buffers\n    ):\n\n        super(DistributedDataParallel, self).__init__(module)\n\n        self.accumulate_allreduce_grads_in_fp32 = accumulate_allreduce_grads_in_fp32\n        self.use_contiguous_buffers = use_contiguous_buffers\n        # If we are using fp32-accumulate-allreduce explicitly\n        # this means we need main grads in a continuous buffer.\n        if self.accumulate_allreduce_grads_in_fp32:\n            assert self.use_contiguous_buffers\n\n        # ===================================\n        # Rest of this part applies only to\n        # the case we use continuous buffers.\n        # ===================================\n        self._grad_buffers = None\n        if self.use_contiguous_buffers:\n            self._grad_buffers = {}\n\n            # Simple function to define buffer type.\n            def _get_buffer_type(param):\n                return (\n                    torch.float\n                    if self.accumulate_allreduce_grads_in_fp32\n                    else param.dtype\n                )\n\n            # First calculate total number of elements per type.\n            type_num_elements = {}\n            for param in self.module.parameters():\n                if param.requires_grad:\n                    dtype = _get_buffer_type(param)\n                    type_num_elements[dtype] = (\n                            type_num_elements.get(dtype, 0) + param.data.nelement()\n                    )\n\n            # Allocate the buffer.\n            for dtype, num_elements in type_num_elements.items():\n                self._grad_buffers[dtype] = MemoryBuffer(num_elements, dtype)\n\n            # Assume the back prop order is reverse the params order,\n            # store the start index for the gradients.\n            for param in self.module.parameters():\n                if param.requires_grad:\n                    dtype = _get_buffer_type(param)\n                    type_num_elements[dtype] -= param.data.nelement()\n                    param.main_grad = self._grad_buffers[dtype].get(\n                        param.data.shape, type_num_elements[dtype]\n                    )\n\n            # Backward hook.\n            # Accumalation function for the gradients. We need\n            # to store them so they don't go out of scope.\n            self.grad_accs = []\n            # Loop over all the parameters in the model.\n            for param in self.module.parameters():\n                if param.requires_grad:\n                    # Expand so we get access to grad_fn.\n                    param_tmp = param.expand_as(param)\n                    # Get the gradient accumulator functtion.\n                    grad_acc = param_tmp.grad_fn.next_functions[0][0]\n                    grad_acc.register_hook(self._make_param_hook(param))\n                    self.grad_accs.append(grad_acc)\n\n    def _make_param_hook(self, param):\n        \"\"\"Create the all-reduce hook for backprop.\"\"\"\n\n        # Hook used for back-prop.\n        def param_hook(*unused):\n            # Add the gradient to the buffer.\n            if param.grad.data is not None:\n                param.main_grad.add_(param.grad.data)\n                # Now we can deallocate grad memory.\n                param.grad = None\n\n        return param_hook\n\n    def zero_grad_buffer(self):\n        \"\"\"Set the grad buffer data to zero. Needs to be called at the\n        beginning of each iteration.\"\"\"\n        assert self._grad_buffers is not None, \"buffers are not initialized.\"\n        for _, buffer_ in self._grad_buffers.items():\n            buffer_.zero()\n\n    def allreduce_gradients(self):\n        \"\"\"Reduce gradients across data parallel ranks.\"\"\"\n        # If we have buffers, simply reduce the data in the buffer.\n        if self._grad_buffers is not None:\n            for _, buffer_ in self._grad_buffers.items():\n                buffer_.data /= mpu.get_data_parallel_world_size()\n                torch.distributed.all_reduce(\n                    buffer_.data, group=mpu.get_data_parallel_group()\n                )\n        else:\n            # Otherwise, bucketize and all-reduce\n            buckets = {}\n            # Pack the buckets.\n            for param in self.module.parameters():\n                if param.requires_grad and param.grad is not None:\n                    tp = param.data.type()\n                    if tp not in buckets:\n                        buckets[tp] = []\n                    buckets[tp].append(param)\n                    param.main_grad = param.grad\n\n            # For each bucket, all-reduce and copy all-reduced grads.\n            for tp in buckets:\n                bucket = buckets[tp]\n                grads = [param.grad.data for param in bucket]\n                coalesced = _flatten_dense_tensors(grads)\n                coalesced /= mpu.get_data_parallel_world_size()\n                torch.distributed.all_reduce(\n                    coalesced, group=mpu.get_data_parallel_group()\n                )\n                for buf, synced in zip(\n                        grads, _unflatten_dense_tensors(coalesced, grads)\n                ):\n                    buf.copy_(synced)\n"
  },
  {
    "path": "codegeex/megatron/model/language_model.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Transformer based language model.\"\"\"\n\nimport torch\nimport torch.nn.functional as F\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import mpu, print_rank_0\nfrom codegeex.megatron.model.module import MegatronModule\nfrom codegeex.megatron.model.transformer import ParallelTransformer\nfrom codegeex.megatron.model.utils import init_method_normal, scaled_init_method_normal\nfrom codegeex.megatron.mpu.initialize import get_tensor_model_parallel_world_size\n\n\ndef get_shrink_embedding_gradient_alpha(iteration):\n    args = get_args()\n\n    alpha = args.shrink_embedding_gradient_alpha\n    if args.shrink_embedding_gradient_steps is None:\n        return alpha\n    else:\n        x1 = int(args.shrink_embedding_gradient_steps[0])\n        x2 = int(args.shrink_embedding_gradient_steps[1])\n        if iteration <= x1:\n            return alpha\n        elif iteration >= x1 + x2:\n            return 1.0\n        else:\n            return alpha + (1 - alpha) * (args.iteration - x1) / x2\n        \n\ndef parallel_lm_logits(input_, word_embeddings_weight, parallel_output, bias=None):\n    \"\"\"LM logits using word embedding weights.\"\"\"\n    # Parallel logits.\n    input_parallel = mpu.copy_to_tensor_model_parallel_region(input_)\n    # Matrix multiply.\n    args = get_args()\n    if args.shrink_logit_embedding_gradient:\n        if hasattr(args, 'iteration'):\n            alpha = get_shrink_embedding_gradient_alpha(args.iteration + 1)\n        else:\n            alpha = args.shrink_embedding_gradient_alpha\n        word_embeddings_weight = word_embeddings_weight if alpha == 1.0 \\\n            else (\n                word_embeddings_weight * alpha +\n                word_embeddings_weight.detach() * (1 - alpha)\n        )\n    if bias is None:\n        logits_parallel = F.linear(input_parallel, word_embeddings_weight.half())\n    else:\n        logits_parallel = F.linear(input_parallel, word_embeddings_weight.half(), bias)\n    # Gather if needed.\n    if parallel_output:\n        return logits_parallel\n\n    return mpu.gather_from_tensor_model_parallel_region(logits_parallel)\n\n\ndef get_language_model(\n        num_tokentypes,\n        add_pooler,\n        init_method=None,\n        scaled_init_method=None,\n):\n    \"\"\"Build language model and return along with the key to save.\"\"\"\n    args = get_args()\n\n    if init_method is None:\n        init_method = init_method_normal(args.init_method_std)\n\n    if scaled_init_method is None:\n        scaled_init_method = scaled_init_method_normal(args.init_method_std, args.num_layers)\n\n    # Language model.\n    language_model = TransformerLanguageModel(\n        init_method=init_method,\n        output_layer_init_method=scaled_init_method,\n        num_tokentypes=num_tokentypes,\n        add_pooler=add_pooler)\n    # key used for checkpoints.\n    language_model_key = 'language_model'\n\n    return language_model, language_model_key\n\n\nclass Embedding(MegatronModule):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n        embedding_dropout_prob: dropout probability for embeddings\n        init_method: weight initialization method\n        num_tokentypes: size of the token-type embeddings. 0 value\n                        will ignore this embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n        embedding_dropout_prob,\n        init_method,\n        num_tokentypes=0,\n    ):\n        super(Embedding, self).__init__()\n        \n        args = get_args()\n        \n        self.hidden_size = hidden_size\n        self.init_method = init_method\n        self.num_tokentypes = num_tokentypes\n        self.max_sequence_length = max_sequence_length\n        \n        # Word embeddings (parallel).\n        self.word_embeddings = mpu.VocabParallelEmbedding(\n            vocab_size, self.hidden_size, init_method=self.init_method)\n        self._word_embeddings_key = 'word_embeddings'\n            \n        self.vocab_size = vocab_size\n\n        # Position embedding (serial).\n        self.position_embeddings = torch.nn.Embedding(\n            max_sequence_length, self.hidden_size)\n        self.position_embeddings = self.position_embeddings.half()\n        self._position_embeddings_key = 'position_embeddings'\n            \n        # Initialize the position embeddings.\n        self.init_method(self.position_embeddings.weight)\n\n        # Token type embedding.\n        # Add this as an optional field that can be added through\n        # method call so we can load a pretrain model without\n        # token types and add them as needed.\n        self._tokentype_embeddings_key = 'tokentype_embeddings'\n        if self.num_tokentypes > 0:\n            self.tokentype_embeddings = torch.nn.Embedding(self.num_tokentypes,\n                                                           self.hidden_size)\n            # Initialize the token-type embeddings.\n            self.init_method(self.tokentype_embeddings.weight)\n        else:\n            self.tokentype_embeddings = None\n\n        # Embeddings dropout\n        self.embedding_dropout = torch.nn.Dropout(embedding_dropout_prob)\n\n    def add_tokentype_embeddings(self, num_tokentypes):\n        \"\"\"Add token-type embedding. This function is provided so we can add\n        token-type embeddings in case the pretrained model does not have it.\n        This allows us to load the model normally and then add this embedding.\n        \"\"\"\n        if self.tokentype_embeddings is not None:\n            raise Exception('tokentype embeddings is already initialized')\n        if torch.distributed.get_rank() == 0:\n            print('adding embedding for {} tokentypes'.format(num_tokentypes),\n                  flush=True)\n        self.num_tokentypes = num_tokentypes\n        self.tokentype_embeddings = torch.nn.Embedding(num_tokentypes,\n                                                       self.hidden_size)\n        # Initialize the token-type embeddings.\n        self.init_method(self.tokentype_embeddings.weight)\n\n    def forward(self, input_ids, position_ids, tokentype_ids=None):\n        # Embeddings.\n        words_embeddings = self.word_embeddings(input_ids)\n        position_embeddings = self.position_embeddings(position_ids)\n        embeddings = words_embeddings + position_embeddings\n        if tokentype_ids is not None:\n            assert self.tokentype_embeddings is not None\n            embeddings = embeddings + self.tokentype_embeddings(tokentype_ids)\n        else:\n            assert self.tokentype_embeddings is None\n\n        # Dropout.\n        embeddings = self.embedding_dropout(embeddings)\n\n        return embeddings\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix='', keep_vars=False,\n    ):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._word_embeddings_key] \\\n            = self.word_embeddings.state_dict(destination, prefix, keep_vars)\n        state_dict_[self._position_embeddings_key] \\\n            = self.position_embeddings.state_dict(\n            destination, prefix, keep_vars)\n        if self.num_tokentypes > 0:\n            state_dict_[self._tokentype_embeddings_key] \\\n                = self.tokentype_embeddings.state_dict(\n                destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Word embedding.\n        if self._word_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._word_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'word_embeddings' in key:\n                    state_dict_[key.split('word_embeddings.')[1]] \\\n                        = state_dict[key]\n        vocab_len = state_dict_['weight'].shape[0]\n        state_dict_[\"weight\"] = state_dict_[\"weight\"][:self.vocab_size // get_tensor_model_parallel_world_size()]\n        self.word_embeddings.load_state_dict(state_dict_, strict=strict)\n\n        # Position embedding.\n        if self._position_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._position_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'position_embeddings' in key:\n                    state_dict_[key.split('position_embeddings.')[1]] \\\n                        = state_dict[key]\n        \n        pos_len = state_dict_['weight'].shape[0]\n        max_seq_len = self.max_sequence_length\n        if pos_len < max_seq_len:\n            print_rank_0(f\"Position embedding padded {pos_len} -> {max_seq_len}.\")\n            position_embeddings_padded = torch.nn.Embedding(\n            max_seq_len - pos_len, self.hidden_size).half()\n            self.init_method(position_embeddings_padded.weight)\n            state_dict_['weight'] = torch.cat([state_dict_['weight'], position_embeddings_padded.weight], dim=0)\n\n        # self.position_embeddings = self.position_embeddings.half()\n        self.position_embeddings.load_state_dict(state_dict_, strict=strict)\n\n        # Tokentype embedding.\n        if self.num_tokentypes > 0:\n            state_dict_ = {}\n            if self._tokentype_embeddings_key in state_dict:\n                state_dict_ = state_dict[self._tokentype_embeddings_key]\n            else:\n                # for backward compatibility.\n                for key in state_dict.keys():\n                    if 'tokentype_embeddings' in key:\n                        state_dict_[key.split('tokentype_embeddings.')[1]] \\\n                            = state_dict[key]\n            if len(state_dict_.keys()) > 0:\n                self.tokentype_embeddings.load_state_dict(state_dict_,\n                                                          strict=strict)\n            else:\n                print('***WARNING*** expected tokentype embeddings in the '\n                      'checkpoint but could not find it', flush=True)\n\n\nclass EmbeddingPipe(Embedding):\n    def forward(self, inputs, **kwargs):\n        if not hasattr(self, \"_args\"):\n            self._args = get_args()\n\n        input_ids = inputs[0]\n        position_ids = inputs[1]\n        if hasattr(self._args, \"attn_mask\"):\n            attention_mask = None\n        else:\n            attention_mask = inputs[2]\n\n        if len(inputs) == 4:\n            tokentype_ids = inputs[3]\n        else:\n            tokentype_ids = None\n\n        embeddings = super().forward(\n            input_ids, position_ids, tokentype_ids=tokentype_ids\n        )\n\n        # If cmd args has attn_mask, we don't forward it as an activation.\n        if hasattr(self._args, \"attn_mask\"):\n            return embeddings\n        else:\n            assert False\n            return embeddings, attention_mask\n\n    @property\n    def word_embeddings_weight(self):\n        \"\"\"Easy accessory for the DeepSpeed pipeline engine to tie embeddings across stages.\"\"\"\n        return self.word_embeddings.weight\n\n\nclass QueryEmbedding(MegatronModule):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n        embedding_dropout_prob: dropout probability for embeddings\n        init_method: weight initialization method\n        num_tokentypes: size of the token-type embeddings. 0 value\n                        will ignore this embedding\n    \"\"\"\n\n    def __init__(self,\n                 hidden_size,\n                 vocab_size,\n                 max_sequence_length,\n                 embedding_dropout_prob,\n                 init_method,\n                 num_tokentypes=0):\n        super(QueryEmbedding, self).__init__()\n\n        self.hidden_size = hidden_size\n        self.init_method = init_method\n        self.num_tokentypes = num_tokentypes\n        self.max_sequence_length = max_sequence_length\n        \n        # Top query position embedding (serial).\n        self.top_query_embeddings = mpu.VocabParallelEmbedding(\n            max_sequence_length, self.hidden_size, init_method=self.init_method)\n        self.top_query_embeddings = self.top_query_embeddings.half()\n        self._top_query_embeddings_key = 'top_query_embeddings'\n            \n        # Initialize the top query position embeddings.\n        self.init_method(self.top_query_embeddings.weight)\n\n        # Token type embedding.\n        # Add this as an optional field that can be added through\n        # method call so we can load a pretrain model without\n        # token types and add them as needed.\n        self._tokentype_embeddings_key = 'tokentype_embeddings'\n        if self.num_tokentypes > 0:\n            self.tokentype_embeddings = torch.nn.Embedding(self.num_tokentypes,\n                                                           self.hidden_size)\n            # Initialize the token-type embeddings.\n            self.init_method(self.tokentype_embeddings.weight)\n        else:\n            self.tokentype_embeddings = None\n\n        # Embeddings dropout\n        self.embedding_dropout = torch.nn.Dropout(embedding_dropout_prob)\n\n    def add_tokentype_embeddings(self, num_tokentypes):\n        \"\"\"Add token-type embedding. This function is provided so we can add\n        token-type embeddings in case the pretrained model does not have it.\n        This allows us to load the model normally and then add this embedding.\n        \"\"\"\n        if self.tokentype_embeddings is not None:\n            raise Exception('tokentype embeddings is already initialized')\n        if torch.distributed.get_rank() == 0:\n            print('adding embedding for {} tokentypes'.format(num_tokentypes),\n                  flush=True)\n        self.num_tokentypes = num_tokentypes\n        self.tokentype_embeddings = torch.nn.Embedding(num_tokentypes,\n                                                       self.hidden_size)\n        # Initialize the token-type embeddings.\n        self.init_method(self.tokentype_embeddings.weight)\n\n    def forward(self, position_ids, tokentype_ids=None):\n        # Embeddings.\n\n        embeddings = self.top_query_embeddings(position_ids)\n        if tokentype_ids is not None:\n            assert self.tokentype_embeddings is not None\n            embeddings = embeddings + self.tokentype_embeddings(tokentype_ids)\n        else:\n            assert self.tokentype_embeddings is None\n\n        # Dropout.\n        embeddings = self.embedding_dropout(embeddings)\n\n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._top_query_embeddings_key] \\\n            = self.top_query_embeddings.state_dict(\n            destination, prefix, keep_vars)\n        if self.num_tokentypes > 0:\n            state_dict_[self._tokentype_embeddings_key] \\\n                = self.tokentype_embeddings.state_dict(\n                destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Position embedding.\n        if self._top_query_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._top_query_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'top_query_embeddings' in key:\n                    state_dict_[key.split('top_query_embeddings.')[1]] \\\n                        = state_dict[key]\n        pos_len = state_dict_['weight'].shape[0]\n        max_seq_len = self.max_sequence_length // get_tensor_model_parallel_world_size()\n        if pos_len < max_seq_len:\n            print_rank_0(f\"Top query embedding padded {pos_len} -> {max_seq_len}.\")\n            top_query_embeddings_padded = torch.nn.Embedding(\n            max_seq_len - pos_len, self.hidden_size).half()\n            self.init_method(top_query_embeddings_padded.weight)\n            state_dict_['weight'] = torch.cat([state_dict_['weight'], top_query_embeddings_padded.weight], dim=0)\n        self.top_query_embeddings.load_state_dict(state_dict_, strict=strict)\n\n        # Tokentype embedding.\n        if self.num_tokentypes > 0:\n            state_dict_ = {}\n            if self._tokentype_embeddings_key in state_dict:\n                state_dict_ = state_dict[self._tokentype_embeddings_key]\n            else:\n                # for backward compatibility.\n                for key in state_dict.keys():\n                    if 'tokentype_embeddings' in key:\n                        state_dict_[key.split('tokentype_embeddings.')[1]] \\\n                            = state_dict[key]\n            if len(state_dict_.keys()) > 0:\n                self.tokentype_embeddings.load_state_dict(state_dict_,\n                                                          strict=strict)\n            else:\n                print('***WARNING*** expected tokentype embeddings in the '\n                      'checkpoint but could not find it', flush=True)\n\n\nclass QueryEmbeddingPipe(QueryEmbedding):\n    def forward(self, inputs, **kwargs):\n        if not hasattr(self, \"_args\"):\n            self._args = get_args()\n\n        position_ids = inputs[0]\n        if hasattr(self._args, \"attn_mask\"):\n            attention_mask = None\n        else:\n            attention_mask = inputs[1]\n\n        if len(inputs) == 3:\n            tokentype_ids = inputs[2]\n        else:\n            tokentype_ids = None\n\n        embeddings = super().forward(\n            position_ids, tokentype_ids=tokentype_ids,\n        )\n\n        # If cmd args has attn_mask, we don't forward it as an activation.\n        if hasattr(self._args, \"attn_mask\"):\n            return embeddings\n        else:\n            assert False\n            return embeddings, attention_mask\n\n    @property\n    def word_embeddings_weight(self):\n        \"\"\"Easy accessory for the DeepSpeed pipeline engine to tie embeddings across stages.\"\"\"\n        return self.top_query_embeddings.weight\n    \n    \nclass TransformerLanguageModel(MegatronModule):\n    \"\"\"Transformer language model.\n\n    Arguments:\n        transformer_hparams: transformer hyperparameters\n        attention_mask_func: a function that takes `unmaksed-attention-scores`\n            with size [b, np, s, s] and an `attention-mask` and will apply\n            the masking. The function should return a masked score of the\n            same size [b, np, s, s].\n          masked-attention-scores = attention_mask_func(\n                                     unmaksed-attention-scores, attention-mask)\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n        embedding_dropout_prob: dropout probability for embeddings\n        num_tokentypes: size of the token-type embeddings. 0 value\n                        will ignore this embedding\n    \"\"\"\n\n    def __init__(self,\n                 init_method,\n                 output_layer_init_method,\n                 num_tokentypes=0,\n                 add_pooler=False):\n        super(TransformerLanguageModel, self).__init__()\n        args = get_args()\n\n        self.hidden_size = args.hidden_size\n        self.num_tokentypes = num_tokentypes\n        self.init_method = init_method\n        self.add_pooler = add_pooler\n\n        # Embeddings\n        self.embedding = Embedding(self.hidden_size,\n                                   args.padded_vocab_size,\n                                   args.max_position_embeddings,\n                                   args.hidden_dropout,\n                                   self.init_method,\n                                   self.num_tokentypes)\n        self._embedding_key = 'embedding'\n\n        # Query embeddings\n        self.topQueryEmbedding = QueryEmbedding(self.hidden_size,\n                                                args.padded_vocab_size,\n                                                args.max_position_embeddings,\n                                                args.hidden_dropout,\n                                                self.init_method,\n                                                self.num_tokentypes)\n        self._topQueryEmbedding_key = 'topQueryEmbedding'\n\n        # Transformer\n        self.transformer = ParallelTransformer(\n            self.init_method,\n            output_layer_init_method)\n        self._transformer_key = 'transformer'\n\n    def set_input_tensor(self, input_tensor):\n        \"\"\"See megatron.model.transformer.set_input_tensor()\"\"\"\n        self.transformer.set_input_tensor(input_tensor)\n        \n    def forward(\n            self,\n            input_ids,\n            position_ids,\n            attention_mask,\n            tokentype_ids=None,\n            layer_past=None,\n            get_key_value=False,\n            pooling_sequence_index=0,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Embeddings.\n        embedding_output = self.embedding(input_ids, position_ids,\n                                          tokentype_ids=tokentype_ids)\n        query_position_ids = position_ids\n        queryEmbedding_out = self.topQueryEmbedding(query_position_ids,\n                                                    tokentype_ids=tokentype_ids)\n\n        # Transformer.\n        transformer_output = self.transformer(embedding_output,\n                                              queryEmbedding_out,\n                                              attention_mask,\n                                              layer_past=layer_past,\n                                              get_key_value=get_key_value,\n                                              prompt_length=prompt_length,\n                                              context_length=context_length, )\n\n        return transformer_output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._embedding_key] \\\n            = self.embedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._topQueryEmbedding_key] \\\n            = self.topQueryEmbedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._transformer_key] \\\n            = self.transformer.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        if self.add_pooler:\n            state_dict_[self._pooler_key] \\\n                = self.pooler.state_dict_for_save_checkpoint(\n                destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Embedding.\n        if self._embedding_key in state_dict:\n            state_dict_ = state_dict[self._embedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.embedding.load_state_dict(state_dict_, strict=strict)\n\n        if self._topQueryEmbedding_key in state_dict:\n            state_dict_ = state_dict[self._topQueryEmbedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.topQueryEmbedding.load_state_dict(state_dict_, strict=strict)\n\n        # Transformer.\n        if self._transformer_key in state_dict:\n            state_dict_ = state_dict[self._transformer_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'transformer.' in key:\n                    state_dict_[key.split('transformer.')[1]] = state_dict[key]\n        self.transformer.load_state_dict(state_dict_, strict=strict)\n\n        # Pooler.\n        if self.add_pooler:\n            assert 'pooler' in state_dict, \\\n                'could not find data for pooler in the checkpoint'\n            self.pooler.load_state_dict(state_dict[self._pooler_key],\n                                        strict=strict)\n"
  },
  {
    "path": "codegeex/megatron/model/module.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron Module\"\"\"\n\nimport torch\nfrom torch.autograd import Variable\nfrom torch.nn.parameter import Parameter\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import mpu\n\n\n_FLOAT_TYPES = (torch.FloatTensor, torch.cuda.FloatTensor)\n_HALF_TYPES = (torch.HalfTensor, torch.cuda.HalfTensor)\n_BF16_TYPES = (torch.BFloat16Tensor, torch.cuda.BFloat16Tensor)\n\n\ndef param_is_not_shared(param):\n    return not hasattr(param, \"shared\") or not param.shared\n\n\nclass MegatronModule(torch.nn.Module):\n    \"\"\"Megatron specific extensions of torch Module with support\n    for pipelining.\"\"\"\n\n    def __init__(self, share_word_embeddings=True):\n        super(MegatronModule, self).__init__()\n        self.share_word_embeddings = share_word_embeddings\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        \"\"\"Use this function to override the state dict for\n        saving checkpoints.\"\"\"\n        return self.state_dict(destination, prefix, keep_vars)\n\n    def word_embeddings_weight(self):\n        if mpu.is_pipeline_first_stage(ignore_virtual=True):\n            return self.language_model.embedding.word_embeddings.weight\n        if mpu.is_pipeline_last_stage(ignore_virtual=True):\n            if not self.share_word_embeddings:\n                raise Exception(\n                    \"word_embeddings_weight() called for last \"\n                    \"stage, but share_word_embeddings is false\"\n                )\n            return self.word_embeddings.weight\n        raise Exception(\n            \"word_embeddings_weight() should be \" \"called for first and last stage only\"\n        )\n\n    def initialize_word_embeddings(self, init_method_normal):\n        args = get_args()\n        if not self.share_word_embeddings:\n            raise Exception(\n                \"initialize_word_embeddings() was called but \"\n                \"share_word_embeddings is false\"\n            )\n\n        # This function just initializes the word embeddings in the final stage\n        # when we are using pipeline parallelism. If we aren't using pipeline\n        # parallelism there is nothing to do.\n        if args.pipeline_model_parallel_size == 1:\n            return\n\n        # Parameters are shared between the word embeddings layer, and the\n        # heads at the end of the model. In a pipelined setup with more than\n        # one stage, the initial embedding layer and the head are on different\n        # workers, so we do the following:\n        # 1. Create a second copy of word_embeddings on the last stage, with\n        #    initial parameters of 0.0.\n        # 2. Do an all-reduce between the first and last stage to ensure that\n        #    the two copies of word_embeddings start off with the same\n        #    parameter values.\n        # 3. In the training loop, before an all-reduce between the grads of\n        #    the two word_embeddings layers to ensure that every applied weight\n        #    update is the same on both stages.\n        if mpu.is_pipeline_last_stage():\n            assert not mpu.is_pipeline_first_stage()\n            self._word_embeddings_for_head_key = \"word_embeddings_for_head\"\n            # set word_embeddings weights to 0 here, then copy first\n            # stage's weights using all_reduce below.\n            self.word_embeddings = mpu.VocabParallelEmbedding(\n                args.padded_vocab_size,\n                args.hidden_size,\n                init_method=init_method_normal(args.init_method_std),\n            )\n            self.word_embeddings.weight.data.fill_(0)\n            self.word_embeddings.weight.shared = True\n\n        # Ensure that first and last stages have the same initial parameter\n        # values.\n        if torch.distributed.is_initialized():\n            if mpu.is_pipeline_first_stage() or mpu.is_pipeline_last_stage():\n                torch.distributed.all_reduce(\n                    self.word_embeddings_weight().data, group=mpu.get_embedding_group()\n                )\n        else:\n            print(\n                \"WARNING! Distributed processes aren't initialized, so \"\n                \"word embeddings in the last layer are not initialized. \"\n                \"If you are just manipulating a model this is fine, but \"\n                \"this needs to be handled manually. If you are training \"\n                \"something is definitely wrong.\"\n            )\n\n\ndef conversion_helper(val, conversion):\n    \"\"\"Apply conversion to val. Recursively apply conversion if `val`\n    #is a nested tuple/list structure.\"\"\"\n    if not isinstance(val, (tuple, list)):\n        return conversion(val)\n    rtn = [conversion_helper(v, conversion) for v in val]\n    if isinstance(val, tuple):\n        rtn = tuple(rtn)\n    return rtn\n\n\ndef fp32_to_float16(val, float16_convertor):\n    \"\"\"Convert fp32 `val` to fp16/bf16\"\"\"\n\n    def half_conversion(val):\n        val_typecheck = val\n        if isinstance(val_typecheck, (Parameter, Variable)):\n            val_typecheck = val.data\n        if isinstance(val_typecheck, _FLOAT_TYPES):\n            val = float16_convertor(val)\n        return val\n\n    return conversion_helper(val, half_conversion)\n\n\ndef float16_to_fp32(val):\n    \"\"\"Convert fp16/bf16 `val` to fp32\"\"\"\n\n    def float_conversion(val):\n        val_typecheck = val\n        if isinstance(val_typecheck, (Parameter, Variable)):\n            val_typecheck = val.data\n        if isinstance(val_typecheck, (_BF16_TYPES, _HALF_TYPES)):\n            val = val.float()\n        return val\n\n    return conversion_helper(val, float_conversion)\n\n\nclass Float16Module(MegatronModule):\n    def __init__(self, module, args):\n        super(Float16Module, self).__init__()\n\n        if args.fp16:\n            self.add_module(\"module\", module.half())\n\n            def float16_convertor(val):\n                return val.half()\n\n        elif args.bf16:\n            self.add_module(\"module\", module.bfloat16())\n\n            def float16_convertor(val):\n                return val.bfloat16()\n\n        else:\n            raise Exception(\"should not be here\")\n\n        self.float16_convertor = float16_convertor\n\n    def forward(self, *inputs, **kwargs):\n        if mpu.is_pipeline_first_stage():\n            inputs = fp32_to_float16(inputs, self.float16_convertor)\n        outputs = self.module(*inputs, **kwargs)\n        if mpu.is_pipeline_last_stage():\n            outputs = float16_to_fp32(outputs)\n        return outputs\n\n    def state_dict(self, destination=None, prefix=\"\", keep_vars=False):\n        return self.module.state_dict(destination, prefix, keep_vars)\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        return self.module.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars\n        )\n\n    def load_state_dict(self, state_dict, strict=True):\n        self.module.load_state_dict(state_dict, strict=strict)\n"
  },
  {
    "path": "codegeex/megatron/model/transformer.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Transformer.\"\"\"\n\nimport math\nimport torch\nfrom torch.nn import LayerNorm\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.model.module import MegatronModule\nfrom codegeex.megatron.model.utils import fast_gelu\n\n# flags required to enable jit fusion kernels\ntorch._C._jit_set_profiling_mode(False)\ntorch._C._jit_set_profiling_executor(False)\ntorch._C._jit_override_can_fuse_on_cpu(True)\ntorch._C._jit_override_can_fuse_on_gpu(True)\n\n\"\"\" We use the following notation throughout this file:\n     h: hidden size\n     n: number of attention heads\n     p: number of model parallel partitions\n     np: n/p\n     hp: h/p\n     hn: h/n\n     b: batch size\n     s: sequence length\n     l: number of layers\n    Transformer takes input of size [s, b, h] and returns a\n    tensor of the same size. We use the following arguments:\n        hyperparameters: transformer hyperparameters\n        attention_mask_func: a function that takes `unmaksed-attention-scores`\n            with size [b, np, s, s] and an `attention-mask` and will apply\n            the masking. The function should return a masked score of the\n            same size [b, np, s, s].\n               masked-attention-scores = attention_mask_func(\n                                     unmaksed-attention-scores, attention-mask)\n\"\"\"\n\n\nclass ParallelMLP(MegatronModule):\n    \"\"\"MLP.\n\n    MLP will take the input with h hidden state, project it to 4*h\n    hidden dimension, perform nonlinear transformation, and project the\n    state back into h hidden dimension. At the end, dropout is also\n    applied.\n    \"\"\"\n\n    def __init__(\n        self,\n        init_method,\n        output_layer_init_method,\n        scale: int = 4,\n    ):\n        super(ParallelMLP, self).__init__()\n        args = get_args()\n\n        # Project to 4h.\n        self.dense_h_to_4h = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            scale * args.hidden_size,\n            gather_output=False,\n            init_method=init_method,\n            # skip_bias_add=True,\n        )\n\n        self.activation_func = fast_gelu\n\n        # Project back to h.\n        self.dense_4h_to_h = mpu.RowParallelLinear(\n            scale * args.hidden_size,\n            args.hidden_size,\n            input_is_parallel=True if args.tensor_model_parallel_size > 1 else False,\n            init_method=output_layer_init_method,\n            # skip_bias_add=True,\n        )\n\n    def forward(self, hidden_states):\n        # [s, b, 4hp]\n        intermediate_parallel, _ = self.dense_h_to_4h(hidden_states)\n        intermediate_parallel = self.activation_func(intermediate_parallel)\n        # [s, b, h]\n        output, output_bias = self.dense_4h_to_h(intermediate_parallel)\n\n        return output, output_bias\n\n\nclass ParallelSelfAttention(MegatronModule):\n    \"\"\"Parallel self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(self, init_method,\n                 output_layer_init_method, layer_number):\n        super(ParallelSelfAttention, self).__init__()\n        args = get_args()\n        self.fp16 = args.fp16\n        self.attention_softmax_in_fp32 = args.attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        # Per attention head and per partition values.\n        world_size = mpu.get_model_parallel_world_size()\n        self.hidden_size_per_partition = mpu.divide(\n            args.hidden_size // 2 if args.compress else args.hidden_size,\n            world_size)\n        self.hidden_size_per_attention_head = mpu.divide(\n            args.hidden_size // 2 if args.compress else args.hidden_size, args.num_attention_heads)\n        self.num_attention_heads_per_partition = mpu.divide(\n            args.num_attention_heads, world_size)\n        if hasattr(args, 'attention_upweight'):\n            self.attention_upweight = args.attention_upweight\n        else:\n            self.attention_upweight = None\n        # Strided linear layer.\n        self.query = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size // 2 if args.compress else args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n        self.key = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size // 2 if args.compress else args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n        self.value = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size // 2 if args.compress else args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        # Dropout. Note that for a single iteration, this layer will generate\n        # different outputs on different number of parallel partitions but\n        # on average it should not be partition dependent.\n        self.attention_dropout = torch.nn.Dropout(args.attention_dropout)\n\n        # Output.\n        self.dense = mpu.RowParallelLinear(\n            args.hidden_size // 2 if args.compress else args.hidden_size,\n            args.hidden_size,\n            input_is_parallel=True if args.tensor_model_parallel_size > 1 else False,\n            init_method=output_layer_init_method,\n            skip_bias_add=True)\n\n    def forward(\n            self,\n            hidden_states,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n        # hidden_states: [sq, b, h]\n\n        # =====================\n        # Query, Key, and Value\n        # =====================\n\n        query_layer, _ = self.query(hidden_states)\n        key_layer, _ = self.key(hidden_states)\n        value_layer, _ = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        query_layer = query_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        key_layer = key_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        value_layer = value_layer.view(*new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = torch.cat((past_key.type_as(key_layer),\n                                   key_layer), dim=0)\n            value_layer = torch.cat((past_value.type_as(value_layer),\n                                     value_layer), dim=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.size(1),\n                       query_layer.size(2),\n                       query_layer.size(0),\n                       key_layer.size(0))\n\n        # [sq, b, np, hn] -> [sq, b * np, hn]\n        query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n        key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                     key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n        # change view to [b, np, sq, sk]\n        attention_scores = matmul_result.view(*output_size)\n\n        if self.attention_upweight is not None and layer_past is None:\n            log_attention_weights = torch.zeros(attention_scores.size(3), attention_scores.size(3),\n                                                device=torch.cuda.current_device(),\n                                                dtype=torch.half if self.fp16 else torch.float32)\n            if prompt_length is None:\n                log_attention_weights = self.attention_upweight\n            else:\n                log_attention_weights[:prompt_length, :prompt_length] = self.attention_upweight\n            attention_scores += log_attention_weights\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with torch.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.size(3) - 1,\n                                     :attention_scores.size(3)].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.size(3),\n                                     :attention_scores.size(3)]\n\n        # ===========================\n        # Attention probs and dropout\n        # ===========================\n\n        if context_length is not None:\n            attention_mask = torch.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.float()).half()\n        else:\n            attention_probs = self.softmax(attention_scores.half())\n\n        # This is actually dropping out entire tokens to attend to, which might\n        # seem a bit unusual, but is taken from the original Transformer paper.\n        with mpu.get_cuda_rng_tracker().fork():\n            attention_probs = self.attention_dropout(attention_probs)\n\n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.size(1),\n                       value_layer.size(2),\n                       query_layer.size(0),\n                       value_layer.size(3))\n\n        # change view [sq, b * np, hn] \n        value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                               output_size[2], -1)\n\n        context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.view(*output_size)\n\n        # # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n        # # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.size()[:-2] + \\\n                                  (self.hidden_size_per_partition,)\n        context_layer = context_layer.view(*new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output, bias = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output, bias\n\n\nclass ParallelTopQuerySelfAttention(MegatronModule):\n    \"\"\"Parallel top query self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(self, init_method,\n                 output_layer_init_method, layer_number):\n        super(ParallelTopQuerySelfAttention, self).__init__()\n        args = get_args()\n        self.fp16 = args.fp16\n        self.attention_softmax_in_fp32 = args.attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        if hasattr(args, 'attention_upweight_top'):\n            self.attention_upweight = args.attention_upweight_top\n        else:\n            self.attention_upweight = None\n        # Per attention head and per partition values.\n        world_size = mpu.get_model_parallel_world_size()\n        self.hidden_size_per_partition = mpu.divide(args.hidden_size,\n                                                    world_size)\n        self.hidden_size_per_attention_head = mpu.divide(\n            args.hidden_size, args.num_attention_heads)\n        self.num_attention_heads_per_partition = mpu.divide(\n            args.num_attention_heads, world_size)\n\n        self.query = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n\n        self.key = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n\n        self.value = mpu.ColumnParallelLinear(\n            args.hidden_size,\n            args.hidden_size,\n            gather_output=False,\n            init_method=init_method)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        # Dropout. Note that for a single iteration, this layer will generate\n        # different outputs on different number of parallel partitions but\n        # on average it should not be partition dependent.\n        self.attention_dropout = torch.nn.Dropout(args.attention_dropout)\n\n        # Output.\n        self.dense = mpu.RowParallelLinear(\n            args.hidden_size,\n            args.hidden_size,\n            input_is_parallel=True if args.tensor_model_parallel_size > 1 else False,\n            init_method=output_layer_init_method,\n            skip_bias_add=True)\n\n    def forward(\n            self,\n            hidden_states,\n            query_hidden_state,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # hidden_states: [sq, b, h]\n\n        query_layer, _ = self.query(query_hidden_state)\n        key_layer, _ = self.key(hidden_states)\n        value_layer, _ = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        query_layer = query_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        key_layer = key_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.size()[:-1] + \\\n                                (self.num_attention_heads_per_partition,\n                                 self.hidden_size_per_attention_head)\n        value_layer = value_layer.view(*new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = torch.cat((past_key.type_as(key_layer),\n                                   key_layer), dim=0)\n            value_layer = torch.cat((past_value.type_as(value_layer),\n                                     value_layer), dim=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.size(1),\n                       query_layer.size(2),\n                       query_layer.size(0),\n                       key_layer.size(0))\n\n        # [s, b, np, hn] -> [s, b * np, hn]\n        query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n        key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                     key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n        # change view to [b, np, s, s]\n        attention_scores = matmul_result.view(*output_size)\n\n        if self.attention_upweight is not None and layer_past is None:\n            log_attention_weights = torch.zeros(attention_scores.size(3), attention_scores.size(3),\n                                                device=torch.cuda.current_device(),\n                                                dtype=torch.half if self.fp16 else torch.float32)\n            if prompt_length is None:\n                log_attention_weights = self.attention_upweight\n            else:\n                log_attention_weights[:prompt_length, :prompt_length] = self.attention_upweight\n            attention_scores += log_attention_weights\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with torch.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.size(3) - 1,\n                                     :attention_scores.size(3)].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.size(3),\n                                     :attention_scores.size(3)]\n\n        # ===========================\n        # Attention probs and dropout\n        # ===========================\n\n        if context_length is not None:\n            attention_mask = torch.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.float()).half()\n        else:\n            attention_probs = self.softmax(attention_scores.half())\n\n        # This is actually dropping out entire tokens to attend to, which might\n        # seem a bit unusual, but is taken from the original Transformer paper.\n        with mpu.get_cuda_rng_tracker().fork():\n            attention_probs = self.attention_dropout(attention_probs)\n\n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.size(1),\n                       value_layer.size(2),\n                       query_layer.size(0),\n                       value_layer.size(3))\n\n        # change view [sq, b * np, hn]\n        value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                               output_size[2], -1)\n\n        # matmul: [b * np, sq, hn]\n        context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.view(*output_size)\n\n        # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n        # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.size()[:-2] + \\\n                                  (self.hidden_size_per_partition,)\n        context_layer = context_layer.view(*new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output, bias = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output, bias\n\n\ndef bias_dropout_add(x, bias, residual, prob, training):\n    # type: (Tensor, Tensor, Tensor, float, bool) -> Tensor\n    out = torch.nn.functional.dropout(x + bias, p=prob, training=training)\n    out = residual + out\n    return out\n\n\ndef get_bias_dropout_add(training):\n    def _bias_dropout_add(x, bias, residual, prob):\n        return bias_dropout_add(x, bias, residual, prob, training)\n\n    return _bias_dropout_add\n\n\n@torch.jit.script\ndef bias_dropout_add_fused_train(x, bias, residual, prob):\n    # type: (Tensor, Tensor, Tensor, float) -> Tensor\n    return bias_dropout_add(x, bias, residual, prob, True)\n\n\n@torch.jit.script\ndef bias_dropout_add_fused_inference(x, bias, residual, prob):\n    # type: (Tensor, Tensor, Tensor, float) -> Tensor\n    return bias_dropout_add(x, bias, residual, prob, False)\n\n\nclass ParallelTransformerLayer(MegatronModule):\n    \"\"\"A single transformer layer.\n\n    Transformore layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(self, init_method,\n                 output_layer_init_method, layer_number):\n        args = get_args()\n\n        super(ParallelTransformerLayer, self).__init__()\n        self.layer_number = layer_number\n\n        self.apply_residual_connection_post_layernorm \\\n            = args.apply_residual_connection_post_layernorm\n\n        # Layernorm on the input data.\n        self.input_layernorm = LayerNorm(\n            args.hidden_size,\n            eps=args.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = ParallelSelfAttention(init_method,\n                                               output_layer_init_method,\n                                               layer_number)\n        self.hidden_dropout = args.hidden_dropout\n        self.bias_dropout_fusion = args.bias_dropout_fusion\n\n        # Layernorm on the input data.\n        self.post_attention_layernorm = LayerNorm(\n            args.hidden_size,\n            eps=args.layernorm_epsilon)\n        if hasattr(args, 'attention_upweight'):\n            self.attention_upweight = args.attention_upweight\n        else:\n            self.attention_upweight = None\n        if hasattr(args, 'ln_fp16'):\n            self.ln_fp16 = args.ln_fp16\n        else:\n            self.ln_fp16 = False\n            # MLP\n        self.mlp = ParallelMLP(init_method,\n                               output_layer_init_method,\n                               scale=2 if args.compress else 4)\n\n    def forward(\n            self,\n            hidden_states,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        if self.ln_fp16:\n            layernorm_output = self.input_layernorm(hidden_states)\n        else:\n            layernorm_output = self.input_layernorm(hidden_states.float()).half()\n\n        # Self attention.\n        attention_output, attention_bias = \\\n            self.attention(layernorm_output,\n                           attention_mask,\n                           layer_past=layer_past,\n                           get_key_value=get_key_value,\n                           prompt_length=prompt_length,\n                           context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        if self.apply_residual_connection_post_layernorm:\n            residual = layernorm_output\n        else:\n            residual = hidden_states\n\n        # jit scripting for a nn.module (with dropout) is not \n        # trigerring the fusion kernel. For now, we use two \n        # different nn.functional routines to account for varying\n        # dropout semantics during training and inference phases.\n        if self.bias_dropout_fusion:\n            if self.training:\n                bias_dropout_add_func = bias_dropout_add_fused_train\n            else:\n                bias_dropout_add_func = bias_dropout_add_fused_inference\n        else:\n            bias_dropout_add_func = get_bias_dropout_add(self.training)\n\n        # re-enable torch grad to enable fused optimization.\n        with torch.enable_grad():\n            layernorm_input = bias_dropout_add_func(\n                attention_output,\n                attention_bias.expand_as(residual),\n                residual,\n                self.hidden_dropout)\n\n        # Layer norm post the self attention.\n        if self.ln_fp16:\n            layernorm_output = self.post_attention_layernorm(layernorm_input)\n        else:\n            layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n\n        mlp_output, _ = self.mlp(layernorm_output)\n\n        # MLP.\n        # Second residual connection.\n        if self.apply_residual_connection_post_layernorm:\n            residual = layernorm_output\n        else:\n            residual = layernorm_input\n\n        output = mlp_output + residual\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass ParallelTransformerLayerPipe(ParallelTransformerLayer):\n    \"\"\"Extends ParallelTransformerLayer to forward attention_mask through the pipeline.\n\n    Forward has two usages that affect attention mask communication:\n\n    1) forward((input, attn_mask) , **kwargs) -> (output, mask)\n       When the attention mask is provided as the second positional\n       argument, typical pipeline behavior is used and both the output\n       *and* mask are returned in a tuple. This tuple is then forwarded\n       to the next stage in the pipeline.\n\n       This version is useful if masks are dynamic.\n\n    2) forward(input, **kwargs) -> output\n       When the mask is static over all samples, it is advantageous to\n       cache the mask and avoid communicating it.\n\n       If no mask is provided, the module will query `self._args.attn_mask`\n       for the mask and only return `super().forward(...)`\n    \"\"\"\n\n    def forward(self, inputs, **kwargs):\n        assert torch.is_tensor(inputs) or isinstance(inputs, tuple)\n        if torch.is_tensor(inputs) or len(inputs) == 1:\n            # No attention mask forwarded, search for args.attn_mask\n            if not hasattr(self, \"_args\"):\n                self._args = get_args()\n            hidden_states, attention_mask = inputs, self._args.attn_mask\n            return super().forward(hidden_states, attention_mask, **kwargs)\n        elif len(inputs) == 2:\n            # Attention mask is an activation.\n            hidden_states, attention_mask = inputs[0], inputs[1]\n            return super().forward(*inputs, **kwargs), attention_mask\n        else:\n            raise RuntimeError(\"Received more inputs than understood.\")\n\n\nclass ParallelTopQueryLayer(MegatronModule):\n    \"\"\"A single top query layer.\n\n    Top query layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(self, init_method,\n                 output_layer_init_method, layer_number):\n        args = get_args()\n\n        super(ParallelTopQueryLayer, self).__init__()\n        self.layer_number = layer_number\n\n        self.apply_residual_connection_post_layernorm \\\n            = args.apply_residual_connection_post_layernorm\n\n        # Layernorm on the input data.\n        self.input_layernorm = LayerNorm(\n            args.hidden_size,\n            eps=args.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = ParallelTopQuerySelfAttention(init_method,\n                                                       output_layer_init_method,\n                                                       layer_number)\n\n        self.hidden_dropout = args.hidden_dropout\n        self.bias_dropout_fusion = args.bias_dropout_fusion\n\n        # Layernorm on the input data.\n        self.post_attention_layernorm = LayerNorm(\n            args.hidden_size,\n            eps=args.layernorm_epsilon)\n\n        if hasattr(args, 'ln_fp16'):\n            self.ln_fp16 = args.ln_fp16\n        else:\n            self.ln_fp16 = False\n\n        # MLP\n        self.mlp = ParallelMLP(init_method,\n                               output_layer_init_method)\n\n    def forward(\n            self,\n            hidden_states,\n            query_hidden_state,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        assert query_hidden_state != None\n\n        # Layer norm at the beginning of the transformer layer.\n        if self.ln_fp16:\n            layernorm_output = self.input_layernorm(hidden_states)\n        else:\n            layernorm_output = self.input_layernorm(hidden_states.float()).half()\n\n        # Self attention.\n        attention_output, attention_bias = \\\n            self.attention(layernorm_output,\n                           query_hidden_state,\n                           attention_mask,\n                           layer_past=layer_past,\n                           get_key_value=get_key_value,\n                           prompt_length=prompt_length,\n                           context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        if self.apply_residual_connection_post_layernorm:\n            residual = layernorm_output\n        else:\n            residual = hidden_states\n\n        # jit scripting for a nn.module (with dropout) is not\n        # trigerring the fusion kernel. For now, we use two\n        # different nn.functional routines to account for varying\n        # dropout semantics during training and inference phases.\n        if self.bias_dropout_fusion:\n            if self.training:\n                bias_dropout_add_func = bias_dropout_add_fused_train\n            else:\n                bias_dropout_add_func = bias_dropout_add_fused_inference\n        else:\n            bias_dropout_add_func = get_bias_dropout_add(self.training)\n\n        # re-enable torch grad to enable fused optimization.\n        with torch.enable_grad():\n            layernorm_input = bias_dropout_add_func(\n                attention_output,\n                attention_bias.expand_as(residual),\n                residual,\n                self.hidden_dropout)\n\n        # Layer norm post the self attention.\n        if self.ln_fp16:\n            layernorm_output = self.post_attention_layernorm(layernorm_input)\n        else:\n            layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n\n        # MLP.\n        mlp_output, _ = self.mlp(layernorm_output)\n\n        # Second residual connection.\n        if self.apply_residual_connection_post_layernorm:\n            residual = layernorm_output\n        else:\n            residual = layernorm_input\n\n        output = mlp_output + residual\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass ParallelTopQueryLayerPipe(ParallelTopQueryLayer):\n    \"\"\"Extends ParallelTopQueryLayer to forward attention_mask through the pipeline.\n\n    Forward has two usages that affect attention mask communication:\n\n    1) forward((input, attn_mask) , **kwargs) -> (output, mask)\n       When the attention mask is provided as the second positional\n       argument, typical pipeline behavior is used and both the output\n       *and* mask are returned in a tuple. This tuple is then forwarded\n       to the next stage in the pipeline.\n\n       This version is useful if masks are dynamic.\n\n    2) forward(input, **kwargs) -> output\n       When the mask is static over all samples, it is advantageous to\n       cache the mask and avoid communicating it.\n\n       If no mask is provided, the module will query `self._args.attn_mask`\n       for the mask and only return `super().forward(...)`\n    \"\"\"\n\n    def forward(self, inputs, **kwargs):\n        assert torch.is_tensor(inputs) or isinstance(inputs, tuple)\n        if torch.is_tensor(inputs) or len(inputs) == 2:\n            # No attention mask forwarded, search for args.attn_mask\n            if not hasattr(self, \"_args\"):\n                self._args = get_args()\n            hidden_states, query_hidden_state = inputs\n            attention_mask = self._args.attn_mask\n            return super().forward(hidden_states, query_hidden_state, attention_mask, **kwargs)\n        elif len(inputs) == 3:\n            # Attention mask is an activation.\n            hidden_states, query_hidden_state, attention_mask = inputs[0], inputs[1]\n            return super().forward(*inputs, **kwargs), attention_mask\n        else:\n            raise RuntimeError(\"Received more inputs than understood.\")\n        \n        \nclass ParallelTransformer(MegatronModule):\n    \"\"\"Transformer class.\"\"\"\n\n    def __init__(self, init_method, output_layer_init_method):\n        super(ParallelTransformer, self).__init__()\n        args = get_args()\n\n        # Store activation checkpoiting flag.\n        self.checkpoint_activations = args.checkpoint_activations\n        self.checkpoint_num_layers = args.checkpoint_num_layers\n\n        # Number of layers:\n        self.num_layers = args.num_layers\n        self.num_unique_layers = None\n\n        #################\n        assert self.num_unique_layers is None\n        #################\n\n        if self.num_unique_layers is None:\n            self.num_unique_layers = self.num_layers\n        assert self.num_layers % self.num_unique_layers == 0, \\\n            'number of layers should be divisible by number of unique layers'\n        self.param_sharing_style = 'grouped'\n\n        # Transformer layers.\n        def build_layer(layer_number):\n            return ParallelTransformerLayer(\n                init_method,\n                output_layer_init_method, layer_number)\n\n        self.layers = torch.nn.ModuleList(\n            [build_layer(i + 1) for i in range(self.num_unique_layers)])\n\n        self.topQueryLayer = ParallelTopQueryLayer(\n            init_method,\n            output_layer_init_method, self.num_unique_layers)\n\n        # Final layer norm before output.\n        if hasattr(args, 'ln_fp16'):\n            self.ln_fp16 = args.ln_fp16\n        else:\n            self.ln_fp16 = False\n\n        self.final_layernorm = LayerNorm(\n            args.hidden_size,\n            eps=args.layernorm_epsilon)\n\n    def _get_layer_index(self, layer_number):\n        if self.param_sharing_style == 'grouped':\n            return layer_number % self.num_unique_layers\n        if self.param_sharing_style == 'spaced':\n            return layer_number // (self.num_layers // self.num_unique_layers)\n        assert False, 'should not be here'\n\n    def _get_layer(self, layer_number):\n        return self.layers[self._get_layer_index(layer_number)]\n\n    def _checkpointed_forward(self, hidden_states, attention_mask):\n        \"\"\"Forward method with activation checkpointing.\"\"\"\n\n        def custom(start, end):\n            def custom_forward(*inputs):\n                x_ = inputs[0]\n                for index in range(start, end):\n                    layer = self._get_layer(index)\n                    x_ = layer(x_, inputs[1])\n                return x_\n\n            return custom_forward\n\n        # Make sure memory is freed.\n        mpu.reset_checkpointed_activations_memory_buffer()\n        l = 0\n        while l < self.num_layers:\n            hidden_states = mpu.checkpoint(\n                custom(l, l + self.checkpoint_num_layers),\n                hidden_states, attention_mask)\n            l += self.checkpoint_num_layers\n\n        return hidden_states\n\n    def set_input_tensor(self, input_tensor):\n        \"\"\"Set input tensor to be used instead of forward()'s input.\n\n        When doing pipeline parallelism the input from the previous\n        stage comes from communication, not from the input, so the\n        model's forward_step_func won't have it. This function is thus\n        used by internal code to bypass the input provided by the\n        forward_step_func\"\"\"\n        self.input_tensor = input_tensor\n        \n    def forward(\n            self,\n            hidden_states,\n            query_hidden_state,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Checks\n        if layer_past is not None:\n            assert get_key_value, \\\n                'for not None values in layer_past, ' \\\n                'expected get_key_value to be set'\n        if get_key_value:\n            assert not self.checkpoint_activations, \\\n                'get_key_value does not work with ' \\\n                'activation checkpointing'\n\n        # data format change to avoid explicit tranposes : [b s h] --> [s b h]\n        hidden_states = hidden_states.transpose(0, 1).contiguous()\n        query_hidden_state = query_hidden_state.transpose(0, 1).contiguous()\n\n        if self.checkpoint_activations:\n            hidden_states = self._checkpointed_forward(hidden_states,\n                                                       attention_mask)\n        else:\n            if get_key_value:\n                presents = []\n            for index in range(self.num_layers):\n                layer = self._get_layer(index)\n                past = None\n                if layer_past is not None:\n                    past = layer_past[index]\n                hidden_states = layer(hidden_states,\n                                      attention_mask,\n                                      layer_past=past,\n                                      get_key_value=get_key_value,\n                                      prompt_length=prompt_length,\n                                      context_length=context_length)\n                if get_key_value:\n                    hidden_states, present = hidden_states\n                    presents.append(present)\n\n        if self.ln_fp16:\n            hidden_states_ = self.final_layernorm(hidden_states)\n        else:\n            hidden_states_ = self.final_layernorm(hidden_states.float()).half()\n\n        #################################\n        # top query layer\n        #################################\n        past = None\n        if layer_past is not None:\n            past = layer_past[self.num_layers]\n        hidden_states = self.topQueryLayer(hidden_states_,\n                                           query_hidden_state,\n                                           attention_mask,\n                                           layer_past=past,\n                                           get_key_value=get_key_value,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length)\n\n        if get_key_value:\n            hidden_states, present = hidden_states\n            presents.append(present)\n\n        # reverting data format change [s b h] --> [b s h]\n        output = hidden_states.transpose(0, 1).contiguous()\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n"
  },
  {
    "path": "codegeex/megatron/model/utils.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Utilities for models.\"\"\"\n\nimport math\nimport torch\n\n\ndef init_method_normal(sigma):\n    \"\"\"Init method based on N(0, sigma).\"\"\"\n\n    def init_(tensor):\n        return torch.nn.init.normal_(tensor, mean=0.0, std=sigma)\n\n    return init_\n\n\ndef scaled_init_method_normal(sigma, num_layers):\n    \"\"\"Init method based on N(0, sigma/sqrt(2*num_layers).\"\"\"\n    std = sigma / math.sqrt(2.0 * num_layers)\n\n    def init_(tensor):\n        return torch.nn.init.normal_(tensor, mean=0.0, std=std)\n\n    return init_\n\n\ndef attention_mask_func(attention_scores, attention_mask):\n    attention_scores.masked_fill_(attention_mask, -10000.0)\n\n    return attention_scores\n\n\ndef get_linear_layer(rows, columns, init_method):\n    \"\"\"Simple linear layer with weight initialization.\"\"\"\n    layer = torch.nn.Linear(rows, columns)\n    init_method(layer.weight)\n    with torch.no_grad():\n        layer.bias.zero_()\n    return layer\n\n\ndef fast_gelu(x):\n    \"\"\"Mindspore's fast gelu implementation.\"\"\"\n    return x / (1 + torch.exp(-1.702 * torch.abs(x))) * torch.exp(0.851 * (x - torch.abs(x)))\n\n\n@torch.jit.script\ndef gelu_impl(x):\n    \"\"\"OpenAI's gelu implementation.\"\"\"\n    return (\n            0.5 * x * (1.0 + torch.tanh(0.7978845608028654 * x * (1.0 + 0.044715 * x * x)))\n    )\n\n\ndef openai_gelu(x):\n    return gelu_impl(x)\n\n\n# This is actually Python equivalent of torch.nn.functional.gelu(), also with type hints for ONNX exporter\n@torch.jit.script\ndef erf_gelu(x):\n    return (\n            x\n            * 0.5\n            * (\n                    torch.erf(x / 1.41421).to(dtype=x.dtype)\n                    + torch.ones_like(x).to(dtype=x.dtype)\n            )\n    )\n"
  },
  {
    "path": "codegeex/megatron/mpu/__init__.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Model parallel utility interface.\"\"\"\n\nfrom .cross_entropy import vocab_parallel_cross_entropy\n\nfrom .data import broadcast_data\n\nfrom .initialize import is_unitialized\nfrom .initialize import destroy_model_parallel\nfrom .initialize import get_data_parallel_group\nfrom .initialize import get_data_parallel_rank\nfrom .initialize import get_data_parallel_world_size\nfrom .initialize import get_embedding_group\nfrom .initialize import get_model_parallel_group\nfrom .initialize import get_tensor_model_parallel_group\nfrom .initialize import get_pipeline_model_parallel_group\nfrom .initialize import get_tensor_model_parallel_rank, set_tensor_model_parallel_rank\nfrom .initialize import (\n    get_pipeline_model_parallel_rank,\n    set_pipeline_model_parallel_rank,\n)\nfrom .initialize import is_pipeline_first_stage, is_pipeline_last_stage\nfrom .initialize import get_tensor_model_parallel_src_rank\nfrom .initialize import get_pipeline_model_parallel_first_rank\nfrom .initialize import get_pipeline_model_parallel_last_rank\nfrom .initialize import get_pipeline_model_parallel_next_rank\nfrom .initialize import get_pipeline_model_parallel_prev_rank\nfrom .initialize import (\n    get_tensor_model_parallel_world_size,\n    set_tensor_model_parallel_world_size,\n)\nfrom .initialize import (\n    get_pipeline_model_parallel_world_size,\n    set_pipeline_model_parallel_world_size,\n)\nfrom .initialize import (\n    get_virtual_pipeline_model_parallel_rank,\n    set_virtual_pipeline_model_parallel_rank,\n)\nfrom .initialize import initialize_model_parallel\nfrom .initialize import model_parallel_is_initialized\nfrom .initialize import get_model_parallel_world_size, get_model_parallel_rank\n\nfrom .layers import ColumnParallelLinear\nfrom .layers import RowParallelLinear\nfrom .layers import VocabParallelEmbedding\nfrom .layers import (\n    set_tensor_model_parallel_attributes,\n    set_defaults_if_not_set_tensor_model_parallel_attributes,\n    copy_tensor_model_parallel_attributes,\n)\n\nfrom .mappings import copy_to_tensor_model_parallel_region\nfrom .mappings import gather_from_tensor_model_parallel_region\nfrom .mappings import reduce_from_tensor_model_parallel_region\nfrom .mappings import scatter_to_tensor_model_parallel_region\n\nfrom .random import checkpoint\nfrom .random import get_cuda_rng_tracker\nfrom .random import init_checkpointed_activations_memory_buffer\nfrom .random import model_parallel_cuda_manual_seed\nfrom .random import reset_checkpointed_activations_memory_buffer\nfrom .random import gather_split_1d_tensor\nfrom .random import split_tensor_into_1d_equal_chunks\n\nfrom .utils import divide\nfrom .utils import split_tensor_along_last_dim\n"
  },
  {
    "path": "codegeex/megatron/mpu/cross_entropy.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nimport torch\n\nfrom .initialize import get_tensor_model_parallel_group\nfrom .initialize import get_tensor_model_parallel_rank\nfrom .initialize import get_tensor_model_parallel_world_size\nfrom .utils import VocabUtility\n\n\nclass _VocabParallelCrossEntropy(torch.autograd.Function):\n    @staticmethod\n    def forward(ctx, vocab_parallel_logits, target):\n\n        # Maximum value along vocab dimension across all GPUs.\n        logits_max = torch.max(vocab_parallel_logits, dim=-1)[0]\n        torch.distributed.all_reduce(\n            logits_max,\n            op=torch.distributed.ReduceOp.MAX,\n            group=get_tensor_model_parallel_group(),\n        )\n        # Subtract the maximum value.\n        vocab_parallel_logits.sub_(logits_max.unsqueeze(dim=-1))\n\n        # Get the partition's vocab indecies\n        get_vocab_range = VocabUtility.vocab_range_from_per_partition_vocab_size\n        partition_vocab_size = vocab_parallel_logits.size()[-1]\n        rank = get_tensor_model_parallel_rank()\n        world_size = get_tensor_model_parallel_world_size()\n        vocab_start_index, vocab_end_index = get_vocab_range(\n            partition_vocab_size, rank, world_size\n        )\n\n        # Create a mask of valid vocab ids (1 means it needs to be masked).\n        target_mask = (target < vocab_start_index) | (target >= vocab_end_index)\n        masked_target = target.clone() - vocab_start_index\n        masked_target[target_mask] = 0\n\n        # Get predicted-logits = logits[target].\n        # For Simplicity, we convert logits to a 2-D tensor with size\n        # [*, partition-vocab-size] and target to a 1-D tensor of size [*].\n        logits_2d = vocab_parallel_logits.view(-1, partition_vocab_size)\n        masked_target_1d = masked_target.view(-1)\n        arange_1d = torch.arange(\n            start=0, end=logits_2d.size()[0], device=logits_2d.device\n        )\n        predicted_logits_1d = logits_2d[arange_1d, masked_target_1d]\n        predicted_logits_1d = predicted_logits_1d.clone().contiguous()\n        predicted_logits = predicted_logits_1d.view_as(target)\n        predicted_logits[target_mask] = 0.0\n        # All reduce is needed to get the chunks from other GPUs.\n        torch.distributed.all_reduce(\n            predicted_logits,\n            op=torch.distributed.ReduceOp.SUM,\n            group=get_tensor_model_parallel_group(),\n        )\n\n        # Sum of exponential of logits along vocab dimension across all GPUs.\n        exp_logits = vocab_parallel_logits\n        torch.exp(vocab_parallel_logits, out=exp_logits)\n        sum_exp_logits = exp_logits.sum(dim=-1)\n        torch.distributed.all_reduce(\n            sum_exp_logits,\n            op=torch.distributed.ReduceOp.SUM,\n            group=get_tensor_model_parallel_group(),\n        )\n\n        # Loss = log(sum(exp(logits))) - predicted-logit.\n        loss = torch.log(sum_exp_logits) - predicted_logits\n\n        # Store softmax, target-mask and masked-target for backward pass.\n        exp_logits.div_(sum_exp_logits.unsqueeze(dim=-1))\n        ctx.save_for_backward(exp_logits, target_mask, masked_target_1d)\n\n        return loss\n\n    @staticmethod\n    def backward(ctx, grad_output):\n\n        # Retreive tensors from the forward path.\n        softmax, target_mask, masked_target_1d = ctx.saved_tensors\n\n        # All the inputs have softmax as their gradient.\n        grad_input = softmax\n        # For simplicity, work with the 2D gradient.\n        partition_vocab_size = softmax.size()[-1]\n        grad_2d = grad_input.view(-1, partition_vocab_size)\n\n        # Add the gradient from matching classes.\n        arange_1d = torch.arange(start=0, end=grad_2d.size()[0], device=grad_2d.device)\n        grad_2d[arange_1d, masked_target_1d] -= 1.0 - target_mask.view(-1).float()\n\n        # Finally elementwise multiplication with the output gradients.\n        grad_input.mul_(grad_output.unsqueeze(dim=-1))\n\n        return grad_input, None\n\n\ndef vocab_parallel_cross_entropy(vocab_parallel_logits, target):\n    \"\"\"Helper function for the cross entropy.\"\"\"\n    return _VocabParallelCrossEntropy.apply(vocab_parallel_logits, target)\n"
  },
  {
    "path": "codegeex/megatron/mpu/data.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport torch\n\nfrom .initialize import get_tensor_model_parallel_group\nfrom .initialize import get_tensor_model_parallel_rank\nfrom .initialize import get_tensor_model_parallel_src_rank\n\n\n_MAX_DATA_DIM = 5\n\n\ndef _check_data_types(keys, data, target_dtype):\n    \"\"\"Check that all the keys have the same target data type.\"\"\"\n    for key in keys:\n        assert (\n            data[key].dtype == target_dtype\n        ), \"{} has data type {} which \" \"is different than {}\".format(\n            key, data[key].dtype, target_dtype\n        )\n\n\ndef _build_key_size_numel_dictionaries(keys, data):\n    \"\"\"Build the size on rank 0 and broadcast.\"\"\"\n    max_dim = _MAX_DATA_DIM\n    sizes = [0 for _ in range(max_dim) for _ in keys]\n\n    # Pack the sizes on rank zero.\n    if get_tensor_model_parallel_rank() == 0:\n        offset = 0\n        for key in keys:\n            assert data[key].dim() < max_dim, \"you should increase MAX_DATA_DIM\"\n            size = data[key].size()\n            for i, s in enumerate(size):\n                sizes[i + offset] = s\n            offset += max_dim\n\n    # Move to GPU and broadcast.\n    sizes_cuda = torch.cuda.LongTensor(sizes)\n    torch.distributed.broadcast(\n        sizes_cuda,\n        get_tensor_model_parallel_src_rank(),\n        group=get_tensor_model_parallel_group(),\n    )\n\n    # Move back to cpu and unpack.\n    sizes_cpu = sizes_cuda.cpu()\n    key_size = {}\n    key_numel = {}\n    total_numel = 0\n    offset = 0\n    for key in keys:\n        i = 0\n        size = []\n        numel = 1\n        while sizes_cpu[offset + i] > 0:\n            this_size = sizes_cpu[offset + i]\n            size.append(this_size)\n            numel *= this_size\n            i += 1\n        key_size[key] = size\n        key_numel[key] = numel\n        total_numel += numel\n        offset += max_dim\n\n    return key_size, key_numel, total_numel\n\n\ndef broadcast_data(keys, data, datatype):\n    \"\"\"Broadcast data from rank zero of each model parallel group to the\n    members of the same model parallel group.\n\n    Arguments:\n        keys: list of keys in the data disctionary to be broadcasted\n        data: data dictionary of string keys and cpu tensor values.\n        datatype: torch data type of all tensors in data associated\n                  with keys.\n    \"\"\"\n    # Build (key, size) and (key, number of elements) dictionaries along\n    # with the total number of elements on all ranks.\n    key_size, key_numel, total_numel = _build_key_size_numel_dictionaries(keys, data)\n\n    # Pack on rank zero.\n    if get_tensor_model_parallel_rank() == 0:\n        # Check that all keys have the same data type.\n        _check_data_types(keys, data, datatype)\n        # Flatten the data associated with the keys\n        flatten_data = torch.cat(\n            [data[key].contiguous().view(-1) for key in keys], dim=0\n        ).cuda()\n    else:\n        flatten_data = torch.empty(\n            total_numel, device=torch.cuda.current_device(), dtype=datatype\n        )\n\n    # Broadcast\n    torch.distributed.broadcast(\n        flatten_data,\n        get_tensor_model_parallel_src_rank(),\n        group=get_tensor_model_parallel_group(),\n    )\n\n    # Unpack\n    output = {}\n    offset = 0\n    for key in keys:\n        size = key_size[key]\n        numel = key_numel[key]\n        output[key] = flatten_data.narrow(0, offset, numel).view(size)\n        offset += numel\n\n    return output\n"
  },
  {
    "path": "codegeex/megatron/mpu/initialize.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n\"\"\"Model and data parallel groups.\"\"\"\n\nimport torch\n\nfrom .utils import ensure_divisibility\n\n\n# Intra-layer model parallel group that the current rank belongs to.\n_TENSOR_MODEL_PARALLEL_GROUP = None\n# Inter-layer model parallel group that the current rank belongs to.\n_PIPELINE_MODEL_PARALLEL_GROUP = None\n# Model parallel group (both intra- and pipeline) that the current rank belongs to.\n_MODEL_PARALLEL_GROUP = None\n# Embedding group.\n_EMBEDDING_GROUP = None\n# Data parallel group that the current rank belongs to.\n_DATA_PARALLEL_GROUP = None\n\n_VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK = None\n_VIRTUAL_PIPELINE_MODEL_PARALLEL_WORLD_SIZE = None\n\n# These values enable us to change the mpu sizes on the fly.\n_MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE = None\n_MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE = None\n_MPU_TENSOR_MODEL_PARALLEL_RANK = None\n_MPU_PIPELINE_MODEL_PARALLEL_RANK = None\n\n# A list of global ranks for each pipeline group to ease calculation of the source\n# rank when broadcasting from the first or last pipeline stage\n_PIPELINE_GLOBAL_RANKS = None\n\n\ndef is_unitialized():\n    \"\"\"Useful for code segments that may be accessed with or without mpu initialization\"\"\"\n    return _DATA_PARALLEL_GROUP is None\n\n\ndef initialize_model_parallel(\n    tensor_model_parallel_size_=1,\n    pipeline_model_parallel_size_=1,\n    virtual_pipeline_model_parallel_size_=None,\n):\n    \"\"\"\n    Initialize model data parallel groups.\n\n    Arguments:\n        tensor_model_parallel_size: number of GPUs used to parallelize model tensor.\n        pipeline_model_parallel_size: number of GPUs used to parallelize model pipeline.\n\n    Let's say we have a total of 16 GPUs denoted by g0 ... g15 and we\n    use 2 GPUs to parallelize the model tensor, and 4 GPUs to parallelize\n    the model pipeline. The present function will\n    create 8 tensor model-parallel groups, 4 pipeline model-parallel groups\n    and 8 data-parallel groups as:\n        8 data_parallel groups:\n            [g0, g2], [g1, g3], [g4, g6], [g5, g7], [g8, g10], [g9, g11], [g12, g14], [g13, g15]\n        8 tensor model-parallel groups:\n            [g0, g1], [g2, g3], [g4, g5], [g6, g7], [g8, g9], [g10, g11], [g12, g13], [g14, g15]\n        4 pipeline model-parallel groups:\n            [g0, g4, g8, g12], [g1, g5, g9, g13], [g2, g6, g10, g14], [g3, g7, g11, g15]\n    Note that for efficiency, the caller should make sure adjacent ranks\n    are on the same DGX box. For example if we are using 2 DGX-1 boxes\n    with a total of 16 GPUs, rank 0 to 7 belong to the first box and\n    ranks 8 to 15 belong to the second box.\n    \"\"\"\n    if torch.distributed.get_rank() == 0:\n        print(\n            \"> initializing tensor model parallel with size {}\".format(\n                tensor_model_parallel_size_\n            )\n        )\n        print(\n            \"> initializing pipeline model parallel with size {}\".format(\n                pipeline_model_parallel_size_\n            )\n        )\n    # Get world size and rank. Ensure some consistencies.\n    assert torch.distributed.is_initialized()\n    world_size = torch.distributed.get_world_size()\n    tensor_model_parallel_size = min(tensor_model_parallel_size_, world_size)\n    pipeline_model_parallel_size = min(pipeline_model_parallel_size_, world_size)\n    ensure_divisibility(\n        world_size, tensor_model_parallel_size * pipeline_model_parallel_size\n    )\n    data_parallel_size = world_size // (\n        tensor_model_parallel_size * pipeline_model_parallel_size\n    )\n\n    num_tensor_model_parallel_groups = world_size // tensor_model_parallel_size\n    num_pipeline_model_parallel_groups = world_size // pipeline_model_parallel_size\n    num_data_parallel_groups = world_size // data_parallel_size\n\n    if virtual_pipeline_model_parallel_size_ is not None:\n        global _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK\n        global _VIRTUAL_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n        _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK = 0\n        _VIRTUAL_PIPELINE_MODEL_PARALLEL_WORLD_SIZE = (\n            virtual_pipeline_model_parallel_size_\n        )\n\n    rank = torch.distributed.get_rank()\n\n    # Build the data-parallel groups.\n    global _DATA_PARALLEL_GROUP\n    assert _DATA_PARALLEL_GROUP is None, \"data parallel group is already initialized\"\n    all_data_parallel_group_ranks = []\n    for i in range(pipeline_model_parallel_size):\n        start_rank = i * num_pipeline_model_parallel_groups\n        end_rank = (i + 1) * num_pipeline_model_parallel_groups\n        for j in range(tensor_model_parallel_size):\n            ranks = range(start_rank + j, end_rank, tensor_model_parallel_size)\n            all_data_parallel_group_ranks.append(list(ranks))\n            group = torch.distributed.new_group(ranks)\n            if rank in ranks:\n                _DATA_PARALLEL_GROUP = group\n\n    # Build the model-parallel groups.\n    global _MODEL_PARALLEL_GROUP\n    assert _MODEL_PARALLEL_GROUP is None, \"model parallel group is already initialized\"\n    for i in range(data_parallel_size):\n        ranks = [\n            data_parallel_group_ranks[i]\n            for data_parallel_group_ranks in all_data_parallel_group_ranks\n        ]\n        group = torch.distributed.new_group(ranks)\n        if rank in ranks:\n            _MODEL_PARALLEL_GROUP = group\n\n    # Build the tensor model-parallel groups.\n    global _TENSOR_MODEL_PARALLEL_GROUP\n    assert (\n        _TENSOR_MODEL_PARALLEL_GROUP is None\n    ), \"tensor model parallel group is already initialized\"\n    for i in range(num_tensor_model_parallel_groups):\n        ranks = range(\n            i * tensor_model_parallel_size, (i + 1) * tensor_model_parallel_size\n        )\n        group = torch.distributed.new_group(ranks)\n        if rank in ranks:\n            _TENSOR_MODEL_PARALLEL_GROUP = group\n\n    # Build the pipeline model-parallel groups and embedding groups\n    # (first and last rank in each pipeline model-parallel group).\n    global _PIPELINE_MODEL_PARALLEL_GROUP\n    global _PIPELINE_GLOBAL_RANKS\n    assert (\n        _PIPELINE_MODEL_PARALLEL_GROUP is None\n    ), \"pipeline model parallel group is already initialized\"\n    global _EMBEDDING_GROUP\n    assert _EMBEDDING_GROUP is None, \"embedding group is already initialized\"\n    for i in range(num_pipeline_model_parallel_groups):\n        ranks = range(i, world_size, num_pipeline_model_parallel_groups)\n        group = torch.distributed.new_group(ranks)\n        if rank in ranks:\n            _PIPELINE_MODEL_PARALLEL_GROUP = group\n            _PIPELINE_GLOBAL_RANKS = ranks\n        # Setup embedding group (to exchange gradients between\n        # first and last stages).\n        if len(ranks) > 1:\n            embedding_ranks = [ranks[0], ranks[-1]]\n        else:\n            embedding_ranks = ranks\n        group = torch.distributed.new_group(embedding_ranks)\n        if rank in embedding_ranks:\n            _EMBEDDING_GROUP = group\n\n\ndef model_parallel_is_initialized():\n    \"\"\"Check if model and data parallel groups are initialized.\"\"\"\n    if (\n        _TENSOR_MODEL_PARALLEL_GROUP is None\n        or _PIPELINE_MODEL_PARALLEL_GROUP is None\n        or _DATA_PARALLEL_GROUP is None\n    ):\n        return False\n    return True\n\n\ndef get_model_parallel_group():\n    \"\"\"Get the model parallel group the caller rank belongs to.\"\"\"\n    assert _MODEL_PARALLEL_GROUP is not None, \"model parallel group is not initialized\"\n    return _MODEL_PARALLEL_GROUP\n\n\ndef get_tensor_model_parallel_group():\n    \"\"\"Get the tensor model parallel group the caller rank belongs to.\"\"\"\n    assert (\n        _TENSOR_MODEL_PARALLEL_GROUP is not None\n    ), \"intra_layer_model parallel group is not initialized\"\n    return _TENSOR_MODEL_PARALLEL_GROUP\n\n\ndef get_pipeline_model_parallel_group():\n    \"\"\"Get the pipeline model parallel group the caller rank belongs to.\"\"\"\n    assert (\n        _PIPELINE_MODEL_PARALLEL_GROUP is not None\n    ), \"pipeline_model parallel group is not initialized\"\n    return _PIPELINE_MODEL_PARALLEL_GROUP\n\n\ndef get_data_parallel_group():\n    \"\"\"Get the data parallel group the caller rank belongs to.\"\"\"\n    assert _DATA_PARALLEL_GROUP is not None, \"data parallel group is not initialized\"\n    return _DATA_PARALLEL_GROUP\n\n\ndef get_embedding_group():\n    \"\"\"Get the embedding group the caller rank belongs to.\"\"\"\n    assert _EMBEDDING_GROUP is not None, \"embedding group is not initialized\"\n    return _EMBEDDING_GROUP\n\n\ndef set_tensor_model_parallel_world_size(world_size):\n    \"\"\"Set the tensor model parallel size\"\"\"\n    global _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE\n    _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE = world_size\n\n\ndef set_pipeline_model_parallel_world_size(world_size):\n    \"\"\"Set the pipeline model parallel size\"\"\"\n    global _MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n    _MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE = world_size\n\n\ndef get_tensor_model_parallel_world_size():\n    \"\"\"Return world size for the tensor model parallel group.\"\"\"\n    global _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE\n    if _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE is not None:\n        return _MPU_TENSOR_MODEL_PARALLEL_WORLD_SIZE\n    return torch.distributed.get_world_size(group=get_tensor_model_parallel_group())\n\n\ndef get_model_parallel_world_size():\n    assert (\n        get_pipeline_model_parallel_world_size() == 1\n    ), \"legacy get_model_parallel_world_size is only supported if PP is disabled\"\n    return get_tensor_model_parallel_world_size()\n\n\ndef get_pipeline_model_parallel_world_size():\n    \"\"\"Return world size for the pipeline model parallel group.\"\"\"\n    global _MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n    if _MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE is not None:\n        return _MPU_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n    return torch.distributed.get_world_size(group=get_pipeline_model_parallel_group())\n\n\ndef set_tensor_model_parallel_rank(rank):\n    \"\"\"Set tensor model parallel rank.\"\"\"\n    global _MPU_TENSOR_MODEL_PARALLEL_RANK\n    _MPU_TENSOR_MODEL_PARALLEL_RANK = rank\n\n\ndef set_pipeline_model_parallel_rank(rank):\n    \"\"\"Set pipeline model parallel rank.\"\"\"\n    global _MPU_PIPELINE_MODEL_PARALLEL_RANK\n    _MPU_PIPELINE_MODEL_PARALLEL_RANK = rank\n\n\ndef get_tensor_model_parallel_rank():\n    \"\"\"Return my rank for the tensor model parallel group.\"\"\"\n    global _MPU_TENSOR_MODEL_PARALLEL_RANK\n    if _MPU_TENSOR_MODEL_PARALLEL_RANK is not None:\n        return _MPU_TENSOR_MODEL_PARALLEL_RANK\n    return torch.distributed.get_rank(group=get_tensor_model_parallel_group())\n\n\ndef get_model_parallel_rank():\n    assert (\n        get_pipeline_model_parallel_world_size() == 1\n    ), \"legacy get_model_parallel_rank is only supported if PP is disabled\"\n    return get_tensor_model_parallel_rank()\n\n\ndef get_pipeline_model_parallel_rank():\n    \"\"\"Return my rank for the pipeline model parallel group.\"\"\"\n    global _MPU_PIPELINE_MODEL_PARALLEL_RANK\n    if _MPU_PIPELINE_MODEL_PARALLEL_RANK is not None:\n        return _MPU_PIPELINE_MODEL_PARALLEL_RANK\n    return torch.distributed.get_rank(group=get_pipeline_model_parallel_group())\n\n\ndef is_pipeline_first_stage(ignore_virtual=False):\n    \"\"\"Return True if in the first pipeline model-parallel stage, False otherwise.\"\"\"\n    if not ignore_virtual:\n        if (\n            get_virtual_pipeline_model_parallel_world_size() is not None\n            and get_virtual_pipeline_model_parallel_rank() != 0\n        ):\n            return False\n    return get_pipeline_model_parallel_rank() == 0\n\n\ndef is_pipeline_last_stage(ignore_virtual=False):\n    \"\"\"Return True if in the last pipeline model-parallel stage, False otherwise.\"\"\"\n    if not ignore_virtual:\n        virtual_pipeline_model_parallel_world_size = (\n            get_virtual_pipeline_model_parallel_world_size()\n        )\n        if (\n            virtual_pipeline_model_parallel_world_size is not None\n            and get_virtual_pipeline_model_parallel_rank()\n            != (virtual_pipeline_model_parallel_world_size - 1)\n        ):\n            return False\n    return get_pipeline_model_parallel_rank() == (\n        get_pipeline_model_parallel_world_size() - 1\n    )\n\n\ndef get_virtual_pipeline_model_parallel_rank():\n    \"\"\"Return the virtual pipeline-parallel rank.\"\"\"\n    global _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK\n    return _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK\n\n\ndef set_virtual_pipeline_model_parallel_rank(rank):\n    \"\"\"Set the virtual pipeline-parallel rank.\"\"\"\n    global _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK\n    _VIRTUAL_PIPELINE_MODEL_PARALLEL_RANK = rank\n\n\ndef get_virtual_pipeline_model_parallel_world_size():\n    \"\"\"Return the virtual pipeline-parallel world size.\"\"\"\n    global _VIRTUAL_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n    return _VIRTUAL_PIPELINE_MODEL_PARALLEL_WORLD_SIZE\n\n\ndef get_tensor_model_parallel_src_rank():\n    \"\"\"Calculate the global rank corresponding to the first local rank\n    in the tensor model parallel group.\"\"\"\n    global_rank = torch.distributed.get_rank()\n    local_world_size = get_tensor_model_parallel_world_size()\n    return (global_rank // local_world_size) * local_world_size\n\n\ndef get_pipeline_model_parallel_first_rank():\n    assert (\n        _PIPELINE_GLOBAL_RANKS is not None\n    ), \"Pipeline parallel group is not initialized\"\n    return _PIPELINE_GLOBAL_RANKS[0]\n\n\ndef get_pipeline_model_parallel_last_rank():\n    assert (\n        _PIPELINE_GLOBAL_RANKS is not None\n    ), \"Pipeline parallel group is not initialized\"\n    last_rank_local = get_pipeline_model_parallel_world_size() - 1\n    return _PIPELINE_GLOBAL_RANKS[last_rank_local]\n\n\ndef get_pipeline_model_parallel_next_rank():\n    assert (\n        _PIPELINE_GLOBAL_RANKS is not None\n    ), \"Pipeline parallel group is not initialized\"\n    rank_in_pipeline = get_pipeline_model_parallel_rank()\n    world_size = get_pipeline_model_parallel_world_size()\n    return _PIPELINE_GLOBAL_RANKS[(rank_in_pipeline + 1) % world_size]\n\n\ndef get_pipeline_model_parallel_prev_rank():\n    assert (\n        _PIPELINE_GLOBAL_RANKS is not None\n    ), \"Pipeline parallel group is not initialized\"\n    rank_in_pipeline = get_pipeline_model_parallel_rank()\n    world_size = get_pipeline_model_parallel_world_size()\n    return _PIPELINE_GLOBAL_RANKS[(rank_in_pipeline - 1) % world_size]\n\n\ndef get_data_parallel_world_size():\n    \"\"\"Return world size for the data parallel group.\"\"\"\n    return torch.distributed.get_world_size(group=get_data_parallel_group())\n\n\ndef get_data_parallel_rank():\n    \"\"\"Return my rank for the data parallel group.\"\"\"\n    return torch.distributed.get_rank(group=get_data_parallel_group())\n\n\ndef destroy_model_parallel():\n    \"\"\"Set the groups to none.\"\"\"\n    global _TENSOR_MODEL_PARALLEL_GROUP\n    _TENSOR_MODEL_PARALLEL_GROUP = None\n    global _PIPELINE_MODEL_PARALLEL_GROUP\n    _PIPELINE_MODEL_PARALLEL_GROUP = None\n    global _DATA_PARALLEL_GROUP\n    _DATA_PARALLEL_GROUP = None\n"
  },
  {
    "path": "codegeex/megatron/mpu/layers.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Parts of the code here are adapted from PyTorch\n# repo: https://github.com/pytorch/pytorch\n\n\nimport math\n\nimport torch\nimport torch.nn.functional as F\nimport torch.nn.init as init\nfrom torch.nn.parameter import Parameter\n\nfrom .initialize import get_tensor_model_parallel_rank\nfrom .initialize import get_tensor_model_parallel_world_size\nfrom .mappings import copy_to_tensor_model_parallel_region\nfrom .mappings import gather_from_tensor_model_parallel_region\nfrom .mappings import reduce_from_tensor_model_parallel_region\nfrom .mappings import scatter_to_tensor_model_parallel_region\nfrom .random import get_cuda_rng_tracker\nfrom .utils import divide\nfrom .utils import split_tensor_along_last_dim\nfrom .utils import VocabUtility\nfrom codegeex.megatron import get_args\nimport deepspeed.runtime.activation_checkpointing.checkpointing as ds_checkpointing\n\n\n_MODEL_PARALLEL_ATTRIBUTE_DEFAULTS = {\n    \"tensor_model_parallel\": False,\n    \"partition_dim\": -1,\n    \"partition_stride\": 1,\n}\n\n\ndef param_is_not_tensor_parallel_duplicate(param):\n    return (\n        hasattr(param, \"tensor_model_parallel\") and param.tensor_model_parallel\n    ) or (get_tensor_model_parallel_rank() == 0)\n\n\ndef set_tensor_model_parallel_attributes(tensor, is_parallel, dim, stride):\n    # Make sure the attributes are not set.\n    for attribute in _MODEL_PARALLEL_ATTRIBUTE_DEFAULTS:\n        assert not hasattr(tensor, attribute)\n    # Set the attributes.\n    setattr(tensor, \"tensor_model_parallel\", is_parallel)\n    setattr(tensor, \"partition_dim\", dim)\n    setattr(tensor, \"partition_stride\", stride)\n\n\ndef set_defaults_if_not_set_tensor_model_parallel_attributes(tensor):\n    def maybe_set(attribute, value):\n        if not hasattr(tensor, attribute):\n            setattr(tensor, attribute, value)\n\n    for attribute in _MODEL_PARALLEL_ATTRIBUTE_DEFAULTS:\n        maybe_set(attribute, _MODEL_PARALLEL_ATTRIBUTE_DEFAULTS[attribute])\n\n\ndef copy_tensor_model_parallel_attributes(destination_tensor, source_tensor):\n    def maybe_copy(attribute):\n        if hasattr(source_tensor, attribute):\n            setattr(destination_tensor, attribute, getattr(source_tensor, attribute))\n\n    for attribute in _MODEL_PARALLEL_ATTRIBUTE_DEFAULTS:\n        maybe_copy(attribute)\n\n\ndef _initialize_affine_weight_gpu(weight, init_method, partition_dim, stride=1):\n    \"\"\"Initialize affine weight for model parallel on GPU.\"\"\"\n\n    set_tensor_model_parallel_attributes(\n        tensor=weight, is_parallel=True, dim=partition_dim, stride=stride\n    )\n\n    if ds_checkpointing.is_configured():\n        global get_cuda_rng_tracker\n        get_cuda_rng_tracker = ds_checkpointing.get_cuda_rng_tracker\n\n    with get_cuda_rng_tracker().fork():\n        init_method(weight)\n\n\ndef _initialize_affine_weight_cpu(\n    weight,\n    output_size,\n    input_size,\n    per_partition_size,\n    partition_dim,\n    init_method,\n    stride=1,\n    return_master_weight=False,\n):\n    \"\"\"Initialize affine weight for model parallel.\n\n    Build the master weight on all processes and scatter\n    the relevant chunk.\"\"\"\n\n    set_tensor_model_parallel_attributes(\n        tensor=weight, is_parallel=True, dim=partition_dim, stride=stride\n    )\n\n    # Initialize master weight\n    master_weight = torch.empty(\n        output_size, input_size, dtype=torch.float, requires_grad=False\n    )\n    init_method(master_weight)\n    args = get_args()\n    master_weight = master_weight.to(dtype=args.params_dtype)\n\n    # Split and copy\n    per_partition_per_stride_size = divide(per_partition_size, stride)\n    weight_list = torch.split(\n        master_weight, per_partition_per_stride_size, dim=partition_dim\n    )\n    rank = get_tensor_model_parallel_rank()\n    world_size = get_tensor_model_parallel_world_size()\n    my_weight_list = weight_list[rank::world_size]\n\n    with torch.no_grad():\n        torch.cat(my_weight_list, dim=partition_dim, out=weight)\n    if return_master_weight:\n        return master_weight\n    return None\n\n\nclass VocabParallelEmbedding(torch.nn.Module):\n    \"\"\"Embedding parallelized in the vocabulary dimension.\n\n    This is mainly adapted from torch.nn.Embedding and all the default\n    values are kept.\n    Arguments:\n        num_embeddings: vocabulary size.\n        embedding_dim: size of hidden state.\n        init_method: method to initialize weights.\n    \"\"\"\n\n    def __init__(self, num_embeddings, embedding_dim, init_method=init.xavier_normal_):\n        super(VocabParallelEmbedding, self).__init__()\n        # Keep the input dimensions.\n        self.num_embeddings = num_embeddings\n        self.embedding_dim = embedding_dim\n        # Set the detauls for compatibility.\n        self.padding_idx = None\n        self.max_norm = None\n        self.norm_type = 2.0\n        self.scale_grad_by_freq = False\n        self.sparse = False\n        self._weight = None\n        self.tensor_model_parallel_size = get_tensor_model_parallel_world_size()\n        # Divide the weight matrix along the vocaburaly dimension.\n        (\n            self.vocab_start_index,\n            self.vocab_end_index,\n        ) = VocabUtility.vocab_range_from_global_vocab_size(\n            self.num_embeddings,\n            get_tensor_model_parallel_rank(),\n            self.tensor_model_parallel_size,\n        )\n        self.num_embeddings_per_partition = (\n            self.vocab_end_index - self.vocab_start_index\n        )\n\n        # Allocate weights and initialize.\n        args = get_args()\n        if args.use_cpu_initialization:\n            self.weight = Parameter(\n                torch.empty(\n                    self.num_embeddings_per_partition,\n                    self.embedding_dim,\n                    dtype=args.params_dtype,\n                    # dtype=torch.float32,\n                )\n            )\n            _initialize_affine_weight_cpu(\n                self.weight,\n                self.num_embeddings,\n                self.embedding_dim,\n                self.num_embeddings_per_partition,\n                0,\n                init_method,\n            )\n        else:\n            self.weight = Parameter(\n                torch.empty(\n                    self.num_embeddings_per_partition,\n                    self.embedding_dim,\n                    device=torch.cuda.current_device(),\n                    dtype=args.params_dtype,\n                    # dtype=torch.float32,\n                )\n            )\n            _initialize_affine_weight_gpu(\n                self.weight, init_method, partition_dim=0, stride=1\n            )\n\n    def forward(self, input_):\n        if self.tensor_model_parallel_size > 1:\n            # Build the mask.\n            input_mask = (input_ < self.vocab_start_index) | (\n                input_ >= self.vocab_end_index\n            )\n            # Mask the input.\n            masked_input = input_.clone() - self.vocab_start_index\n            masked_input[input_mask] = 0\n        else:\n            masked_input = input_\n            # Get the embeddings.\n        output_parallel = F.embedding(\n            masked_input,\n            self.weight,\n            self.padding_idx,\n            self.max_norm,\n            self.norm_type,\n            self.scale_grad_by_freq,\n            self.sparse,\n        )\n        # Mask the output embedding.\n        if self.tensor_model_parallel_size > 1:\n            output_parallel[input_mask, :] = 0.0\n        # Reduce across all the model parallel GPUs.\n        output = reduce_from_tensor_model_parallel_region(output_parallel)\n        return output\n\n\nclass ColumnParallelLinear(torch.nn.Module):\n    \"\"\"Linear layer with column parallelism.\n\n    The linear layer is defined as Y = XA + b. A is parallelized along\n    its second dimension as A = [A_1, ..., A_p].\n\n    Arguments:\n        input_size: first dimension of matrix A.\n        output_size: second dimension of matrix A.\n        bias: If true, add bias\n        gather_output: If true, call all-gether on output and make Y avaiable\n                       to all GPUs, otherwise, every GPU will have its output\n                       which is Y_i = XA_i\n        init_method: method to initialize weights. Note that bias is always set\n                     to zero.\n        stride: For the strided linear layers.\n        keep_master_weight_for_test: This was added for testing and should be\n                                     set to False. It returns the master weights\n                                     used for initialization.\n        skip_bias_add: This was added to enable performance optimations where bias\n                       can be fused with other elementwise operations. we skip\n                       adding bias but instead return it.\n    \"\"\"\n\n    def __init__(\n        self,\n        input_size,\n        output_size,\n        bias=True,\n        gather_output=True,\n        init_method=init.xavier_normal_,\n        stride=1,\n        keep_master_weight_for_test=False,\n        skip_bias_add=False,\n        params_dtype=None,\n        skip_init=False,\n        device=None,\n    ):\n        super(ColumnParallelLinear, self).__init__()\n\n        # Keep input parameters\n        self.input_size = input_size\n        self.output_size = output_size\n        self.gather_output = gather_output\n        # Divide the weight matrix along the last dimension.\n        world_size = get_tensor_model_parallel_world_size()\n        self.output_size_per_partition = divide(output_size, world_size)\n        self.skip_bias_add = skip_bias_add\n        self.params_dtype = params_dtype\n        self.device = device\n        \n        # Parameters.\n        # Note: torch.nn.functional.linear performs XA^T + b and as a result\n        # we allocate the transpose.\n        # Initialize weight.\n        args = get_args()\n        if not skip_init:\n            if args.use_cpu_initialization:\n                self.weight = Parameter(\n                    torch.empty(\n                        self.output_size_per_partition,\n                        self.input_size,\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n                self.master_weight = _initialize_affine_weight_cpu(\n                    self.weight,\n                    self.output_size,\n                    self.input_size,\n                    self.output_size_per_partition,\n                    0,\n                    init_method,\n                    stride=stride,\n                    return_master_weight=keep_master_weight_for_test,\n                )\n            else:\n                self.weight = Parameter(\n                    torch.empty(\n                        self.output_size_per_partition,\n                        self.input_size,\n                        device=self.device if self.device is not None else torch.cuda.current_device(),\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n                _initialize_affine_weight_gpu(\n                    self.weight, init_method, partition_dim=0, stride=stride\n                )\n        else:\n            self.register_parameter(\"weight\", None)\n\n        if bias and not skip_init:\n            if args.use_cpu_initialization:\n                self.bias = Parameter(\n                    torch.empty(self.output_size_per_partition, \n                                dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype)\n                )\n            else:\n                self.bias = Parameter(\n                    torch.empty(\n                        self.output_size_per_partition,\n                        device=self.device if self.device is not None else torch.cuda.current_device(),\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n            set_tensor_model_parallel_attributes(self.bias, True, 0, stride)\n            # Always initialize bias to zero.\n            with torch.no_grad():\n                self.bias.zero_()\n        else:\n            self.register_parameter(\"bias\", None)\n\n    def forward(self, input_):\n        # Set up backprop all-reduce.\n        input_parallel = copy_to_tensor_model_parallel_region(input_)\n        # Matrix multiply.\n\n        bias = self.bias if not self.skip_bias_add else None\n        output_parallel = F.linear(input_parallel, self.weight, bias)\n        if self.gather_output:\n            # All-gather across the partitions.\n            output = gather_from_tensor_model_parallel_region(output_parallel)\n        else:\n            output = output_parallel\n        output_bias = self.bias if self.skip_bias_add else None\n        return output, output_bias\n\n\nclass RowParallelLinear(torch.nn.Module):\n    \"\"\"Linear layer with row parallelism.\n\n    The linear layer is defined as Y = XA + b. A is parallelized along\n    its first dimension and X along its second dimension as:\n               -   -\n              | A_1 |\n              | .   |\n          A = | .   |        X = [X_1, ..., X_p]\n              | .   |\n              | A_p |\n               -   -\n    Arguments:\n        input_size: first dimension of matrix A.\n        output_size: second dimension of matrix A.\n        bias: If true, add bias. Note that bias is not parallelized.\n        input_is_parallel: If true, we assume that the input is already\n                           split across the GPUs and we do not split\n                           again.\n        init_method: method to initialize weights. Note that bias is always set\n                     to zero.\n        stride: For the strided linear layers.\n        keep_master_weight_for_test: This was added for testing and should be\n                                     set to False. It returns the master weights\n                                     used for initialization.\n        skip_bias_add: This was added to enable performance optimations where bias\n                       can be fused with other elementwise operations. we skip\n                       adding bias but instead return it.\n    \"\"\"\n\n    def __init__(\n        self,\n        input_size,\n        output_size,\n        bias=True,\n        input_is_parallel=False,\n        init_method=init.xavier_normal_,\n        stride=1,\n        keep_master_weight_for_test=False,\n        skip_bias_add=False,\n        params_dtype=None,\n        skip_init=False,\n        device=None,\n    ):\n        super(RowParallelLinear, self).__init__()\n\n        # Keep input parameters\n        self.input_size = input_size\n        self.output_size = output_size\n        self.input_is_parallel = input_is_parallel\n        # Divide the weight matrix along the last dimension.\n        world_size = get_tensor_model_parallel_world_size()\n        self.input_size_per_partition = divide(input_size, world_size)\n        self.skip_bias_add = skip_bias_add\n        self.params_dtype = params_dtype\n        self.device = device\n        \n        # Parameters.\n        # Note: torch.nn.functional.linear performs XA^T + b and as a result\n        # we allocate the transpose.\n        # Initialize weight.\n        args = get_args()\n        if not skip_init:\n            if args.use_cpu_initialization:\n                self.weight = Parameter(\n                    torch.empty(\n                        self.output_size,\n                        self.input_size_per_partition,\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n                self.master_weight = _initialize_affine_weight_cpu(\n                    self.weight,\n                    self.output_size,\n                    self.input_size,\n                    self.input_size_per_partition,\n                    1,\n                    init_method,\n                    stride=stride,\n                    return_master_weight=keep_master_weight_for_test,\n                )\n            else:\n                self.weight = Parameter(\n                    torch.empty(\n                        self.output_size,\n                        self.input_size_per_partition,\n                        device=self.device if self.device is not None else torch.cuda.current_device(),\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n                _initialize_affine_weight_gpu(\n                    self.weight, init_method, partition_dim=1, stride=stride\n                )\n        else:\n            self.register_parameter(\"weight\", None)\n            \n        if bias and not skip_init:\n            if args.use_cpu_initialization:\n                self.bias = Parameter(\n                    torch.empty(self.output_size, \n                                dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype)\n                )\n            else:\n                self.bias = Parameter(\n                    torch.empty(\n                        self.output_size,\n                        device=self.device if self.device is not None else torch.cuda.current_device(),\n                        dtype=self.params_dtype if self.params_dtype is not None else args.params_dtype,\n                    )\n                )\n            # Always initialize bias to zero.\n            with torch.no_grad():\n                self.bias.zero_()\n        else:\n            self.register_parameter(\"bias\", None)\n\n    def forward(self, input_):\n        # Set up backprop all-reduce.\n        if self.input_is_parallel:\n            input_parallel = input_\n        else:\n            input_parallel = scatter_to_tensor_model_parallel_region(input_)\n        # Matrix multiply.\n        output_parallel = F.linear(input_parallel, self.weight)\n        # All-reduce across all the partitions.\n        output_ = reduce_from_tensor_model_parallel_region(output_parallel)\n        if not self.skip_bias_add:\n            output = output_ + self.bias if self.bias is not None else output_\n            output_bias = None\n        else:\n            output = output_\n            output_bias = self.bias\n        return output, output_bias\n"
  },
  {
    "path": "codegeex/megatron/mpu/mappings.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport torch\n\nfrom .initialize import (\n    get_tensor_model_parallel_group,\n    get_tensor_model_parallel_world_size,\n    get_tensor_model_parallel_rank,\n)\nfrom .utils import split_tensor_along_last_dim\n\n\ndef _reduce(input_):\n    \"\"\"All-reduce the the input tensor across model parallel group.\"\"\"\n\n    # Bypass the function if we are using only 1 GPU.\n    if get_tensor_model_parallel_world_size() == 1:\n        return input_\n\n    # All-reduce.\n    torch.distributed.all_reduce(input_, group=get_tensor_model_parallel_group())\n\n    return input_\n\n\ndef _split(input_):\n    \"\"\"Split the tensor along its last dimension and keep the\n    corresponding slice.\"\"\"\n\n    world_size = get_tensor_model_parallel_world_size()\n    # Bypass the function if we are using only 1 GPU.\n    if world_size == 1:\n        return input_\n\n    # Split along last dimension.\n    input_list = split_tensor_along_last_dim(input_, world_size)\n\n    # Note: torch.split does not create contiguous tensors by default.\n    rank = get_tensor_model_parallel_rank()\n    output = input_list[rank].contiguous()\n\n    return output\n\n\ndef _gather(input_):\n    \"\"\"Gather tensors and concatinate along the last dimension.\"\"\"\n\n    world_size = get_tensor_model_parallel_world_size()\n    # Bypass the function if we are using only 1 GPU.\n    if world_size == 1:\n        return input_\n\n    # Size and dimension.\n    last_dim = input_.dim() - 1\n    rank = get_tensor_model_parallel_rank()\n\n    tensor_list = [torch.empty_like(input_) for _ in range(world_size)]\n    tensor_list[rank] = input_\n    torch.distributed.all_gather(\n        tensor_list, input_, group=get_tensor_model_parallel_group()\n    )\n\n    # Note: torch.cat already creates a contiguous tensor.\n    output = torch.cat(tensor_list, dim=last_dim).contiguous()\n\n    return output\n\n\nclass _CopyToModelParallelRegion(torch.autograd.Function):\n    \"\"\"Pass the input to the model parallel region.\"\"\"\n\n    @staticmethod\n    def symbolic(graph, input_):\n        return input_\n\n    @staticmethod\n    def forward(ctx, input_):\n        return input_\n\n    @staticmethod\n    def backward(ctx, grad_output):\n        return _reduce(grad_output)\n\n\nclass _ReduceFromModelParallelRegion(torch.autograd.Function):\n    \"\"\"All-reduce the input from the model parallel region.\"\"\"\n\n    @staticmethod\n    def symbolic(graph, input_):\n        return _reduce(input_)\n\n    @staticmethod\n    def forward(ctx, input_):\n        return _reduce(input_)\n\n    @staticmethod\n    def backward(ctx, grad_output):\n        return grad_output\n\n\nclass _ScatterToModelParallelRegion(torch.autograd.Function):\n    \"\"\"Split the input and keep only the corresponding chuck to the rank.\"\"\"\n\n    @staticmethod\n    def symbolic(graph, input_):\n        return _split(input_)\n\n    @staticmethod\n    def forward(ctx, input_):\n        return _split(input_)\n\n    @staticmethod\n    def backward(ctx, grad_output):\n        return _gather(grad_output)\n\n\nclass _GatherFromModelParallelRegion(torch.autograd.Function):\n    \"\"\"Gather the input from model parallel region and concatinate.\"\"\"\n\n    @staticmethod\n    def symbolic(graph, input_):\n        return _gather(input_)\n\n    @staticmethod\n    def forward(ctx, input_):\n        return _gather(input_)\n\n    @staticmethod\n    def backward(ctx, grad_output):\n        return _split(grad_output)\n\n\n# -----------------\n# Helper functions.\n# -----------------\n\n\ndef copy_to_tensor_model_parallel_region(input_):\n    return _CopyToModelParallelRegion.apply(input_)\n\n\ndef reduce_from_tensor_model_parallel_region(input_):\n    return _ReduceFromModelParallelRegion.apply(input_)\n\n\ndef scatter_to_tensor_model_parallel_region(input_):\n    return _ScatterToModelParallelRegion.apply(input_)\n\n\ndef gather_from_tensor_model_parallel_region(input_):\n    return _GatherFromModelParallelRegion.apply(input_)\n"
  },
  {
    "path": "codegeex/megatron/mpu/random.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\n# Parts of the code here are adapted from PyTorch\n# repo: https://github.com/pytorch/pytorch\n\nimport contextlib\n\nimport torch\nfrom torch import _C\nfrom torch.cuda import _lazy_call, device as device_ctx_manager\nfrom torch.utils.checkpoint import detach_variable\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.memory import allocate_mem_buff\n\nfrom .initialize import get_data_parallel_rank\nfrom .initialize import get_tensor_model_parallel_group\nfrom .initialize import get_tensor_model_parallel_rank\nfrom .initialize import get_tensor_model_parallel_world_size\n\n\n# Default name for the model parallel rng tracker.\n_MODEL_PARALLEL_RNG_TRACKER_NAME = \"model-parallel-rng\"\n\n\n# Whether apply model parallelsim to checkpointed hidden states.\n_CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER = None\n\n\ndef init_checkpointed_activations_memory_buffer():\n    \"\"\"Initializ the memory buffer for the checkpointed activations.\"\"\"\n    args = get_args()\n\n    per_layer = (\n        args.micro_batch_size\n        * args.max_position_embeddings\n        * args.hidden_size\n        // args.tensor_model_parallel_size\n    )\n    assert (\n        args.num_layers % args.checkpoint_num_layers == 0\n    ), \"number of layers is not divisible by checkpoint-num-layers\"\n    num_checkpointer_layers = args.num_layers // args.checkpoint_num_layers\n    numel = per_layer * num_checkpointer_layers\n    dtype = torch.half\n    if not args.fp16:\n        dtype = torch.float\n\n    global _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER\n    assert (\n        _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER is None\n    ), \"checkpointed activations memory buffer is already allocated.\"\n    _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER = allocate_mem_buff(\n        \"checkpointed activations\", numel, dtype, track_usage=False\n    )\n\n\ndef reset_checkpointed_activations_memory_buffer():\n    \"\"\"Reset the memory used for checkpointing.\"\"\"\n    if _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER is not None:\n        _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER.reset()\n\n\ndef _set_cuda_rng_state(new_state, device=-1):\n    \"\"\"Sets the random number generator state of the current GPU.\n\n    Argumentss:\n        new_state (torch.ByteTensor): The desired state\n    This function is adapted from PyTorch repo (torch.cuda.set_rng_state)\n    with a single change: the input state is not cloned. Cloning caused\n    major performance issues for +4 GPU cases.\n    \"\"\"\n    if hasattr(_C, \"_cuda_setRNGState\") and callable(_C._cuda_setRNGState):\n        # older PyTorch\n        def cb():\n            with device_ctx_manager(device):\n                _C._cuda_setRNGState(new_state)\n\n    else:\n        # newer PyTorch\n        if device == -1:\n            device = torch.device(\"cuda\")\n        elif isinstance(device, str):\n            device = torch.device(device)\n        elif isinstance(device, int):\n            device = torch.device(\"cuda\", device)\n\n        def cb():\n            idx = device.index\n            if idx is None:\n                idx = torch.cuda.current_device()\n            default_generator = torch.cuda.default_generators[idx]\n            default_generator.set_state(new_state)\n\n    _lazy_call(cb)\n\n\ndef split_tensor_into_1d_equal_chunks(tensor):\n    \"\"\"Break a tensor into equal 1D chunks.\"\"\"\n    data = tensor.view(-1)\n    partition_size = torch.numel(data) // get_tensor_model_parallel_world_size()\n    start_index = partition_size * get_tensor_model_parallel_rank()\n    end_index = start_index + partition_size\n    return data[start_index:end_index]\n\n\ndef gather_split_1d_tensor(tensor):\n    \"\"\"Opposite of above function, gather values from model parallel ranks.\"\"\"\n    world_size = get_tensor_model_parallel_world_size()\n    numel = torch.numel(tensor)\n    numel_gathered = world_size * numel\n    gathered = torch.empty(\n        numel_gathered,\n        dtype=tensor.dtype,\n        device=torch.cuda.current_device(),\n        requires_grad=False,\n    )\n    chunks = [gathered[i * numel : (i + 1) * numel] for i in range(world_size)]\n    torch.distributed.all_gather(\n        chunks, tensor, group=get_tensor_model_parallel_group()\n    )\n    return gathered\n\n\nclass CudaRNGStatesTracker:\n    \"\"\"Tracker for the cuda RNG states.\n\n    Using the `add` method, a cuda rng state is initialized based on\n    the input `seed` and is assigned to `name`. Later, by forking the\n    rng state, we can perform operations and return to our starting\n    cuda state.\n    \"\"\"\n\n    def __init__(self):\n        # Map from a string name to the cuda rng state.\n        self.states_ = {}\n        # Seeds are just for book keeping and ensure no seed is set twice.\n        self.seeds_ = set()\n\n    def reset(self):\n        \"\"\"Set to the initial state (no tracker).\"\"\"\n        self.states_ = {}\n        self.seeds_ = set()\n\n    def get_states(self):\n        \"\"\"Get rng states. Copy the dictionary so we have direct\n        pointers to the states, not just a pointer to the dictionary.\"\"\"\n        states = {}\n        for name in self.states_:\n            states[name] = self.states_[name]\n        return states\n\n    def set_states(self, states):\n        \"\"\"Set the rng states. For efficiency purposes, we do not check\n        the size of seed for compatibility.\"\"\"\n        self.states_ = states\n\n    def add(self, name, seed):\n        \"\"\"Track the rng state.\"\"\"\n        # Check seed is not already used.\n        if seed in self.seeds_:\n            raise Exception(\"seed {} already exists\".format(seed))\n        self.seeds_.add(seed)\n        # Check that state is not already defined.\n        if name in self.states_:\n            raise Exception(\"cuda rng state {} already exists\".format(name))\n        # Get the current rng state.\n        orig_rng_state = torch.cuda.get_rng_state()\n        # Set the new state and store it.\n        torch.cuda.manual_seed(seed)\n        self.states_[name] = torch.cuda.get_rng_state()\n        # Reset rng state to what it was.\n        _set_cuda_rng_state(orig_rng_state)\n\n    @contextlib.contextmanager\n    def fork(self, name=_MODEL_PARALLEL_RNG_TRACKER_NAME):\n        \"\"\"Fork the cuda rng state, perform operations, and exit with\n        the original state.\"\"\"\n        # Check if we have added the state\n        if name not in self.states_:\n            print(name, self.states_)\n            raise Exception(\"cuda rng state {} is not added\".format(name))\n        # Store current rng state.\n        orig_cuda_rng_state = torch.cuda.get_rng_state()\n        # Set rng state to the desired one\n        _set_cuda_rng_state(self.states_[name])\n        # Do the stuff we wanted to do.\n        try:\n            yield\n        finally:\n            # Update the current rng state for later use.\n            self.states_[name] = torch.cuda.get_rng_state()\n            # And set the state to the original state we started with.\n            _set_cuda_rng_state(orig_cuda_rng_state)\n\n\n# RNG tracker object.\n_CUDA_RNG_STATE_TRACKER = CudaRNGStatesTracker()\n\n\ndef get_cuda_rng_tracker():\n    \"\"\"Get cuda rng tracker.\"\"\"\n    return _CUDA_RNG_STATE_TRACKER\n\n\ndef model_parallel_cuda_manual_seed(seed):\n    \"\"\"Initialize model parallel cuda seed.\n\n    This function should be called after the model parallel is\n    initialized. Also, no torch.cuda.manual_seed should be called\n    after this function. Basically, this is replacement for that\n    function.\n    Two set of RNG states are tracked:\n        default state: This is for data parallelism and is the same among a\n                       set of model parallel GPUs but different across\n                       different model paralle groups. This is used for\n                       example for dropout in the non-tensor-model-parallel regions.\n        tensor-model-parallel state: This state is different among a set of model\n                              parallel GPUs, but the same across data parallel\n                              groups. This is used for example for dropout in\n                              model parallel regions.\n    \"\"\"\n    # 2718 is just for fun and any POSITIVE value will work.\n    offset = seed + 2718\n    tensor_model_parallel_seed = offset + get_tensor_model_parallel_rank()\n    # Data parallel gets the original seed.\n    data_parallel_seed = seed\n\n    if torch.distributed.get_rank() == 0:\n        print(\n            \"> initializing model parallel cuda seeds on global rank {}, \"\n            \"model parallel rank {}, and data parallel rank {} with \"\n            \"model parallel seed: {} and data parallel seed: {}\".format(\n                torch.distributed.get_rank(),\n                get_tensor_model_parallel_rank(),\n                get_data_parallel_rank(),\n                tensor_model_parallel_seed,\n                data_parallel_seed,\n            ),\n            flush=True,\n        )\n    _CUDA_RNG_STATE_TRACKER.reset()\n    # Set the default state.\n    torch.cuda.manual_seed(data_parallel_seed)\n    # and model parallel state.\n    _CUDA_RNG_STATE_TRACKER.add(\n        _MODEL_PARALLEL_RNG_TRACKER_NAME, tensor_model_parallel_seed\n    )\n\n\nclass CheckpointFunction(torch.autograd.Function):\n    \"\"\"This function is adapted from torch.utils.checkpoint with\n    two main changes:\n        1) torch.cuda.set_rng_state is replaced with `_set_cuda_rng_state`\n        2) the states in the model parallel tracker are also properly\n           tracked/set/reset.\n    \"\"\"\n\n    @staticmethod\n    def forward(ctx, run_function, *args):\n        ctx.run_function = run_function\n\n        # Copy the rng states.\n        ctx.fwd_cpu_rng_state = torch.get_rng_state()\n        ctx.fwd_cuda_rng_state = torch.cuda.get_rng_state()\n        ctx.fwd_cuda_rng_state_tracker = get_cuda_rng_tracker().get_states()\n\n        with torch.no_grad():\n            outputs = run_function(*args)\n\n        # Divide hidden states across model parallel group and only keep\n        # the chunk corresponding to the current rank.\n        if _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER is not None:\n            ctx.input_0_shape = args[0].data.shape\n            args[0].data = split_tensor_into_1d_equal_chunks(args[0].data)\n            args[0].data = _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER.add(args[0].data)\n\n        # Store everything.\n        ctx.save_for_backward(*args)\n\n        return outputs\n\n    @staticmethod\n    def backward(ctx, *args):\n        if not torch.autograd._is_checkpoint_valid():\n            raise RuntimeError(\n                \"Checkpointing is not compatible with .grad(), \"\n                \"please use .backward() if possible\"\n            )\n        inputs = ctx.saved_tensors\n        if _CHECKPOINTED_ACTIVATIONS_MEMORY_BUFFER is not None:\n            inputs[0].data = gather_split_1d_tensor(inputs[0].data)\n            inputs[0].data = inputs[0].data.view(ctx.input_0_shape)\n\n        # Store the current states.\n        bwd_cpu_rng_state = torch.get_rng_state()\n        bwd_cuda_rng_state = torch.cuda.get_rng_state()\n        bwd_cuda_rng_state_tracker = get_cuda_rng_tracker().get_states()\n\n        # Set the states to what it used to be before the forward pass.\n        torch.set_rng_state(ctx.fwd_cpu_rng_state)\n        _set_cuda_rng_state(ctx.fwd_cuda_rng_state)\n        get_cuda_rng_tracker().set_states(ctx.fwd_cuda_rng_state_tracker)\n\n        # Compute the forward pass.\n        detached_inputs = detach_variable(inputs)\n        with torch.enable_grad():\n            outputs = ctx.run_function(*detached_inputs)\n\n        # Set the states back to what it was at the start of this function.\n        torch.set_rng_state(bwd_cpu_rng_state)\n        _set_cuda_rng_state(bwd_cuda_rng_state)\n        get_cuda_rng_tracker().set_states(bwd_cuda_rng_state_tracker)\n\n        if isinstance(outputs, torch.Tensor):\n            outputs = (outputs,)\n        torch.autograd.backward(outputs, args)\n        grads = tuple(\n            inp.grad if isinstance(inp, torch.Tensor) else inp\n            for inp in detached_inputs\n        )\n        return (None,) + grads\n\n\ndef checkpoint(function, *args):\n    \"\"\"Checkpoint a model or part of the model.\n    This has been directly copied from torch.utils.checkpoint.\"\"\"\n    return CheckpointFunction.apply(function, *args)\n"
  },
  {
    "path": "codegeex/megatron/mpu/utils.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nimport torch\n\n\ndef ensure_divisibility(numerator, denominator):\n    \"\"\"Ensure that numerator is divisible by the denominator.\"\"\"\n    assert numerator % denominator == 0, \"{} is not divisible by {}\".format(\n        numerator, denominator\n    )\n\n\ndef divide(numerator, denominator):\n    \"\"\"Ensure that numerator is divisible by the denominator and return\n    the division value.\"\"\"\n    ensure_divisibility(numerator, denominator)\n    return numerator // denominator\n\n\ndef split_tensor_along_last_dim(tensor, num_partitions, contiguous_split_chunks=False):\n    \"\"\"Split a tensor along its last dimension.\n    Arguments:\n        tensor: input tensor.\n        num_partitions: number of partitions to split the tensor\n        contiguous_split_chunks: If True, make each chunk contiguous\n                                 in memory.\n    \"\"\"\n    # Get the size and dimension.\n    last_dim = tensor.dim() - 1\n    last_dim_size = divide(tensor.size()[last_dim], num_partitions)\n    # Split.\n    tensor_list = torch.split(tensor, last_dim_size, dim=last_dim)\n    # Note: torch.split does not create contiguous tensors by default.\n    if contiguous_split_chunks:\n        return tuple(chunk.contiguous() for chunk in tensor_list)\n\n    return tensor_list\n\n\nclass VocabUtility:\n    \"\"\"Split the vocabulary into `world_size` chunks amd return the\n    first and last index of the vocabulary belonging to the `rank`\n    partition: Note that indecies in [fist, last)\"\"\"\n\n    @staticmethod\n    def vocab_range_from_per_partition_vocab_size(\n        per_partition_vocab_size, rank, world_size\n    ):\n        index_f = rank * per_partition_vocab_size\n        index_l = index_f + per_partition_vocab_size\n        return index_f, index_l\n\n    @staticmethod\n    def vocab_range_from_global_vocab_size(global_vocab_size, rank, world_size):\n        per_partition_vocab_size = divide(global_vocab_size, world_size)\n        return VocabUtility.vocab_range_from_per_partition_vocab_size(\n            per_partition_vocab_size, rank, world_size\n        )\n"
  },
  {
    "path": "codegeex/megatron/optimizer/__init__.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom apex.optimizers import FusedAdam as Adam\nfrom apex.optimizers import FusedSGD as SGD\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron.model import LayerNorm\n\nfrom .grad_scaler import ConstantGradScaler, DynamicGradScaler\nfrom .optimizer import Float16OptimizerWithFloat16Params, FP32Optimizer\n\n\ndef _get_params_for_weight_decay_optimization(modules):\n    \"\"\"Divide params into with-weight-decay and without-weight-decay groups.\n    Layernorms and baises will have no weight decay but the rest will.\n    \"\"\"\n\n    weight_decay_params = {\"params\": []}\n    no_weight_decay_params = {\"params\": [], \"weight_decay\": 0.0}\n    for module in modules:\n        for module_ in module.modules():\n            if isinstance(module_, LayerNorm):\n                no_weight_decay_params[\"params\"].extend(\n                    [p for p in list(module_._parameters.values()) if p is not None]\n                )\n            else:\n                weight_decay_params[\"params\"].extend(\n                    [\n                        p\n                        for n, p in list(module_._parameters.items())\n                        if p is not None and n != \"bias\"\n                    ]\n                )\n                no_weight_decay_params[\"params\"].extend(\n                    [\n                        p\n                        for n, p in list(module_._parameters.items())\n                        if p is not None and n == \"bias\"\n                    ]\n                )\n\n    return weight_decay_params, no_weight_decay_params\n\n\ndef get_megatron_optimizer(model):\n    args = get_args()\n\n    if args.cpu_optimizer:\n        raise NotImplementedError(\"need to add cpu adam\")\n    \n    param_groups = _get_params_for_weight_decay_optimization(model)\n   \n    if args.optimizer == \"adam\":\n        optimizer = Adam(\n            param_groups,\n            lr=args.lr,\n            weight_decay=args.weight_decay,\n            betas=(args.adam_beta1, args.adam_beta2),\n            eps=args.adam_eps,\n        )\n    elif args.optimizer == \"sgd\":\n        optimizer = SGD(\n            param_groups,\n            lr=args.lr,\n            weight_decay=args.weight_decay,\n            momentum=args.sgd_momentum,\n        )\n    else:\n        raise Exception(\"{} optimizer is not supported.\".format(args.optimizer))\n\n    if args.deepspeed:\n        return optimizer\n\n    # Determine whether the params have main-grad field.\n    params_have_main_grad = False\n    if args.DDP_impl == \"local\":\n        params_have_main_grad = True\n\n    if args.fp16 or args.bf16:\n\n        # Grad scaler:\n        #    if loss-scale is provided, instantiate the constant scaler.\n        #    if we are using fp16 and loss-scale is not present, use a\n        #       dynamic scaler.\n        #    otherwise we are running in bf16 with no loss-scale so\n        #       leave it as None.\n        grad_scaler = None\n        # Constant loss scale.\n        if args.loss_scale:\n            grad_scaler = ConstantGradScaler(args.loss_scale)\n        # Dynamic loss scale.\n        else:\n            if args.fp16:\n                grad_scaler = DynamicGradScaler(\n                    initial_scale=args.initial_loss_scale,\n                    min_scale=args.min_loss_scale,\n                    growth_factor=2.0,\n                    backoff_factor=0.5,\n                    growth_interval=args.loss_scale_window,\n                    hysteresis=args.hysteresis,\n                )\n\n        # Megatron optimizer.\n        return Float16OptimizerWithFloat16Params(\n            optimizer,\n            args.clip_grad,\n            args.log_num_zeros_in_grad,\n            params_have_main_grad,\n            args.bf16,\n            grad_scaler,\n        )\n\n    # FP32.\n    return FP32Optimizer(\n        optimizer, args.clip_grad, args.log_num_zeros_in_grad, params_have_main_grad\n    )\n"
  },
  {
    "path": "codegeex/megatron/optimizer/clip_grads.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Gradient clipping.\"\"\"\n\nimport torch\nfrom torch._six import inf\n\nfrom apex.multi_tensor_apply import multi_tensor_applier\nimport amp_C\n\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.model.module import param_is_not_shared\nfrom codegeex.megatron.mpu.layers import param_is_not_tensor_parallel_duplicate\n\n\ndef clip_grad_norm_fp32(parameters, max_norm, norm_type=2):\n    \"\"\"Clips gradient norm of an iterable of parameters whose gradients\n       are in fp32.\n\n    This is adapted from torch.nn.utils.clip_grad.clip_grad_norm_ and\n    added functionality to handle model parallel parameters. Note that\n    the gradients are modified in place.\n\n    Arguments:\n        parameters (Iterable[Tensor] or Tensor): an iterable of Tensors or a\n            single Tensor that will have gradients normalized\n        max_norm (float or int): max norm of the gradients\n        norm_type (float or int): type of the used p-norm. Can be ``'inf'`` for\n            infinity norm.\n\n    Returns:\n        Total norm of the parameters (viewed as a single vector).\n    \"\"\"\n\n    if isinstance(parameters, torch.Tensor):\n        parameters = [parameters]\n\n    # Filter parameters based on:\n    #   - grad should not be none\n    #   - parameter should not be shared\n    #   - should not be a replica due to tensor model parallelism\n    grads = []\n    grads_for_norm = []\n    for param in parameters:\n        grad_not_none = param.grad is not None\n        is_not_shared = param_is_not_shared(param)\n        is_not_tp_duplicate = param_is_not_tensor_parallel_duplicate(param)\n        grad = param.grad.detach()\n        if grad_not_none:\n            # Make sure the grads are in fp32\n            assert param.grad.type() == \"torch.cuda.FloatTensor\"\n            grads.append(grad)\n        if grad_not_none and is_not_shared and is_not_tp_duplicate:\n            grads_for_norm.append(grad)\n\n    # Norm parameters.\n    max_norm = float(max_norm)\n    norm_type = float(norm_type)\n    total_norm = 0.0\n\n    # Calculate norm.\n    if norm_type == inf:\n        total_norm = max(grad.abs().max() for grad in grads_for_norm)\n        total_norm_cuda = torch.cuda.FloatTensor([float(total_norm)])\n        # Take max across all model-parallel GPUs.\n        torch.distributed.all_reduce(\n            total_norm_cuda,\n            op=torch.distributed.ReduceOp.MAX,\n            group=mpu.get_model_parallel_group(),\n        )\n        total_norm = total_norm_cuda[0].item()\n\n    else:\n        if norm_type == 2.0:\n            dummy_overflow_buf = torch.cuda.IntTensor([0])\n            # Use apex's multi-tensor applier for efficiency reasons.\n            # Multi-tensor applier takes a function and a list of list\n            # and performs the operation on that list all in one kernel.\n            grad_norm, _ = multi_tensor_applier(\n                amp_C.multi_tensor_l2norm,\n                dummy_overflow_buf,\n                [grads_for_norm],\n                False,  # no per-parameter norm\n            )\n            # Since we will be summing across data parallel groups,\n            # we need the pow(norm-type).\n            total_norm = grad_norm ** norm_type\n\n        else:\n            for grad in grads_for_norm:\n                grad_norm = torch.norm(grad, norm_type)\n                total_norm += grad_norm ** norm_type\n\n        # Sum across all model-parallel GPUs.\n        torch.distributed.all_reduce(\n            total_norm,\n            op=torch.distributed.ReduceOp.SUM,\n            group=mpu.get_model_parallel_group(),\n        )\n        total_norm = total_norm.item() ** (1.0 / norm_type)\n\n    # Scale.\n    clip_coeff = max_norm / (total_norm + 1.0e-6)\n    if clip_coeff < 1.0:\n        dummy_overflow_buf = torch.cuda.IntTensor([0])\n        multi_tensor_applier(\n            amp_C.multi_tensor_scale, dummy_overflow_buf, [grads, grads], clip_coeff\n        )\n\n    return total_norm\n\n\ndef count_zeros_fp32(parameters):\n\n    if isinstance(parameters, torch.Tensor):\n        parameters = [parameters]\n\n    # Filter parameters based on:\n    #   - grad should not be none\n    #   - parameter should not be shared\n    #   - should not be a replica due to tensor model parallelism\n    total_num_zeros = 0.0\n    for param in parameters:\n        grad_not_none = param.grad is not None\n        is_not_shared = param_is_not_shared(param)\n        is_not_tp_duplicate = param_is_not_tensor_parallel_duplicate(param)\n        if grad_not_none and is_not_shared and is_not_tp_duplicate:\n            grad = param.grad.detach()\n            num_zeros = grad.numel() - torch.count_nonzero(grad)\n            total_num_zeros = num_zeros + total_num_zeros\n\n    # Sum across all model-parallel GPUs.\n    torch.distributed.all_reduce(\n        total_num_zeros,\n        op=torch.distributed.ReduceOp.SUM,\n        group=mpu.get_model_parallel_group(),\n    )\n    total_num_zeros = total_num_zeros.item()\n\n    return total_num_zeros\n"
  },
  {
    "path": "codegeex/megatron/optimizer/grad_scaler.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron grad scaler.\"\"\"\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\nimport torch\n\n\nclass MegatronGradScaler(ABC):\n    def __init__(self, initial_scale):\n        \"\"\"Initialize scale value with the input initial scale.\"\"\"\n        assert initial_scale > 0.0\n        self._scale = torch.cuda.FloatTensor([initial_scale])\n\n    @property\n    def scale(self):\n        return self._scale\n\n    @property\n    def inv_scale(self):\n        return self._scale.double().reciprocal().float()\n\n    @abstractmethod\n    def update(self, found_inf):\n        pass\n\n    @abstractmethod\n    def state_dict(self):\n        pass\n\n    @abstractmethod\n    def load_state_dict(self, state_dict):\n        pass\n\n\nclass ConstantGradScaler(MegatronGradScaler):\n    def update(self, found_inf):\n        pass\n\n    def state_dict(self):\n        return dict()\n\n    def load_state_dict(self, state_dict):\n        pass\n\n\nclass DynamicGradScaler(MegatronGradScaler):\n    def __init__(\n        self,\n        initial_scale,\n        min_scale,\n        growth_factor,\n        backoff_factor,\n        growth_interval,\n        hysteresis,\n    ):\n        \"\"\" \"Grad scaler with dynamic scale that gets adjusted\n        during training.\"\"\"\n        super(DynamicGradScaler, self).__init__(initial_scale)\n\n        # Lower bound on the scale.\n        assert min_scale > 0.0\n        assert min_scale <= initial_scale\n        self.min_scale = torch.cuda.FloatTensor([min_scale])\n        # Growth and backoff factors for the scale.\n        assert growth_factor > 1.0\n        self.growth_factor = torch.cuda.FloatTensor([growth_factor])\n        assert backoff_factor < 1.0\n        assert backoff_factor > 0.0\n        self.backoff_factor = torch.cuda.FloatTensor([backoff_factor])\n        # Interval over which if we don't see any inf/nan,\n        # we will scale the grad scale by the growth factor.\n        assert growth_interval > 0\n        self.growth_interval = growth_interval\n        # Number of inf/nans we should see before scaling down\n        # the grad scale by the backoff factor.\n        assert hysteresis > 0\n        self.hysteresis = hysteresis\n\n        # Trackers.\n        self._growth_tracker = 0\n        self._hysteresis_tracker = self.hysteresis\n\n    def update(self, found_inf):\n\n        # If we have an inf/nan, growth tracker is set to 0\n        # and hysterisis tracker is reduced by 1.\n        if found_inf:\n            self._growth_tracker = 0\n            self._hysteresis_tracker -= 1\n            # Now if we are out of hysteresis count, scale down the loss.\n            if self._hysteresis_tracker <= 0:\n                self._scale = torch.max(\n                    self._scale * self.backoff_factor, self.min_scale\n                )\n        else:\n            # If there is no nan/inf, increment the growth tracker.\n            self._growth_tracker += 1\n            # If we have had enough consequitive intervals with no nan/inf:\n            if self._growth_tracker == self.growth_interval:\n                # Reset the tracker and hysteresis trackers,\n                self._growth_tracker = 0\n                self._hysteresis_tracker = self.hysteresis\n                # and scale up the loss scale.\n                self._scale = self._scale * self.growth_factor\n\n    def state_dict(self):\n        state_dict = {}\n        state_dict[\"scale\"] = self._scale\n        state_dict[\"growth_tracker\"] = self._growth_tracker\n        state_dict[\"hysteresis_tracker\"] = self._hysteresis_tracker\n        return state_dict\n\n    def load_state_dict(self, state_dict):\n        self._scale = state_dict[\"scale\"].cuda(torch.cuda.current_device())\n        self._growth_tracker = state_dict[\"growth_tracker\"]\n        self._hysteresis_tracker = state_dict[\"hysteresis_tracker\"]\n"
  },
  {
    "path": "codegeex/megatron/optimizer/optimizer.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Megatron optimizer.\"\"\"\n\nfrom abc import ABC\nfrom abc import abstractmethod\n\nimport torch\n\nfrom apex.multi_tensor_apply import multi_tensor_applier\nimport amp_C\n\nfrom codegeex.megatron import get_timers\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron import print_rank_0\n\nfrom .clip_grads import clip_grad_norm_fp32, count_zeros_fp32\n\n\ndef _zero_grad_group_helper(group, set_to_none):\n    \"\"\"Zero out the gradient for a group of parameters.\n    Note: copied from torch.optim.optimizer.\"\"\"\n    for param in group:\n        if param.grad is not None:\n            if set_to_none:\n                param.grad = None\n            else:\n                if param.grad.grad_fn is not None:\n                    param.grad.detach_()\n                else:\n                    param.grad.requires_grad_(False)\n                param.grad.zero_()\n\n\ndef _multi_tensor_copy_this_to_that(this, that, overflow_buf=None):\n    \"\"\"Use multi-tensor-applier to copy values from one list to another.\n    We don't have a blfoat16 implementation so for now if the overflow_buf\n    is not provided, we default back to simple loop copy to be compatible\n    with bfloat16.\"\"\"\n    if overflow_buf:\n        overflow_buf.fill_(0)\n        # Scaling with factor `1.0` is equivalent to copy.\n        multi_tensor_applier(amp_C.multi_tensor_scale, overflow_buf, [this, that], 1.0)\n    else:\n        for this_, that_ in zip(this, that):\n            that_.copy_(this_)\n\n\nclass MegatronOptimizer(ABC):\n    def __init__(\n        self, optimizer, clip_grad, log_num_zeros_in_grad, params_have_main_grad\n    ):\n        \"\"\"Input optimizer is the base optimizer for example Adam.\"\"\"\n        self.optimizer = optimizer\n        assert self.optimizer, \"no optimizer is provided.\"\n        # Set gradient clipping and logging params.\n        self.clip_grad = clip_grad\n        self.log_num_zeros_in_grad = log_num_zeros_in_grad\n        self.params_have_main_grad = params_have_main_grad\n\n    def get_parameters(self):\n        params = []\n        for param_group in self.optimizer.param_groups:\n            for param in param_group[\"params\"]:\n                params.append(param)\n        return params\n\n    def clip_grad_norm(self, clip_grad):\n        params = self.get_parameters()\n        return clip_grad_norm_fp32(params, clip_grad)\n\n    def count_zeros(self):\n        params = self.get_parameters()\n        return count_zeros_fp32(params)\n\n    @abstractmethod\n    def zero_grad(self, set_to_none=True):\n        pass\n\n    @abstractmethod\n    def get_loss_scale(self):\n        \"\"\"The output should be a cuda tensor of size 1.\"\"\"\n        pass\n\n    def scale_loss(self, loss):\n        \"\"\"Simple scaling.\"\"\"\n        return self.get_loss_scale() * loss\n\n    @abstractmethod\n    def step(self):\n        pass\n\n    @abstractmethod\n    def reload_model_params(self):\n        \"\"\"Refreshes any internal state from the current model parameters.\n        Call whenever the parameters are changed outside of the optimizer.\n        For example, when we load a model from a checkpoint  without loading\n        the optimizer, the model parameters are updated but for fp16 optimizer\n        with main parameters, the main parameters need to also be updated.\"\"\"\n        pass\n\n    @abstractmethod\n    def state_dict(self):\n        pass\n\n    @abstractmethod\n    def load_state_dict(self, state_dict):\n        pass\n\n    # Promote state so it can be retrieved or set via\n    # \"optimizer_instance.state\"\n    def _get_state(self):\n        return self.optimizer.state\n\n    def _set_state(self, value):\n        self.optimizer.state = value\n\n    state = property(_get_state, _set_state)\n\n    # Promote param_groups so it can be retrieved or set via\n    # \"optimizer_instance.param_groups\"\n    # (for example, to adjust the learning rate)\n    def _get_param_groups(self):\n        return self.optimizer.param_groups\n\n    def _set_param_groups(self, value):\n        self.optimizer.param_groups = value\n\n    param_groups = property(_get_param_groups, _set_param_groups)\n\n\nclass Float16OptimizerWithFloat16Params(MegatronOptimizer):\n    \"\"\"Float16 optimizer for fp16 and bf16 data types.\n\n    Arguments:\n        optimizer: base optimizer such as Adam or SGD\n        clip_grad: clip gradeints with this global L2 norm. Note\n            that clipping is ignored if clip_grad == 0\n        log_num_zeros_in_grad: return number of zeros in the gradients.\n        params_have_main_grad: flag indicating if parameters have\n            a `main_grad` field. If this is set, we are assuming\n            that the model parameters are store in the `main_grad`\n            field instead of the typical `grad` field. This happens\n            for the DDP cases where there is a contihuous buffer\n            holding the gradients. For example for bfloat16, we want\n            to do gradient accumulation and all-reduces in float32\n            and as a result we store those gradients in the main_grad.\n            Note that main grad is not necessarily in float32.\n        bf16: if true, the model is running in bfloat16.\n        grad_scaler: used for scaling gradients. Note that this can be\n            None. This case happens when `bf16 = True` and we don't\n            use any loss scale. Note that for `bf16 = True`, we can have\n            a constnat gradient scaler. Also for `bf16 = False`, we\n            always require a grad scaler.\n    \"\"\"\n\n    def __init__(\n        self,\n        optimizer,\n        clip_grad,\n        log_num_zeros_in_grad,\n        params_have_main_grad,\n        bf16,\n        grad_scaler,\n    ):\n\n        super(Float16OptimizerWithFloat16Params, self).__init__(\n            optimizer, clip_grad, log_num_zeros_in_grad, params_have_main_grad\n        )\n\n        self.bf16 = bf16\n        self.grad_scaler = grad_scaler\n        # None grad scaler is only supported for bf16.\n        if self.grad_scaler is None:\n            assert self.bf16, \"fp16 expects a grad scaler.\"\n\n        # Tensor used to determine if a nan/if has happend.\n        # Any non-zero value indicates inf/nan.\n        # Note that we keep this for the cases that grad scaler is none.\n        # We still record nan/inf if we have a bfloat16 with a grad scaler.\n        if self.grad_scaler:\n            self.found_inf = torch.cuda.FloatTensor([0.0])\n\n        # Dummy tensor needed for apex multi-apply tensor.\n        # For bfloat, we don't have multi-tensor apply and for now\n        # we set it to none so the multi-tensor apply gets ignored.\n        if bf16:\n            self._dummy_overflow_buf = None\n        else:\n            self._dummy_overflow_buf = torch.cuda.IntTensor([0])\n\n        # In case grad scaler is not passed, define the unity scale.\n        if self.grad_scaler is None:\n            self._scale_one = torch.cuda.FloatTensor([1.0])\n\n        # ======================\n        # main parameter stuff\n        # ======================\n\n        # Three groups of parameters:\n        #   float16_groups: original float16 parameters\n        #   fp32_from_float16_groups: fp32 copy of float16 parameters\n        #   fp32_from_fp32_groups: original fp32 parameters\n        self.float16_groups = []\n        self.fp32_from_float16_groups = []\n        self.fp32_from_fp32_groups = []\n\n        # For all the groups in the original optimizer:\n        for param_group in self.optimizer.param_groups:\n            float16_params_this_group = []\n            fp32_params_this_group = []\n            fp32_from_float16_params_this_group = []\n            # For all the parameters in this group:\n            for i, param in enumerate(param_group[\"params\"]):\n                if param.requires_grad:\n\n                    # float16 params:\n                    if param.type() in [\n                        \"torch.cuda.HalfTensor\",\n                        \"torch.cuda.BFloat16Tensor\",\n                    ]:\n                        float16_params_this_group.append(param)\n                        # Create a copy\n                        main_param = param.detach().clone().float()\n                        # Copy tensor model parallel attributes.\n                        mpu.copy_tensor_model_parallel_attributes(main_param, param)\n                        if hasattr(param, \"shared\"):\n                            main_param.shared = param.shared\n                        # Replace the optimizer params with the new fp32 copy.\n                        param_group[\"params\"][i] = main_param\n                        fp32_from_float16_params_this_group.append(main_param)\n                        # Reset existing state dict key to the new main param.\n                        if param in self.optimizer.state:\n                            self.optimizer.state[main_param] = self.optimizer.state.pop(\n                                param\n                            )\n\n                    # fp32 params.\n                    elif param.type() == \"torch.cuda.FloatTensor\":\n                        fp32_params_this_group.append(param)\n                        param_group[\"params\"][i] = param\n\n                    else:\n                        raise TypeError(\n                            \"Wrapped parameters must be one of \"\n                            \"torch.cuda.FloatTensor,  \"\n                            \"torch.cuda.HalfTensor, or \"\n                            \"torch.cuda.BFloat16Tensor. \"\n                            \"Received {}\".format(param.type())\n                        )\n\n            self.float16_groups.append(float16_params_this_group)\n            self.fp32_from_float16_groups.append(fp32_from_float16_params_this_group)\n            self.fp32_from_fp32_groups.append(fp32_params_this_group)\n\n        # Leverage state_dict() and load_state_dict() to\n        # recast preexisting per-param state tensors\n        self.optimizer.load_state_dict(self.optimizer.state_dict())\n\n    def zero_grad(self, set_to_none=True):\n        \"\"\"We only need to zero the model related parameters, i.e.,\n        float16_groups & fp32_from_fp32_groups.\"\"\"\n        for group in self.float16_groups:\n            _zero_grad_group_helper(group, set_to_none)\n        for group in self.fp32_from_fp32_groups:\n            _zero_grad_group_helper(group, set_to_none)\n\n    def get_loss_scale(self):\n        if self.grad_scaler is None:\n            return self._scale_one\n        return self.grad_scaler.scale\n\n    def _copy_model_grads_to_main_grads(self):\n        # This only needs to be done for the float16 group.\n        for model_group, main_group in zip(\n            self.float16_groups, self.fp32_from_float16_groups\n        ):\n            for model_param, main_param in zip(model_group, main_group):\n                if self.params_have_main_grad:\n                    main_param.grad = model_param.main_grad.float()\n                else:\n                    if model_param.grad is not None:\n                        main_param.grad = model_param.grad.float()\n        # For fp32 grads, we need to reset the grads to main grad.\n        if self.params_have_main_grad:\n            for model_group in self.fp32_from_fp32_groups:\n                for model_param in model_group:\n                    model_param.grad = model_param.main_grad\n\n    def _unscale_main_grads_and_check_for_nan(self):\n        main_grads = []\n        # fp32 params fromm float16 ones.\n        for main_group in self.fp32_from_float16_groups:\n            for main_param in main_group:\n                if main_param.grad is not None:\n                    main_grads.append(main_param.grad.data)\n        # Append fp32 parameters.\n        for main_group in self.fp32_from_fp32_groups:\n            for main_param in main_group:\n                if main_param.grad is not None:\n                    main_grads.append(main_param.grad.data)\n        # Reset found inf.\n        self.found_inf.fill_(0.0)\n        # Unscale and set found inf/nan\n        torch._amp_foreach_non_finite_check_and_unscale_(\n            main_grads, self.found_inf, self.grad_scaler.inv_scale\n        )\n        # Update across all model parallel instances.\n        torch.distributed.all_reduce(\n            self.found_inf,\n            op=torch.distributed.ReduceOp.MAX,\n            group=mpu.get_model_parallel_group(),\n        )\n\n        # Check for nan.\n        found_inf_flag = self.found_inf.item() > 0\n        return found_inf_flag\n\n    def _get_model_and_main_params_data_float16(self):\n        model_data = []\n        main_data = []\n        for model_group, main_group in zip(\n            self.float16_groups, self.fp32_from_float16_groups\n        ):\n            for model_param, main_param in zip(model_group, main_group):\n                model_data.append(model_param.data)\n                main_data.append(main_param.data)\n        return model_data, main_data\n\n    def _copy_main_params_to_model_params(self):\n        # Only needed for the float16 params.\n        model_data, main_data = self._get_model_and_main_params_data_float16()\n        _multi_tensor_copy_this_to_that(\n            this=main_data, that=model_data, overflow_buf=self._dummy_overflow_buf\n        )\n\n    def _copy_model_params_to_main_params(self):\n        # Only needed for the float16 params.\n        model_data, main_data = self._get_model_and_main_params_data_float16()\n        _multi_tensor_copy_this_to_that(\n            this=model_data, that=main_data, overflow_buf=self._dummy_overflow_buf\n        )\n\n    def reload_model_params(self):\n        self._copy_model_params_to_main_params()\n\n    @torch.no_grad()\n    def step(self):\n\n        timers = get_timers()\n\n        # Copy gradients from model params to main params.\n        timers(\"optimizer-copy-to-main-grad\").start()\n        self._copy_model_grads_to_main_grads()\n        timers(\"optimizer-copy-to-main-grad\").stop()\n\n        # Do unscale, check for inf, and update grad scaler only for\n        # the case that grad scaler is provided.\n        if self.grad_scaler:\n\n            # Unscale and check for inf/nan.\n            timers(\"optimizer-unscale-and-check-inf\").start()\n            found_inf_flag = self._unscale_main_grads_and_check_for_nan()\n            timers(\"optimizer-unscale-and-check-inf\").stop()\n\n            # We are done with scaling gradients\n            # so we can update the loss scale.\n            self.grad_scaler.update(found_inf_flag)\n\n            # If we found inf/nan, skip the update.\n            if found_inf_flag:\n                return False, None, None\n\n        # Clip the main gradients.\n        timers(\"optimizer-clip-main-grad\").start()\n        grad_norm = None\n        if self.clip_grad > 0.0:\n            grad_norm = self.clip_grad_norm(self.clip_grad)\n        timers(\"optimizer-clip-main-grad\").stop()\n\n        # count the zeros in the grads\n        num_zeros_in_grad = self.count_zeros() if self.log_num_zeros_in_grad else None\n\n        # Step the optimizer.\n        self.optimizer.step()\n\n        # Update params from main params.\n        timers(\"optimizer-copy-main-to-model-params\").start()\n        self._copy_main_params_to_model_params()\n        timers(\"optimizer-copy-main-to-model-params\").stop()\n\n        # Successful update.\n        return True, grad_norm, num_zeros_in_grad\n\n    def state_dict(self):\n        state_dict = {}\n        state_dict[\"optimizer\"] = self.optimizer.state_dict()\n        if self.grad_scaler:\n            state_dict[\"grad_scaler\"] = self.grad_scaler.state_dict()\n        state_dict[\"fp32_from_fp16_params\"] = self.fp32_from_float16_groups\n        return state_dict\n\n    def load_state_dict(self, state_dict):\n        # Optimizer.\n        optimizer_key = \"optimizer\"\n        if optimizer_key not in state_dict:\n            optimizer_key = \"optimizer_state_dict\"\n            print_rank_0(\n                \"***WARNING*** loading optimizer from \" \"an old checkpoint ...\"\n            )\n        self.optimizer.load_state_dict(state_dict[optimizer_key])\n\n        # Grad scaler.\n        if \"grad_scaler\" not in state_dict:\n            print_rank_0(\n                \"***WARNING*** found an old checkpoint, will not \"\n                \"load grad scaler ...\"\n            )\n        else:\n            if self.grad_scaler:\n                self.grad_scaler.load_state_dict(state_dict[\"grad_scaler\"])\n            else:\n                print_rank_0(\n                    \"***WARNING*** fould the grad scaler in the \"\n                    \"checkpoint but it is None in the class. \"\n                    \"Skipping loading grad scaler ...\"\n                )\n\n        # Copy data for the main params.\n        fp32_from_float16_params_key = \"fp32_from_fp16_params\"\n        if fp32_from_float16_params_key not in state_dict:\n            fp32_from_float16_params_key = \"fp32_from_fp16\"\n        for current_group, saved_group in zip(\n            self.fp32_from_float16_groups, state_dict[fp32_from_float16_params_key]\n        ):\n            for current_param, saved_param in zip(current_group, saved_group):\n                current_param.data.copy_(saved_param.data)\n\n\nclass FP32Optimizer(MegatronOptimizer):\n    def __init__(\n        self, optimizer, clip_grad, log_num_zeros_in_grad, params_have_main_grad\n    ):\n\n        super(FP32Optimizer, self).__init__(\n            optimizer, clip_grad, log_num_zeros_in_grad, params_have_main_grad\n        )\n\n        self._scale = torch.cuda.FloatTensor([1.0])\n\n    def zero_grad(self, set_to_none=True):\n        \"\"\"Copied from torch.optim.optimizer\"\"\"\n        for group in self.optimizer.param_groups:\n            _zero_grad_group_helper(group[\"params\"], set_to_none)\n\n    def get_loss_scale(self):\n        \"\"\"FP32 optimizer does not do any scaling.\"\"\"\n        return self._scale\n\n    @torch.no_grad()\n    def step(self):\n        \"\"\"Clip gradients (if needed) and step the base optimizer.\n        Always return successful since there is no overflow.\"\"\"\n\n        # Copy main_grads to grads.\n        if self.params_have_main_grad:\n            for param_group in self.optimizer.param_groups:\n                for param in param_group[\"params\"]:\n                    param.grad = param.main_grad\n\n        # Clip gradients.\n        grad_norm = None\n        if self.clip_grad > 0.0:\n            grad_norm = self.clip_grad_norm(self.clip_grad)\n\n        # count the zeros in the grads\n        num_zeros_in_grad = self.count_zeros() if self.log_num_zeros_in_grad else None\n\n        # Update parameters.\n        self.optimizer.step()\n\n        # No overflow for FP32 optimizer.\n        return True, grad_norm, num_zeros_in_grad\n\n    def reload_model_params(self):\n        pass\n\n    def state_dict(self):\n        return self.optimizer.state_dict()\n\n    def load_state_dict(self, state_dict):\n        self.optimizer.load_state_dict(state_dict)\n"
  },
  {
    "path": "codegeex/megatron/p2p_communication.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nfrom functools import reduce\nimport operator\nimport torch\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import mpu\n\n\ndef _communicate(\n    tensor_send_next, tensor_send_prev, recv_prev, recv_next, use_ring_exchange=False\n):\n    \"\"\"Communicate tensors between stages. Used as helper method in other\n    communication methods that are used in megatron/schedules.py.\n\n    Takes the following arguments:\n        tensor_send_next: tensor to send to next rank (no tensor sent if\n                          set to None).\n        tensor_send_prev: tensor to send to prev rank (no tensor sent if\n                          set to None).\n        recv_prev: boolean for whether tensor should be received from\n                   previous rank.\n        recv_next: boolean for whether tensor should be received from\n                   next rank.\n        use_ring_exchange: boolean for whether torch.distributed.ring_exchange()\n                           API should be used.\n\n    Returns:\n        (tensor_recv_prev, tensor_recv_next)\n    \"\"\"\n    args = get_args()\n\n    # Create placeholder tensors for receive in forward and backward directions\n    # if needed.\n    tensor_recv_prev = None\n    tensor_recv_next = None\n    tensor_shape = (args.seq_length, args.micro_batch_size, args.hidden_size)\n    if args.scatter_gather_tensors_in_pipeline:\n        tensor_chunk_shape = (\n            reduce(operator.mul, tensor_shape, 1)\n            // mpu.get_tensor_model_parallel_world_size()\n        )\n    else:\n        tensor_chunk_shape = tensor_shape\n    dtype = args.params_dtype\n    if args.fp32_residual_connection:\n        dtype = torch.float\n    if recv_prev:\n        tensor_recv_prev = torch.empty(\n            tensor_chunk_shape,\n            requires_grad=True,\n            device=torch.cuda.current_device(),\n            dtype=dtype,\n        )\n    if recv_next:\n        tensor_recv_next = torch.empty(\n            tensor_chunk_shape,\n            requires_grad=True,\n            device=torch.cuda.current_device(),\n            dtype=dtype,\n        )\n\n    # Split tensor into smaller chunks if using scatter-gather optimization.\n    if args.scatter_gather_tensors_in_pipeline:\n        if tensor_send_next is not None:\n            tensor_send_next = mpu.split_tensor_into_1d_equal_chunks(tensor_send_next)\n\n        if tensor_send_prev is not None:\n            tensor_send_prev = mpu.split_tensor_into_1d_equal_chunks(tensor_send_prev)\n\n    # Send tensors in both the forward and backward directions as appropriate.\n    if use_ring_exchange:\n        torch.distributed.ring_exchange(\n            tensor_send_prev=tensor_send_prev,\n            tensor_recv_prev=tensor_recv_prev,\n            tensor_send_next=tensor_send_next,\n            tensor_recv_next=tensor_recv_next,\n            group=mpu.get_pipeline_model_parallel_group(),\n        )\n    else:\n        ops = []\n        if tensor_send_prev is not None:\n            send_prev_op = torch.distributed.P2POp(\n                torch.distributed.isend,\n                tensor_send_prev,\n                mpu.get_pipeline_model_parallel_prev_rank(),\n            )\n            ops.append(send_prev_op)\n        if tensor_recv_prev is not None:\n            recv_prev_op = torch.distributed.P2POp(\n                torch.distributed.irecv,\n                tensor_recv_prev,\n                mpu.get_pipeline_model_parallel_prev_rank(),\n            )\n            ops.append(recv_prev_op)\n        if tensor_send_next is not None:\n            send_next_op = torch.distributed.P2POp(\n                torch.distributed.isend,\n                tensor_send_next,\n                mpu.get_pipeline_model_parallel_next_rank(),\n            )\n            ops.append(send_next_op)\n        if tensor_recv_next is not None:\n            recv_next_op = torch.distributed.P2POp(\n                torch.distributed.irecv,\n                tensor_recv_next,\n                mpu.get_pipeline_model_parallel_next_rank(),\n            )\n            ops.append(recv_next_op)\n        if len(ops) > 0:\n            reqs = torch.distributed.batch_isend_irecv(ops)\n            for req in reqs:\n                req.wait()\n    # To protect against race condition when using batch_isend_irecv().\n    torch.cuda.synchronize()\n\n    # If using scatter-gather optimization, gather smaller chunks.\n    if args.scatter_gather_tensors_in_pipeline:\n        if recv_prev:\n            tensor_recv_prev = (\n                mpu.gather_split_1d_tensor(tensor_recv_prev)\n                .view(tensor_shape)\n                .requires_grad_()\n            )\n\n        if recv_next:\n            tensor_recv_next = (\n                mpu.gather_split_1d_tensor(tensor_recv_next)\n                .view(tensor_shape)\n                .requires_grad_()\n            )\n\n    return tensor_recv_prev, tensor_recv_next\n\n\ndef recv_forward(timers=None):\n    \"\"\"Receive tensor from previous rank in pipeline (forward receive).\"\"\"\n    if mpu.is_pipeline_first_stage():\n        input_tensor = None\n    else:\n        if timers is not None:\n            timers(\"forward-recv\").start()\n        input_tensor, _ = _communicate(\n            tensor_send_next=None,\n            tensor_send_prev=None,\n            recv_prev=True,\n            recv_next=False,\n        )\n        if timers is not None:\n            timers(\"forward-recv\").stop()\n    return input_tensor\n\n\ndef recv_backward(timers=None):\n    \"\"\"Receive tensor from next rank in pipeline (backward receive).\"\"\"\n    if mpu.is_pipeline_last_stage():\n        output_tensor_grad = None\n    else:\n        if timers is not None:\n            timers(\"backward-recv\").start()\n        _, output_tensor_grad = _communicate(\n            tensor_send_next=None,\n            tensor_send_prev=None,\n            recv_prev=False,\n            recv_next=True,\n        )\n        if timers is not None:\n            timers(\"backward-recv\").stop()\n    return output_tensor_grad\n\n\ndef send_forward(output_tensor, timers=None):\n    \"\"\"Send tensor to next rank in pipeline (forward send).\"\"\"\n    if not mpu.is_pipeline_last_stage():\n        if timers is not None:\n            timers(\"forward-send\").start()\n        _communicate(\n            tensor_send_next=output_tensor,\n            tensor_send_prev=None,\n            recv_prev=False,\n            recv_next=False,\n        )\n        if timers is not None:\n            timers(\"forward-send\").stop()\n\n\ndef send_backward(input_tensor_grad, timers=None):\n    \"\"\"Send tensor to previous rank in pipeline (backward send).\"\"\"\n    if not mpu.is_pipeline_first_stage():\n        if timers is not None:\n            timers(\"backward-send\").start()\n        _communicate(\n            tensor_send_next=None,\n            tensor_send_prev=input_tensor_grad,\n            recv_prev=False,\n            recv_next=False,\n        )\n        if timers is not None:\n            timers(\"backward-send\").stop()\n\n\ndef send_forward_recv_backward(output_tensor, timers=None):\n    \"\"\"Batched send and recv with next rank in pipeline.\"\"\"\n    if mpu.is_pipeline_last_stage():\n        output_tensor_grad = None\n    else:\n        if timers is not None:\n            timers(\"forward-send-backward-recv\").start()\n        _, output_tensor_grad = _communicate(\n            tensor_send_next=output_tensor,\n            tensor_send_prev=None,\n            recv_prev=False,\n            recv_next=True,\n        )\n        if timers is not None:\n            timers(\"forward-send-backward-recv\").stop()\n    return output_tensor_grad\n\n\ndef send_backward_recv_forward(input_tensor_grad, timers=None):\n    \"\"\"Batched send and recv with previous rank in pipeline.\"\"\"\n    if mpu.is_pipeline_first_stage():\n        input_tensor = None\n    else:\n        if timers is not None:\n            timers(\"backward-send-forward-recv\").start()\n        input_tensor, _ = _communicate(\n            tensor_send_next=None,\n            tensor_send_prev=input_tensor_grad,\n            recv_prev=True,\n            recv_next=False,\n        )\n        if timers is not None:\n            timers(\"backward-send-forward-recv\").stop()\n    return input_tensor\n\n\ndef send_forward_recv_forward(output_tensor, recv_prev, timers=None):\n    \"\"\"Batched recv from previous rank and send to next rank in pipeline.\"\"\"\n    if timers is not None:\n        timers(\"forward-send-forward-recv\").start()\n    input_tensor, _ = _communicate(\n        tensor_send_next=output_tensor,\n        tensor_send_prev=None,\n        recv_prev=recv_prev,\n        recv_next=False,\n    )\n    if timers is not None:\n        timers(\"forward-send-forward-recv\").stop()\n    return input_tensor\n\n\ndef send_backward_recv_backward(input_tensor_grad, recv_next, timers=None):\n    \"\"\"Batched recv from next rank and send to previous rank in pipeline.\"\"\"\n    if timers is not None:\n        timers(\"backward-send-backward-recv\").start()\n    _, output_tensor_grad = _communicate(\n        tensor_send_next=None,\n        tensor_send_prev=input_tensor_grad,\n        recv_prev=False,\n        recv_next=recv_next,\n    )\n    if timers is not None:\n        timers(\"backward-send-backward-recv\").stop()\n    return output_tensor_grad\n\n\ndef send_forward_backward_recv_forward_backward(\n    output_tensor, input_tensor_grad, recv_prev, recv_next, timers=None\n):\n    \"\"\"Batched send and recv with previous and next ranks in pipeline.\"\"\"\n    if timers is not None:\n        timers(\"forward-backward-send-forward-backward-recv\").start()\n    input_tensor, output_tensor_grad = _communicate(\n        tensor_send_next=output_tensor,\n        tensor_send_prev=input_tensor_grad,\n        recv_prev=recv_prev,\n        recv_next=recv_next,\n    )\n    if timers is not None:\n        timers(\"forward-backward-send-forward-backward-recv\").stop()\n    return input_tensor, output_tensor_grad\n"
  },
  {
    "path": "codegeex/megatron/schedules.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\nimport torch\n\nfrom contextlib import contextmanager\nfrom torch.nn.parallel.distributed import DistributedDataParallel as torchDDP\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import get_num_microbatches\nfrom codegeex.megatron import get_timers\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron import p2p_communication\nfrom codegeex.megatron.utils import unwrap_model\nfrom codegeex.megatron.model import DistributedDataParallel as LocalDDP\nfrom codegeex.megatron.model import Float16Module\n\n\ndef get_forward_backward_func():\n    args = get_args()\n    if mpu.get_pipeline_model_parallel_world_size() > 1:\n        if args.virtual_pipeline_model_parallel_size is not None:\n            forward_backward_func = forward_backward_pipelining_with_interleaving\n        else:\n            forward_backward_func = forward_backward_pipelining_without_interleaving\n    else:\n        forward_backward_func = forward_backward_no_pipelining\n    return forward_backward_func\n\n\ndef forward_step(forward_step_func, data_iterator, model, input_tensor, losses_reduced):\n    \"\"\"Forward step for passed-in model.\n\n    If first stage, input tensor is obtained from data_iterator, otherwise\n    passed-in input_tensor is used.\n\n    Returns output tensor.\"\"\"\n    timers = get_timers()\n\n    args = get_args()\n\n    timers(\"forward-compute\").start()\n    unwrapped_model = unwrap_model(model, (torchDDP, LocalDDP, Float16Module))\n    if not args.deepspeed:\n        unwrapped_model.set_input_tensor(input_tensor)\n    else:\n        unwrapped_model.module.set_input_tensor(input_tensor)\n\n    output_tensor, loss_func = forward_step_func(data_iterator, model)\n    if mpu.is_pipeline_last_stage():\n        output_tensor = loss_func(output_tensor)\n        loss, loss_reduced = output_tensor\n        output_tensor = loss / get_num_microbatches()\n        losses_reduced.append(loss_reduced)\n    timers(\"forward-compute\").stop()\n\n    return output_tensor\n\n\ndef backward_step(\n    optimizer, input_tensor, output_tensor, output_tensor_grad, model=None\n):\n    \"\"\"Backward step through passed-in output tensor.\n\n    If last stage, output_tensor_grad is None, otherwise gradient of loss\n    with respect to stage's output tensor.\n\n    Returns gradient of loss with respect to input tensor (None if first\n    stage).\"\"\"\n    args = get_args()\n\n    if args.deepspeed:\n        assert model is not None\n\n    timers = get_timers()\n    timers(\"backward-compute\").start()\n\n    # Retain the grad on the input_tensor.\n    if input_tensor is not None:\n        input_tensor.retain_grad()\n\n    if args.deepspeed:\n        model.backward(output_tensor)\n    else:\n        # Backward pass.\n        if output_tensor_grad is None:\n            output_tensor = optimizer.scale_loss(output_tensor)\n        torch.autograd.backward(output_tensor, grad_tensors=output_tensor_grad)\n\n    # Collect the grad of the input_tensor.\n    input_tensor_grad = None\n    if input_tensor is not None:\n        input_tensor_grad = input_tensor.grad\n\n    timers(\"backward-compute\").stop()\n\n    return input_tensor_grad\n\n\n@contextmanager\ndef dummy_handler():\n    try:\n        yield\n    finally:\n        pass\n\n\ndef forward_backward_no_pipelining(\n    forward_step_func, data_iterator, model, optimizer, timers, forward_only\n):\n    \"\"\"Run forward and backward passes with no pipeline parallelism\n    (no inter-stage communication).\n\n    Returns dictionary with losses.\"\"\"\n    assert len(model) == 1\n    model = model[0]\n\n    args = get_args()\n\n    context_handler = dummy_handler\n    if isinstance(model, torchDDP):\n        context_handler = model.no_sync\n\n    if args.deepspeed:\n        model.set_gradient_accumulation_boundary(False)\n\n    losses_reduced = []\n    input_tensor, output_tensor_grad = None, None\n    with context_handler():\n        for i in range(get_num_microbatches() - 1):\n            # print_rank_0(\"====> start of microstep {i}\")\n            # print_rank_0(\"====> forward\")\n            output_tensor = forward_step(\n                forward_step_func, data_iterator, model, input_tensor, losses_reduced\n            )\n            # print_rank_0(\"====> backward\")\n            if not forward_only:\n                backward_step(\n                    optimizer, input_tensor, output_tensor, output_tensor_grad, model\n                )\n            # print_rank_0(\"====> end of microstep {i}\")\n\n    if args.deepspeed:\n        model.set_gradient_accumulation_boundary(True)\n\n    # Run computation for last microbatch out of context handler (want to\n    # synchronize gradients).\n    # print_rank_0(\"====> start of the last microstep\")\n    # print_rank_0(\"====> forward\")\n    output_tensor = forward_step(\n        forward_step_func, data_iterator, model, input_tensor, losses_reduced\n    )\n    # print_rank_0(\"====> backward\")\n    if not forward_only:\n        backward_step(optimizer, input_tensor, output_tensor, output_tensor_grad, model)\n    # print_rank_0(\"====> end of the last microstep\")\n\n    return losses_reduced\n\n\ndef forward_backward_pipelining_with_interleaving(\n    forward_step_func, data_iterator, model, optimizer, timers, forward_only\n):\n    \"\"\"Run interleaved 1F1B schedule (model split into model chunks), with\n    communication between pipeline stages as needed.\n\n    Returns dictionary with losses if the last stage, empty dict otherwise.\"\"\"\n    input_tensors = [[] for _ in range(len(model))]\n    output_tensors = [[] for _ in range(len(model))]\n    losses_reduced = []\n    if not forward_only:\n        output_tensor_grads = [[] for _ in range(len(model))]\n\n    pipeline_parallel_size = mpu.get_pipeline_model_parallel_world_size()\n    pipeline_parallel_rank = mpu.get_pipeline_model_parallel_rank()\n\n    # Compute number of warmup and remaining microbatches.\n    num_model_chunks = len(model)\n    num_microbatches = get_num_microbatches() * num_model_chunks\n    all_warmup_microbatches = False\n    if forward_only:\n        num_warmup_microbatches = num_microbatches\n    else:\n        # Run all forward passes and then all backward passes if number of\n        # microbatches is just the number of pipeline stages.\n        # Otherwise, perform (num_model_chunks-1)*pipeline_parallel_size on\n        # all workers, followed by more microbatches after depending on\n        # stage ID (more forward passes for earlier stages, later stages can\n        # immediately start with 1F1B).\n        if get_num_microbatches() == pipeline_parallel_size:\n            num_warmup_microbatches = num_microbatches\n            all_warmup_microbatches = True\n        else:\n            num_warmup_microbatches = (\n                pipeline_parallel_size - pipeline_parallel_rank - 1\n            ) * 2\n            num_warmup_microbatches += (num_model_chunks - 1) * pipeline_parallel_size\n            num_warmup_microbatches = min(num_warmup_microbatches, num_microbatches)\n    num_microbatches_remaining = num_microbatches - num_warmup_microbatches\n\n    def get_model_chunk_id(microbatch_id, forward):\n        \"\"\"Helper method to get the model chunk ID given the iteration number.\"\"\"\n        microbatch_id_in_group = microbatch_id % (\n            pipeline_parallel_size * num_model_chunks\n        )\n        model_chunk_id = microbatch_id_in_group // pipeline_parallel_size\n        if not forward:\n            model_chunk_id = num_model_chunks - model_chunk_id - 1\n        return model_chunk_id\n\n    def forward_step_helper(microbatch_id):\n        \"\"\"Helper method to run forward step with model split into chunks\n        (run set_virtual_pipeline_model_parallel_rank() before calling\n        forward_step()).\"\"\"\n        model_chunk_id = get_model_chunk_id(microbatch_id, forward=True)\n        mpu.set_virtual_pipeline_model_parallel_rank(model_chunk_id)\n\n        if mpu.is_pipeline_first_stage():\n            if len(input_tensors[model_chunk_id]) == len(\n                output_tensors[model_chunk_id]\n            ):\n                input_tensors[model_chunk_id].append(None)\n        input_tensor = input_tensors[model_chunk_id][-1]\n        output_tensor = forward_step(\n            forward_step_func,\n            data_iterator[model_chunk_id],\n            model[model_chunk_id],\n            input_tensor,\n            losses_reduced,\n        )\n        output_tensors[model_chunk_id].append(output_tensor)\n\n        return output_tensor\n\n    def backward_step_helper(microbatch_id):\n        \"\"\"Helper method to run backward step with model split into chunks\n        (run set_virtual_pipeline_model_parallel_rank() before calling\n        backward_step()).\"\"\"\n        model_chunk_id = get_model_chunk_id(microbatch_id, forward=False)\n        mpu.set_virtual_pipeline_model_parallel_rank(model_chunk_id)\n\n        if mpu.is_pipeline_last_stage():\n            if len(output_tensor_grads[model_chunk_id]) == 0:\n                output_tensor_grads[model_chunk_id].append(None)\n        input_tensor = input_tensors[model_chunk_id].pop(0)\n        output_tensor = output_tensors[model_chunk_id].pop(0)\n        output_tensor_grad = output_tensor_grads[model_chunk_id].pop(0)\n        input_tensor_grad = backward_step(\n            optimizer, input_tensor, output_tensor, output_tensor_grad\n        )\n\n        return input_tensor_grad\n\n    # Run warmup forward passes.\n    mpu.set_virtual_pipeline_model_parallel_rank(0)\n    input_tensors[0].append(p2p_communication.recv_forward(timers))\n    for k in range(num_warmup_microbatches):\n        output_tensor = forward_step_helper(k)\n\n        # Determine if tensor should be received from previous stage.\n        next_forward_model_chunk_id = get_model_chunk_id(k + 1, forward=True)\n        recv_prev = True\n        if mpu.is_pipeline_first_stage(ignore_virtual=True):\n            if next_forward_model_chunk_id == 0:\n                recv_prev = False\n        if k == (num_microbatches - 1):\n            recv_prev = False\n\n        # Don't send tensor downstream if on last stage.\n        if mpu.is_pipeline_last_stage():\n            output_tensor = None\n\n        # Send and receive tensors as appropriate (send tensors computed\n        # in this iteration; receive tensors for next iteration).\n        if (\n            k == (num_warmup_microbatches - 1)\n            and not forward_only\n            and not all_warmup_microbatches\n        ):\n            input_tensor_grad = None\n            recv_next = True\n            if mpu.is_pipeline_last_stage(ignore_virtual=True):\n                recv_next = False\n            (\n                input_tensor,\n                output_tensor_grad,\n            ) = p2p_communication.send_forward_backward_recv_forward_backward(\n                output_tensor,\n                input_tensor_grad,\n                recv_prev=recv_prev,\n                recv_next=recv_next,\n                timers=timers,\n            )\n            output_tensor_grads[num_model_chunks - 1].append(output_tensor_grad)\n        else:\n            input_tensor = p2p_communication.send_forward_recv_forward(\n                output_tensor, recv_prev, timers\n            )\n        input_tensors[next_forward_model_chunk_id].append(input_tensor)\n\n    # Run 1F1B in steady state.\n    for k in range(num_microbatches_remaining):\n        # Forward pass.\n        forward_k = k + num_warmup_microbatches\n        output_tensor = forward_step_helper(forward_k)\n\n        # Backward pass.\n        backward_k = k\n        input_tensor_grad = backward_step_helper(backward_k)\n\n        # Send output_tensor and input_tensor_grad, receive input_tensor\n        # and output_tensor_grad.\n\n        # Determine if current stage has anything to send in either direction,\n        # otherwise set tensor to None.\n        forward_model_chunk_id = get_model_chunk_id(forward_k, forward=True)\n        mpu.set_virtual_pipeline_model_parallel_rank(forward_model_chunk_id)\n        if mpu.is_pipeline_last_stage():\n            output_tensor = None\n\n        backward_model_chunk_id = get_model_chunk_id(backward_k, forward=False)\n        mpu.set_virtual_pipeline_model_parallel_rank(backward_model_chunk_id)\n        if mpu.is_pipeline_first_stage():\n            input_tensor_grad = None\n\n        # Determine if peers are sending, and where in data structure to put\n        # received tensors.\n        recv_prev = True\n        if mpu.is_pipeline_first_stage(ignore_virtual=True):\n            # First stage is ahead of last stage by (pipeline_parallel_size - 1).\n            next_forward_model_chunk_id = get_model_chunk_id(\n                forward_k - (pipeline_parallel_size - 1), forward=True\n            )\n            if next_forward_model_chunk_id == (num_model_chunks - 1):\n                recv_prev = False\n            next_forward_model_chunk_id += 1\n        else:\n            next_forward_model_chunk_id = get_model_chunk_id(\n                forward_k + 1, forward=True\n            )\n\n        recv_next = True\n        if mpu.is_pipeline_last_stage(ignore_virtual=True):\n            # Last stage is ahead of first stage by (pipeline_parallel_size - 1).\n            next_backward_model_chunk_id = get_model_chunk_id(\n                backward_k - (pipeline_parallel_size - 1), forward=False\n            )\n            if next_backward_model_chunk_id == 0:\n                recv_next = False\n            next_backward_model_chunk_id -= 1\n        else:\n            next_backward_model_chunk_id = get_model_chunk_id(\n                backward_k + 1, forward=False\n            )\n\n        # If last iteration, don't receive; we already received one extra\n        # before the start of the for loop.\n        if k == (num_microbatches_remaining - 1):\n            recv_prev = False\n\n        # Communicate tensors.\n        (\n            input_tensor,\n            output_tensor_grad,\n        ) = p2p_communication.send_forward_backward_recv_forward_backward(\n            output_tensor,\n            input_tensor_grad,\n            recv_prev=recv_prev,\n            recv_next=recv_next,\n            timers=timers,\n        )\n\n        # Put input_tensor and output_tensor_grad in data structures in the\n        # right location.\n        if recv_prev:\n            input_tensors[next_forward_model_chunk_id].append(input_tensor)\n        if recv_next:\n            output_tensor_grads[next_backward_model_chunk_id].append(output_tensor_grad)\n\n    # Run cooldown backward passes (flush out pipeline).\n    if not forward_only:\n        if all_warmup_microbatches:\n            output_tensor_grads[num_model_chunks - 1].append(\n                p2p_communication.recv_backward(timers)\n            )\n        for k in range(num_microbatches_remaining, num_microbatches):\n            input_tensor_grad = backward_step_helper(k)\n            next_backward_model_chunk_id = get_model_chunk_id(k + 1, forward=False)\n            recv_next = True\n            if mpu.is_pipeline_last_stage(ignore_virtual=True):\n                if next_backward_model_chunk_id == (num_model_chunks - 1):\n                    recv_next = False\n            if k == (num_microbatches - 1):\n                recv_next = False\n            output_tensor_grads[next_backward_model_chunk_id].append(\n                p2p_communication.send_backward_recv_backward(\n                    input_tensor_grad, recv_next, timers\n                )\n            )\n\n    return losses_reduced\n\n\ndef forward_backward_pipelining_without_interleaving(\n    forward_step_func, data_iterator, model, optimizer, timers, forward_only\n):\n    \"\"\"Run non-interleaved 1F1B schedule, with communication between pipeline\n    stages.\n\n    Returns dictionary with losses if the last stage, empty dict otherwise.\"\"\"\n    timers = get_timers()\n\n    assert len(model) == 1\n    model = model[0]\n\n    # Compute number of warmup microbatches.\n    num_microbatches = get_num_microbatches()\n    num_warmup_microbatches = (\n        mpu.get_pipeline_model_parallel_world_size()\n        - mpu.get_pipeline_model_parallel_rank()\n        - 1\n    )\n    num_warmup_microbatches = min(num_warmup_microbatches, num_microbatches)\n    num_microbatches_remaining = num_microbatches - num_warmup_microbatches\n\n    input_tensors = []\n    output_tensors = []\n    losses_reduced = []\n\n    # Run warmup forward passes.\n    for i in range(num_warmup_microbatches):\n        input_tensor = p2p_communication.recv_forward(timers)\n        output_tensor = forward_step(\n            forward_step_func, data_iterator, model, input_tensor, losses_reduced\n        )\n        p2p_communication.send_forward(output_tensor, timers)\n\n        input_tensors.append(input_tensor)\n        output_tensors.append(output_tensor)\n\n    # Before running 1F1B, need to receive first forward tensor.\n    # If all microbatches are run in warmup / cooldown phase, then no need to\n    # receive this tensor here.\n    if num_microbatches_remaining > 0:\n        input_tensor = p2p_communication.recv_forward(timers)\n\n    # Run 1F1B in steady state.\n    for i in range(num_microbatches_remaining):\n        last_iteration = i == (num_microbatches_remaining - 1)\n\n        output_tensor = forward_step(\n            forward_step_func, data_iterator, model, input_tensor, losses_reduced\n        )\n        if forward_only:\n            p2p_communication.send_forward(output_tensor, timers)\n        else:\n            output_tensor_grad = p2p_communication.send_forward_recv_backward(\n                output_tensor, timers\n            )\n\n        # Add input_tensor and output_tensor to end of list, then pop from the\n        # start of the list for backward pass.\n        input_tensors.append(input_tensor)\n        output_tensors.append(output_tensor)\n\n        if forward_only:\n            if not last_iteration:\n                input_tensor = p2p_communication.recv_forward(timers)\n        else:\n            input_tensor, output_tensor = input_tensors.pop(0), output_tensors.pop(0)\n\n            input_tensor_grad = backward_step(\n                optimizer, input_tensor, output_tensor, output_tensor_grad, model\n            )\n\n            if last_iteration:\n                input_tensor = None\n                p2p_communication.send_backward(input_tensor_grad, timers)\n            else:\n                input_tensor = p2p_communication.send_backward_recv_forward(\n                    input_tensor_grad, timers\n                )\n\n    # Run cooldown backward passes.\n    if not forward_only:\n        for i in range(num_warmup_microbatches):\n            input_tensor = input_tensors.pop(0)\n            output_tensor = output_tensors.pop(0)\n\n            output_tensor_grad = p2p_communication.recv_backward(timers)\n\n            input_tensor_grad = backward_step(\n                optimizer, input_tensor, output_tensor, output_tensor_grad, model\n            )\n\n            p2p_communication.send_backward(input_tensor_grad, timers)\n\n    return losses_reduced\n"
  },
  {
    "path": "codegeex/megatron/tokenizer/__init__.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\nfrom .tokenizer import build_tokenizer\n"
  },
  {
    "path": "codegeex/megatron/tokenizer/gpt2_tokenization.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Open AI Team Authors and The HuggingFace Inc. team.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Tokenization classes for OpenAI GPT.\"\"\"\n\nfrom __future__ import absolute_import, division, print_function, unicode_literals\n\nimport sys\nimport json\nimport logging\nimport os\nimport regex as re\nfrom io import open\n\ntry:\n    from functools import lru_cache\nexcept ImportError:\n    # Just a dummy decorator to get the checks to run on python2\n    # because honestly I don't want to support a byte-level unicode BPE\n    # tokenizer on python 2 right now.\n    def lru_cache():\n        return lambda func: func\n\n\nlogger = logging.getLogger(__name__)\n\nPRETRAINED_VOCAB_ARCHIVE_MAP = {\n    \"gpt2\": \"https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-vocab.json\",\n}\nPRETRAINED_MERGES_ARCHIVE_MAP = {\n    \"gpt2\": \"https://s3.amazonaws.com/models.huggingface.co/bert/gpt2-merges.txt\",\n}\nPRETRAINED_VOCAB_POSITIONAL_EMBEDDINGS_SIZE_MAP = {\n    \"gpt2\": 1024,\n}\nVOCAB_NAME = \"vocab.json\"\nMERGES_NAME = \"merges.txt\"\nSPECIAL_TOKENS_NAME = \"special_tokens.txt\"\n\n\n@lru_cache()\ndef bytes_to_unicode():\n    \"\"\"\n    Returns list of utf-8 byte and a corresponding list of unicode strings.\n    The reversible bpe codes work on unicode strings.\n    This means you need a large # of unicode characters in your vocab if you want to avoid UNKs.\n    When you're at something like a 10B token dataset you end up needing around 5K for decent coverage.\n    This is a signficant percentage of your normal, say, 32K bpe vocab.\n    To avoid that, we want lookup tables between utf-8 bytes and unicode strings.\n    And avoids mapping to whitespace/control characters the bpe code barfs on.\n    \"\"\"\n    _chr = unichr if sys.version_info[0] == 2 else chr\n    bs = (\n        list(range(ord(\"!\"), ord(\"~\") + 1))\n        + list(range(ord(\"¡\"), ord(\"¬\") + 1))\n        + list(range(ord(\"®\"), ord(\"ÿ\") + 1))\n    )\n    cs = bs[:]\n    n = 0\n    for b in range(2 ** 8):\n        if b not in bs:\n            bs.append(b)\n            cs.append(2 ** 8 + n)\n            n += 1\n    cs = [_chr(n) for n in cs]\n    return dict(zip(bs, cs))\n\n\ndef get_pairs(word):\n    \"\"\"Return set of symbol pairs in a word.\n\n    Word is represented as tuple of symbols (symbols being variable-length strings).\n    \"\"\"\n    pairs = set()\n    prev_char = word[0]\n    for char in word[1:]:\n        pairs.add((prev_char, char))\n        prev_char = char\n    return pairs\n\n\nclass GPT2Tokenizer(object):\n    \"\"\"\n    GPT-2 BPE tokenizer. Peculiarities:\n        - Byte-level BPE\n    \"\"\"\n\n    @classmethod\n    def from_pretrained(\n        cls, pretrained_model_name_or_path, cache_dir=None, *inputs, **kwargs\n    ):\n        \"\"\"\n        Instantiate a PreTrainedBertModel from a pre-trained model file.\n        Download and cache the pre-trained model file if needed.\n        \"\"\"\n        if pretrained_model_name_or_path in PRETRAINED_VOCAB_ARCHIVE_MAP:\n            vocab_file = PRETRAINED_VOCAB_ARCHIVE_MAP[pretrained_model_name_or_path]\n            merges_file = PRETRAINED_MERGES_ARCHIVE_MAP[pretrained_model_name_or_path]\n            special_tokens_file = None\n        else:\n            vocab_file = os.path.join(pretrained_model_name_or_path, VOCAB_NAME)\n            merges_file = os.path.join(pretrained_model_name_or_path, MERGES_NAME)\n            special_tokens_file = os.path.join(\n                pretrained_model_name_or_path, SPECIAL_TOKENS_NAME\n            )\n            if not os.path.exists(special_tokens_file):\n                special_tokens_file = None\n            else:\n                logger.info(\n                    \"loading special tokens file {}\".format(special_tokens_file)\n                )\n        # redirect to the cache, if necessary\n        try:\n            from .file_utils import cached_path\n\n            resolved_vocab_file = cached_path(vocab_file, cache_dir=cache_dir)\n            resolved_merges_file = cached_path(merges_file, cache_dir=cache_dir)\n        except EnvironmentError:\n            logger.error(\n                \"Model name '{}' was not found in model name list ({}). \"\n                \"We assumed '{}' was a path or url but couldn't find files {} and {} \"\n                \"at this path or url.\".format(\n                    pretrained_model_name_or_path,\n                    \", \".join(PRETRAINED_VOCAB_ARCHIVE_MAP.keys()),\n                    pretrained_model_name_or_path,\n                    vocab_file,\n                    merges_file,\n                )\n            )\n            return None\n        if resolved_vocab_file == vocab_file and resolved_merges_file == merges_file:\n            logger.info(\"loading vocabulary file {}\".format(vocab_file))\n            logger.info(\"loading merges file {}\".format(merges_file))\n        else:\n            logger.info(\n                \"loading vocabulary file {} from cache at {}\".format(\n                    vocab_file, resolved_vocab_file\n                )\n            )\n            logger.info(\n                \"loading merges file {} from cache at {}\".format(\n                    merges_file, resolved_merges_file\n                )\n            )\n        if (\n            pretrained_model_name_or_path\n            in PRETRAINED_VOCAB_POSITIONAL_EMBEDDINGS_SIZE_MAP\n        ):\n            # if we're using a pretrained model, ensure the tokenizer wont index sequences longer\n            # than the number of positional embeddings\n            max_len = PRETRAINED_VOCAB_POSITIONAL_EMBEDDINGS_SIZE_MAP[\n                pretrained_model_name_or_path\n            ]\n            kwargs[\"max_len\"] = min(kwargs.get(\"max_len\", int(1e12)), max_len)\n        # Instantiate tokenizer.\n        if special_tokens_file and \"special_tokens\" not in kwargs:\n            special_tokens = (\n                open(special_tokens_file, encoding=\"utf-8\").read().split(\"\\n\")[:-1]\n            )\n        else:\n            special_tokens = kwargs.pop(\"special_tokens\", [])\n        tokenizer = cls(\n            resolved_vocab_file,\n            resolved_merges_file,\n            special_tokens=special_tokens,\n            *inputs,\n            **kwargs\n        )\n        return tokenizer\n\n    def __init__(\n        self,\n        vocab_file,\n        merges_file,\n        errors=\"replace\",\n        special_tokens=None,\n        max_len=None,\n    ):\n        self.max_len = max_len if max_len is not None else int(1e12)\n        self.encoder = json.load(open(vocab_file))\n        self.decoder = {v: k for k, v in self.encoder.items()}\n        self.errors = errors  # how to handle errors in decoding\n        self.byte_encoder = bytes_to_unicode()\n        self.byte_decoder = {v: k for k, v in self.byte_encoder.items()}\n        bpe_data = open(merges_file, encoding=\"utf-8\").read().split(\"\\n\")[1:-1]\n        bpe_merges = [tuple(merge.split()) for merge in bpe_data]\n        self.bpe_ranks = dict(zip(bpe_merges, range(len(bpe_merges))))\n        self.cache = {}\n\n        # Should haved added re.IGNORECASE so BPE merges can happen for\n        # capitalized versions of contractions\n        self.pat = re.compile(\n            r\"\"\"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+\"\"\"\n        )\n\n        self.special_tokens = {}\n        self.special_tokens_decoder = {}\n        self.set_special_tokens(special_tokens)\n\n    def __len__(self):\n        return len(self.encoder) + len(self.special_tokens)\n\n    def set_special_tokens(self, special_tokens):\n        \"\"\"Add a list of additional tokens to the encoder.\n        The additional tokens are indexed starting from the last index of the\n        current vocabulary in the order of the `special_tokens` list.\n        \"\"\"\n        if not special_tokens:\n            self.special_tokens = {}\n            self.special_tokens_decoder = {}\n            return\n        self.special_tokens = dict(\n            (tok, len(self.encoder) + i) for i, tok in enumerate(special_tokens)\n        )\n        self.special_tokens_decoder = {v: k for k, v in self.special_tokens.items()}\n        logger.info(\"Special tokens {}\".format(self.special_tokens))\n\n    def bpe(self, token):\n        if token in self.cache:\n            return self.cache[token]\n        word = tuple(token)\n        pairs = get_pairs(word)\n\n        if not pairs:\n            return token\n\n        while True:\n            bigram = min(pairs, key=lambda pair: self.bpe_ranks.get(pair, float(\"inf\")))\n            if bigram not in self.bpe_ranks:\n                break\n            first, second = bigram\n            new_word = []\n            i = 0\n            while i < len(word):\n                try:\n                    j = word.index(first, i)\n                    new_word.extend(word[i:j])\n                    i = j\n                except BaseException:\n                    new_word.extend(word[i:])\n                    break\n\n                if word[i] == first and i < len(word) - 1 and word[i + 1] == second:\n                    new_word.append(first + second)\n                    i += 2\n                else:\n                    new_word.append(word[i])\n                    i += 1\n            new_word = tuple(new_word)\n            word = new_word\n            if len(word) == 1:\n                break\n            else:\n                pairs = get_pairs(word)\n        word = \" \".join(word)\n        self.cache[token] = word\n        return word\n\n    def tokenize(self, text):\n        \"\"\"Tokenize a string.\"\"\"\n        bpe_tokens = []\n        for token in re.findall(self.pat, text):\n            if sys.version_info[0] == 2:\n                token = \"\".join(self.byte_encoder[ord(b)] for b in token)\n            else:\n                token = \"\".join(self.byte_encoder[b] for b in token.encode(\"utf-8\"))\n            bpe_tokens.extend(bpe_token for bpe_token in self.bpe(token).split(\" \"))\n        return bpe_tokens\n\n    def convert_tokens_to_ids(self, tokens):\n        \"\"\"Converts a sequence of tokens into ids using the vocab.\"\"\"\n        ids = []\n        if isinstance(tokens, str) or (\n            sys.version_info[0] == 2 and isinstance(tokens, unicode)\n        ):\n            if tokens in self.special_tokens:\n                return self.special_tokens[tokens]\n            else:\n                return self.encoder.get(tokens, 0)\n        for token in tokens:\n            if token in self.special_tokens:\n                ids.append(self.special_tokens[token])\n            else:\n                ids.append(self.encoder.get(token, 0))\n        if len(ids) > self.max_len:\n            logger.warning(\n                \"Token indices sequence length is longer than the specified maximum \"\n                \" sequence length for this OpenAI GPT model ({} > {}). Running this\"\n                \" sequence through the model will result in indexing errors\".format(\n                    len(ids), self.max_len\n                )\n            )\n        return ids\n\n    def convert_ids_to_tokens(self, ids, skip_special_tokens=False):\n        \"\"\"Converts a sequence of ids in BPE tokens using the vocab.\"\"\"\n        tokens = []\n        for i in ids:\n            if i in self.special_tokens_decoder:\n                if not skip_special_tokens:\n                    tokens.append(self.special_tokens_decoder[i])\n            else:\n                tokens.append(self.decoder[i])\n        return tokens\n\n    def encode(self, text):\n        return self.convert_tokens_to_ids(self.tokenize(text))\n\n    def decode(self, tokens):\n        text = \"\".join([self.decoder[token] for token in tokens])\n        text = bytearray([self.byte_decoder[c] for c in text]).decode(\n            \"utf-8\", errors=self.errors\n        )\n        return text\n\n    def save_vocabulary(self, vocab_path):\n        \"\"\"Save the tokenizer vocabulary and merge files to a directory.\"\"\"\n        if not os.path.isdir(vocab_path):\n            logger.error(\n                \"Vocabulary path ({}) should be a directory\".format(vocab_path)\n            )\n            return\n        vocab_file = os.path.join(vocab_path, VOCAB_NAME)\n        merge_file = os.path.join(vocab_path, MERGES_NAME)\n        special_tokens_file = os.path.join(vocab_path, SPECIAL_TOKENS_NAME)\n\n        with open(vocab_file, \"w\", encoding=\"utf-8\") as f:\n            f.write(json.dumps(self.encoder, ensure_ascii=False))\n\n        index = 0\n        with open(merge_file, \"w\", encoding=\"utf-8\") as writer:\n            writer.write(\"#version: 0.2\\n\")\n            for bpe_tokens, token_index in sorted(\n                self.bpe_ranks.items(), key=lambda kv: kv[1]\n            ):\n                if index != token_index:\n                    logger.warning(\n                        \"Saving vocabulary to {}: BPE merge indices are not consecutive.\"\n                        \" Please check that the tokenizer is not corrupted!\".format(\n                            merge_file\n                        )\n                    )\n                    index = token_index\n                writer.write(\" \".join(bpe_tokens) + \"\\n\")\n                index += 1\n\n        index = len(self.encoder)\n        with open(special_tokens_file, \"w\", encoding=\"utf-8\") as writer:\n            for token, token_index in sorted(\n                self.special_tokens.items(), key=lambda kv: kv[1]\n            ):\n                if index != token_index:\n                    logger.warning(\n                        \"Saving special tokens vocabulary to {}: BPE indices are not consecutive.\"\n                        \" Please check that the tokenizer is not corrupted!\".format(\n                            special_tokens_file\n                        )\n                    )\n                    index = token_index\n                writer.write(token + \"\\n\")\n                index += 1\n\n        return vocab_file, merge_file, special_tokens_file\n"
  },
  {
    "path": "codegeex/megatron/tokenizer/tokenizer.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"CodeGeeX tokenizers.\"\"\"\n\nimport numpy as np\nfrom abc import ABC\nfrom abc import abstractmethod\n\nfrom .gpt2_tokenization import GPT2Tokenizer\nfrom transformers import AutoTokenizer\n\n\ndef encode_whitespaces(text: str, start_extra_id: int=10, max_len: int=10):\n    \"\"\"Encode whitespaces to extra tokens.\n\n    >>> encode_whitespaces('a\\\\n  b\\\\n   c', 10, 10)\n    'a\\\\n<|extratoken_10|>b\\\\n<|extratoken_11|>c'\n    \"\"\"\n    for i in np.arange(max_len, 1, -1):\n        text = text.replace(\" \" * i, f\"<|extratoken_{start_extra_id + i - 2}|>\")\n    return text\n\n\ndef decode_whitespaces(text: str, start_extra_id: int=10, max_len: int=10):\n    \"\"\"Decode the whitespace-encoded strings produced by encode_whitespace.\n\n    >>> text = 'a\\\\n  b\\\\n   c'\n    >>> s, l = 10, 10\n    >>> text == decode_whitespaces(encode_whitespaces(text, s, l), s, l)\n    True\n    \"\"\"\n    for l in range(2, max_len + 1):\n        token_id = start_extra_id - 2 + l\n        token = f\"<|extratoken_{token_id}|>\"\n        text = text.replace(token, \" \" * l)\n    return text\n\n\ndef build_hgf_tokenizer(args):\n    \"\"\"Initialize tokenizer.\"\"\"\n    tokenizer_path = args.tokenizer_path\n    if args.rank == 0:\n        print(f\"> building huggingface tokenizer from {tokenizer_path} ...\", flush=True)\n    assert tokenizer_path is not None, \"Tokenizer path must be provided.\"\n\n    tokenizer = AutoTokenizer.from_pretrained(tokenizer_path)\n    if args.rank == 0:\n        print(f\"  > eos_token = {tokenizer.eos_token}\", flush=True)\n\n    ws_start_id = args.ws_encoding_start_id if \"ws_encoding_start_id\" in args else None\n    ws_len = args.ws_encoding_length if \"ws_encoding_length\" in args else None\n\n    return HgfTokenizerWrapper(\n        tokenizer, ws_start=ws_start_id, ws_len=ws_len\n    )\n\n\ndef build_tokenizer(args):\n    \"\"\"Initialize tokenizer.\"\"\"\n    if \"tokenizer_path\" in args and args.tokenizer_path is not None:\n        # build huggingface tokenizer\n        tokenizer = build_hgf_tokenizer(args)\n        args.padded_vocab_size = _vocab_size_with_padding(tokenizer.vocab_size, args)\n        return tokenizer\n\n    if args.rank == 0:\n        print(\"> building {} tokenizer ...\".format(args.tokenizer_type), flush=True)\n\n    # Select and instantiate the tokenizer.\n    assert args.vocab_file is not None\n    if args.tokenizer_type == \"GPT2BPETokenizer\":\n        assert args.merge_file is not None\n        tokenizer = _GPT2BPETokenizer(args.vocab_file, args.merge_file)\n    else:\n        raise NotImplementedError(\n            \"{} tokenizer is not \" \"implemented.\".format(args.tokenizer_type)\n        )\n\n    # Add vocab size.\n    args.padded_vocab_size = _vocab_size_with_padding(tokenizer.vocab_size, args)\n\n    return tokenizer\n\n\ndef _vocab_size_with_padding(orig_vocab_size, args):\n    \"\"\"Pad vocab size so it is divisible by model parallel size and\n    still having GPU friendly size.\"\"\"\n\n    after = orig_vocab_size\n    if args.make_vocab_size_divisible_by > orig_vocab_size:\n        multiple = args.make_vocab_size_divisible_by\n    else:\n        multiple = args.make_vocab_size_divisible_by * args.tensor_model_parallel_size\n    while (after % multiple) != 0:\n        after += 1\n    if args.rank == 0:\n        print(\n            \" > padded vocab (size: {}) with {} dummy tokens \"\n            \"(new size: {})\".format(orig_vocab_size, after - orig_vocab_size, after),\n            flush=True,\n        )\n    return after\n\n\nclass AbstractTokenizer(ABC):\n    \"\"\"Abstract class for tokenizer.\"\"\"\n\n    def __init__(self, name):\n        self.name = name\n        super().__init__()\n\n    @property\n    @abstractmethod\n    def vocab_size(self):\n        pass\n\n    @property\n    @abstractmethod\n    def vocab(self):\n        \"\"\"Dictionary from vocab text token to id token.\"\"\"\n        pass\n\n    @property\n    @abstractmethod\n    def inv_vocab(self):\n        \"\"\"Dictionary from vocab id token to text token.\"\"\"\n        pass\n\n    @abstractmethod\n    def tokenize(self, text):\n        pass\n\n    def detokenize(self, token_ids):\n        raise NotImplementedError(\n            \"detokenizer is not implemented for {} \" \"tokenizer\".format(self.name)\n        )\n\n    @property\n    def cls(self):\n        raise NotImplementedError(\n            \"CLS is not provided for {} \" \"tokenizer\".format(self.name)\n        )\n\n    @property\n    def sep(self):\n        raise NotImplementedError(\n            \"SEP is not provided for {} \" \"tokenizer\".format(self.name)\n        )\n\n    @property\n    def pad(self):\n        raise NotImplementedError(\n            \"PAD is not provided for {} \" \"tokenizer\".format(self.name)\n        )\n\n    @property\n    def eod(self):\n        raise NotImplementedError(\n            \"EOD is not provided for {} \" \"tokenizer\".format(self.name)\n        )\n\n    @property\n    def mask(self):\n        raise NotImplementedError(\n            \"MASK is not provided for {} \" \"tokenizer\".format(self.name)\n        )\n\n\nclass _GPT2BPETokenizer(AbstractTokenizer):\n    \"\"\"Original GPT2 BPE tokenizer.\"\"\"\n\n    def __init__(self, vocab_file, merge_file):\n        name = \"GPT2 BPE\"\n        super().__init__(name)\n\n        self.tokenizer = GPT2Tokenizer(\n            vocab_file, merge_file, errors=\"replace\", special_tokens=[], max_len=None\n        )\n        self.eod_id = self.tokenizer.encoder[\"<|endoftext|>\"]\n\n    @property\n    def vocab_size(self):\n        return len(self.tokenizer.encoder)\n\n    @property\n    def vocab(self):\n        return self.tokenizer.encoder\n\n    @property\n    def inv_vocab(self):\n        return self.tokenizer.decoder\n\n    def tokenize(self, text):\n        return self.tokenizer.encode(text)\n\n    def detokenize(self, token_ids):\n        return self.tokenizer.decode(token_ids)\n\n    @property\n    def eod(self):\n        return self.eod_id\n\n\nclass HgfTokenizerWrapper(AbstractTokenizer):\n    \"\"\"Wrapper for Hugging Face tokenizer.\"\"\"\n\n    def __init__(\n            self,\n            tokenizer,\n            ws_start: int = None,\n            ws_len: int = None,\n    ):\n        super(HgfTokenizerWrapper, self).__init__(tokenizer.__class__.__name__)\n        self.tokenizer = tokenizer\n        self.ws_start = ws_start\n        self.ws_len = ws_len\n\n    def tokenize(self, text):\n        if self.ws_start:\n            text = encode_whitespaces(text, self.ws_start, self.ws_len)\n        input_ids = self.tokenizer(text, is_split_into_words=False).input_ids\n\n        return input_ids\n\n    def detokenize(self, token_ids):\n        text = self.tokenizer.decode(token_ids, skip_special_tokens=False)\n        if self.ws_start:\n            text = decode_whitespaces(text, self.ws_start, self.ws_len)\n        return text\n\n    @property\n    def eod(self):\n        return self.tokenizer.eos_token_id\n\n    @property\n    def inv_vocab(self):\n        return len(self.tokenizer.decoder)\n\n    @property\n    def vocab(self):\n        return self.tokenizer.vocab\n\n    @property\n    def vocab_size(self):\n        return len(self.vocab)\n"
  },
  {
    "path": "codegeex/megatron/tools/collect_env.py",
    "content": "import os\n\n\nENV_NAMES = [\"CUDA_HOME\", \"LD_LIBRARY_PATH\", \"PATH\", \"TORCH_EXTENSIONS_DIR\", \"CUDA_LAUNCH_BLOCKING\"]\n\n\ndef main():\n    s = \"\"\n    for name in ENV_NAMES:\n        if name in os.environ:\n            value = os.environ[name]\n            s += \"{}={}\\n\".format(name, value)\n            print(f\"{name}={value}\")\n        else:\n            print(f\"{name} is not set\")\n\n    # write env vars to .deepspeed_env\n    with open(\".deepspeed_env\", \"w\") as f:\n        f.write(s)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/megatron/tools/finetune_codegeex.py",
    "content": "import os\nimport torch\nimport logging\n\nlogging.getLogger(\"torch\").setLevel(logging.WARNING)\n\nimport deepspeed\nfrom deepspeed.runtime.utils import see_memory_usage\nfrom functools import partial\n\nfrom codegeex.megatron import get_args, print_rank_0, get_timers,get_tokenizer, mpu\nfrom codegeex.megatron.data.prompt_dataset import build_train_valid_test_datasets\nfrom codegeex.megatron.model import CodeGeeXModel\nfrom codegeex.megatron.training import pretrain\nfrom codegeex.megatron.utils import get_ltor_masks_and_position_ids\nfrom codegeex.megatron.utils import average_losses_across_data_parallel_group\n\n\ndef model_provider(pre_process=True, post_process=True):\n    \"\"\"Build the model.\"\"\"\n\n    print_rank_0(\"building GPT model ...\")\n    see_memory_usage(f\"Before Building Model\", force=True)\n\n    args = get_args()\n    with deepspeed.zero.Init(\n        data_parallel_group=mpu.get_data_parallel_group(),\n        remote_device=None if args.remote_device == \"none\" else args.remote_device,\n        config_dict_or_path=args.deepspeed_config,\n        enabled=args.zero_stage == 3,\n        mpu=mpu,\n    ):\n        if args.deepspeed and not args.no_pipeline_parallel:\n            model = CodeGeeXModelPipe(num_tokentypes=0, parallel_output=True)\n            # This is a hack to give us a reference to get_batch_pipe from within training.py\n            # We need to call model.set_batch_fn after deepspeed.initialize\n            model._megatron_batch_fn = get_batch_pipe\n\n            # Predompute the attention mask and store it in args. This avoids having to\n            # pipeline it as an activation during training. The mask is constant, and thus\n            # we can reuse it.\n            attention_mask = torch.tril(\n                torch.ones(\n                    (1, args.seq_length, args.seq_length),\n                    device=torch.cuda.current_device(),\n                )\n            ).view(1, 1, args.seq_length, args.seq_length)\n\n            # Convert attention mask to binary:\n            attention_mask = attention_mask < 0.5\n            if args.fp16:\n                attention_mask = attention_mask.half()\n            elif args.bf16:\n                attention_mask = attention_mask.bfloat16()\n\n            # Attention mask must be bool.\n            args.attn_mask = attention_mask.to(torch.bool)\n\n        else:\n            model = CodeGeeXModel(\n                num_tokentypes=0,\n                parallel_output=True,\n            )\n            \n            if args.load_state is not None:\n                timers = get_timers()\n                print_rank_0(\"Loading warmstarting model states ...\")\n                timers(\"load-model-states\").start()\n                mp_rank = mpu.get_tensor_model_parallel_rank()\n                if os.path.isdir(args.load_state):\n                    model_path = os.path.join(\n                        args.load_state, \"mp_rank_{:02d}_model_states.pt\".format(mp_rank)\n                    )\n                else:\n                    model_path = args.load_state\n                print_rank_0(f\"Loading model from {model_path} ...\")\n                state_dict = torch.load(model_path, map_location=\"cpu\")\n                if \"module\" in state_dict:\n                    state_dict = state_dict[\"module\"]  # strip other client states\n                model.load_state_dict(state_dict)\n                timers(\"load-model-states\").stop()\n                timers.log([\"load-model-states\"])\n    see_memory_usage(f\"After Building Model\", force=True)\n    \n    return model\n\n\ndef get_batch(data_iterator):\n    \"\"\"Generate a batch\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Items and their type.\n    keys = [\"input_ids\", \"attention_mask\", \"labels\"]\n    datatype = torch.int64\n\n    # Broadcast data.\n    if data_iterator is not None:\n        data = next(data_iterator)\n    else:\n        data = None\n    data_b = mpu.broadcast_data(keys, data, datatype)\n\n    # Unpack.\n    tokens_ = data_b[\"input_ids\"].contiguous()\n    # attn_mask_ = data_b[\"attention_mask\"].contiguous()\n    labels_ = data_b[\"labels\"].contiguous()\n\n    tokens = tokens_[:, :-1]\n    labels = labels_[:, 1:]\n\n    # Get the masks and postition ids.\n    attention_mask, loss_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n\n    # mask loss to avoid predicting prompt and paddings\n    prompt_loss_mask = labels >= 0\n    loss_mask = prompt_loss_mask * loss_mask\n\n    return tokens, labels, loss_mask, attention_mask, position_ids\n\n\ndef get_batch_pipe(data):\n    \"\"\"Modification of `get_batch` to work on `next(data_iterator)` instead of `data_iterator`\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Items and their type.\n    keys = [\"input_ids\"]\n    datatype = torch.int64\n\n    # Broadcast data.\n    data_b = mpu.broadcast_data(keys, data, datatype)\n\n    # Unpack.\n    tokens_ = data_b[\"input_ids\"].long()\n    labels = tokens_[:, 1:].contiguous()\n    tokens = tokens_[:, :-1].contiguous()\n\n    # Get the masks and postition ids.\n    attention_mask, loss_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n    \n    return (tokens, position_ids, attention_mask), (labels, loss_mask)\n\n\ndef loss_func(loss_mask, output_tensor):\n    args = get_args()\n\n    def compute_lm_loss(losses: torch.Tensor, loss_mask: torch.Tensor):\n        if args.gold:\n            losses_ = losses.detach()\n            prob = torch.exp(-losses_)  # Pθ(s)\n            torch.sqrt_(prob)  # Pθ(s)ᵃ\n            torch.clamp_min_(prob, args.gold_beta)  # max(Pθ(s)ᵃ,β)\n            losses = prob * losses\n\n        loss_mask = loss_mask.view(-1).float()\n        loss = torch.sum(losses.view(-1) * loss_mask) / torch.clamp_min(loss_mask.sum(), 1e-8)\n\n        return loss\n\n    losses = output_tensor.float()\n    loss = compute_lm_loss(losses, loss_mask)\n\n    # Reduce loss for logging.\n    averaged_loss = average_losses_across_data_parallel_group([loss])\n\n    return loss, {\"lm loss\": averaged_loss[0]}\n\n\ndef valid_loss_func(loss_mask, output_tensor):\n    args = get_args()\n\n    def compute_lm_loss(losses: torch.Tensor, loss_mask: torch.Tensor):\n        loss_mask = loss_mask.view(-1).float()\n        loss = torch.sum(losses.view(-1) * loss_mask) / torch.clamp_min(loss_mask.sum(), 1e-8)\n\n        return loss\n\n    losses = output_tensor.float()\n    loss = compute_lm_loss(losses, loss_mask)\n\n    # Reduce loss for logging.\n    averaged_loss = average_losses_across_data_parallel_group([loss])\n    \n    return loss, {\"lm loss\": averaged_loss[0]}\n\n\ndef forward_step(data_iterator, model):\n    \"\"\"Forward step.\"\"\"\n    args = get_args()\n    timers = get_timers()\n\n    # Get the batch.\n    timers(\"batch-generator\").start()\n    tokens, labels, loss_mask, attention_mask, position_ids = get_batch(data_iterator)\n    timers(\"batch-generator\").stop()\n\n    output_tensor = model(tokens, position_ids, attention_mask, labels=labels)\n\n    return output_tensor, partial(loss_func, loss_mask)\n\n\ndef valid_forward_step(data_iterator, model):\n    \"\"\"Forward step.\"\"\"\n    args = get_args()\n    timers = get_timers()\n\n    # Get the batch.\n    timers(\"batch-generator\").start()\n    tokens, labels, loss_mask, attention_mask, position_ids = get_batch(data_iterator)\n    timers(\"batch-generator\").stop()\n\n    output_tensor = model(tokens, position_ids, attention_mask, labels=labels)\n\n    return output_tensor, partial(valid_loss_func, loss_mask)\n\n\ndef train_valid_test_datasets_provider(train_val_test_num_samples):\n    \"\"\"Build train, valid, and test datasets.\"\"\"\n    args = get_args()\n    \n    print_rank_0(\"> building train, validation, and test datasets \" \"for GPT ...\")\n    if args.co_evaluation:\n        def dataset_partition_path_parsing(data_path):\n            dataset_path = {}\n            for index in range(len(data_path)):\n                dataset_path[data_path[index]] = data_path[index]\n            return dataset_path\n        assert args.valid_data_path is not None, \"Valid data path must be given when --co-evaluation is turned on.\"\n        valid_data_path = dataset_partition_path_parsing(args.valid_data_path)\n        if args.test_data_path is not None:\n            test_data_path = dataset_partition_path_parsing(args.test_data_path)\n        else:\n            test_data_path = None\n        train_ds, _, _ = build_train_valid_test_datasets(\n            data_prefix=args.data_path,\n            data_impl=args.data_impl,\n            splits_string=\"1,0,0\",\n            train_valid_test_num_samples=train_val_test_num_samples,\n            seq_length=args.seq_length,\n            seed=args.seed,\n            skip_warmup=(not args.mmap_warmup),\n        )\n        valid_ds = {}\n        for key, value in valid_data_path.items():\n            _, valid_ds_item, _ = build_train_valid_test_datasets(\n                data_prefix=[value],\n                data_impl=args.data_impl,\n                splits_string=\"0,1,0\",\n                train_valid_test_num_samples=train_val_test_num_samples,\n                seq_length=args.seq_length,\n                seed=args.seed,\n                skip_warmup=(not args.mmap_warmup),\n            )\n            valid_ds[key] = valid_ds_item\n        if test_data_path is not None:\n            test_ds = {}\n            for key, value in test_data_path.items():\n                _, _, test_ds_item = build_train_valid_test_datasets(\n                    data_prefix=[value],\n                    data_impl=args.data_impl,\n                    splits_string=\"0,0,1\",\n                    train_valid_test_num_samples=train_val_test_num_samples,\n                    seq_length=args.seq_length,\n                    seed=args.seed,\n                    skip_warmup=(not args.mmap_warmup),\n                )\n                test_ds[key] = test_ds_item\n        else:\n            test_ds = None\n    elif args.valid_data_path is None:\n        train_ds, valid_ds, test_ds = build_train_valid_test_datasets(\n            data_prefix=args.data_path,\n            data_impl=args.data_impl,\n            splits_string=args.split,\n            train_valid_test_num_samples=train_val_test_num_samples,\n            seq_length=args.seq_length,\n            seed=args.seed,\n            skip_warmup=(not args.mmap_warmup),\n        )\n    else:\n        train_ds, _, test_ds = build_train_valid_test_datasets(\n            data_prefix=args.data_path,\n            data_impl=args.data_impl,\n            splits_string=\"100,0,0\",\n            train_valid_test_num_samples=train_val_test_num_samples,\n            seq_length=args.seq_length,\n            seed=args.seed,\n            skip_warmup=(not args.mmap_warmup),\n        )\n\n        _, valid_ds, _ = build_train_valid_test_datasets(\n            data_prefix=args.valid_data_path,\n            data_impl=args.data_impl,\n            splits_string=\"0,100,0\",\n            train_valid_test_num_samples=train_val_test_num_samples,\n            seq_length=args.seq_length,\n            seed=args.seed,\n            skip_warmup=(not args.mmap_warmup),\n        )\n\n    print_rank_0(\"> finished creating GPT datasets ...\")\n\n    return train_ds, valid_ds, test_ds\n\n\nif __name__ == \"__main__\":\n    pretrain(\n        train_valid_test_datasets_provider,\n        model_provider,\n        forward_step,\n        valid_forward_step,\n        args_defaults={\"tokenizer_type\": \"GPT2BPETokenizer\"},\n    )"
  },
  {
    "path": "codegeex/megatron/tools/pretrain_codegeex.py",
    "content": "import os\nimport subprocess\nimport torch\nimport logging\n\nlogging.getLogger(\"torch\").setLevel(logging.WARNING)\n\nimport deepspeed\nfrom deepspeed.runtime.utils import see_memory_usage\nfrom functools import partial\n\nfrom codegeex.megatron import get_args, print_rank_0, get_timers,get_tokenizer, mpu\nfrom codegeex.megatron.data.prompt_dataset import build_train_valid_test_datasets\nfrom codegeex.megatron.model import CodeGeeXModel  #, CodeGeeXModelPipe\nfrom codegeex.megatron.training import pretrain\nfrom codegeex.megatron.utils import get_ltor_masks_and_position_ids\nfrom codegeex.megatron.utils import average_losses_across_data_parallel_group\n\n\ndef model_provider(pre_process=True, post_process=True):\n    \"\"\"Build the model.\"\"\"\n\n    print_rank_0(\"building GPT model ...\")\n    see_memory_usage(f\"Before Building Model\", force=True)\n\n    args = get_args()\n    with deepspeed.zero.Init(\n        data_parallel_group=mpu.get_data_parallel_group(),\n        remote_device=None if args.remote_device == \"none\" else args.remote_device,\n        config_dict_or_path=args.deepspeed_config,\n        enabled=args.zero_stage == 3,\n        mpu=mpu,\n    ):\n        if args.deepspeed and not args.no_pipeline_parallel:\n            model = CodeGeeXModelPipe(num_tokentypes=0, parallel_output=True)\n            # This is a hack to give us a reference to get_batch_pipe from within training.py\n            # We need to call model.set_batch_fn after deepspeed.initialize\n            model._megatron_batch_fn = get_batch_pipe\n\n            # Predompute the attention mask and store it in args. This avoids having to\n            # pipeline it as an activation during training. The mask is constant, and thus\n            # we can reuse it.\n            attention_mask = torch.tril(\n                torch.ones(\n                    (1, args.seq_length, args.seq_length),\n                    device=torch.cuda.current_device(),\n                )\n            ).view(1, 1, args.seq_length, args.seq_length)\n\n            # Convert attention mask to binary:\n            attention_mask = attention_mask < 0.5\n            if args.fp16:\n                attention_mask = attention_mask.half()\n            elif args.bf16:\n                attention_mask = attention_mask.bfloat16()\n\n            # Attention mask must be bool.\n            args.attn_mask = attention_mask.to(torch.bool)\n\n        else:\n            model = CodeGeeXModel(\n                num_tokentypes=0,\n                parallel_output=True,\n            )\n            \n            if args.load_state is not None:\n                timers = get_timers()\n                print_rank_0(\"Loading warmstarting model states ...\")\n                timers(\"load-model-states\").start()\n                mp_rank = mpu.get_tensor_model_parallel_rank()\n                if os.path.isdir(args.load_state):\n                    model_path = os.path.join(\n                        args.load_state, \"mp_rank_{:02d}_model_states.pt\".format(mp_rank)\n                    )\n                else:\n                    model_path = args.load_state\n                print_rank_0(f\"Loading model from {model_path} ...\")\n                state_dict = torch.load(model_path, map_location=\"cpu\")\n                if \"module\" in state_dict:\n                    state_dict = state_dict[\"module\"]  # strip other client states\n                model.load_state_dict(state_dict)\n                timers(\"load-model-states\").stop()\n                timers.log([\"load-model-states\"])\n    see_memory_usage(f\"After Building Model\", force=True)\n    \n    return model\n\n\ndef get_batch(data_iterator):\n    \"\"\"Generate a batch\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Items and their type.\n    keys = [\"input_ids\"]\n    datatype = torch.int64\n\n    # Broadcast data.\n    if data_iterator is not None:\n        data = next(data_iterator)\n    else:\n        data = None\n\n    data_b = mpu.broadcast_data(keys, data, datatype)\n\n    # Unpack.\n    tokens_ = data_b[\"input_ids\"].long()\n    labels = tokens_[:, 1:].contiguous()\n    tokens = tokens_[:, :-1].contiguous()\n\n    # Get the masks and postition ids.\n    attention_mask, loss_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n\n    return tokens, labels, loss_mask, attention_mask, position_ids\n\n\ndef get_batch_pipe(data):\n    \"\"\"Modification of `get_batch` to work on `next(data_iterator)` instead of `data_iterator`\"\"\"\n    args = get_args()\n    tokenizer = get_tokenizer()\n\n    # Items and their type.\n    keys = [\"input_ids\"]\n    datatype = torch.int64\n\n    # Broadcast data.\n    data_b = mpu.broadcast_data(keys, data, datatype)\n\n    # Unpack.\n    tokens_ = data_b[\"input_ids\"].long()\n    labels = tokens_[:, 1:].contiguous()\n    tokens = tokens_[:, :-1].contiguous()\n\n    # Get the masks and postition ids.\n    attention_mask, loss_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        tokenizer.eod,\n        args.reset_position_ids,\n        args.reset_attention_mask,\n        args.eod_mask_loss,\n    )\n\n    return (tokens, position_ids, attention_mask), (labels, loss_mask)\n\n\ndef loss_func(loss_mask, output_tensor):\n    losses = output_tensor.float()\n    loss_mask = loss_mask.view(-1).float()\n    loss = torch.sum(losses.view(-1) * loss_mask) / loss_mask.sum()\n\n    # Reduce loss for logging.\n    averaged_loss = average_losses_across_data_parallel_group([loss])\n\n    return loss, {\"lm loss\": averaged_loss[0]}\n\n\ndef forward_step(data_iterator, model):\n    \"\"\"Forward step.\"\"\"\n    args = get_args()\n    timers = get_timers()\n\n    # Get the batch.\n    timers(\"batch-generator\").start()\n    tokens, labels, loss_mask, attention_mask, position_ids = get_batch(data_iterator)\n    timers(\"batch-generator\").stop()\n\n    output_tensor = model(tokens, position_ids, attention_mask, labels=labels)\n\n    return output_tensor, partial(loss_func, loss_mask)\n\n\ndef train_valid_test_datasets_provider(train_val_test_num_samples):\n    \"\"\"Build train, valid, and test datasets.\"\"\"\n    args = get_args()\n\n    print_rank_0(\"> building train, validation, and test datasets \" \"for GPT ...\")\n    train_ds, valid_ds, test_ds = build_train_valid_test_datasets(\n        data_prefix=args.data_path,\n        data_impl=args.data_impl,\n        splits_string=args.split,\n        train_valid_test_num_samples=train_val_test_num_samples,\n        seq_length=args.seq_length,\n        seed=args.seed,\n        skip_warmup=(not args.mmap_warmup),\n    )\n    print_rank_0(\"> finished creating GPT datasets ...\")\n\n    return train_ds, valid_ds, test_ds\n\n\ndef command_exists(cmd):\n    result = subprocess.Popen(f\"type {cmd}\", stdout=subprocess.PIPE, shell=True)\n    return result.wait() == 0\n\n\nif __name__ == \"__main__\":\n    pretrain(\n        train_valid_test_datasets_provider,\n        model_provider,\n        forward_step,\n        args_defaults={\"tokenizer_type\": \"GPT2BPETokenizer\"},\n    )\n"
  },
  {
    "path": "codegeex/megatron/training.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"Pretrain utilities.\"\"\"\nimport os\nfrom datetime import datetime\nimport math\nimport sys\nimport time\nimport json\n\n# The earliest we can measure the start time.\n_TRAIN_START_TIME = time.time()\n\nimport torch\nfrom torch.nn.parallel.distributed import DistributedDataParallel as torchDDP\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import get_timers\nfrom codegeex.megatron import get_tensorboard_writer\nfrom codegeex.megatron import get_current_global_batch_size\nfrom codegeex.megatron import get_num_microbatches\nfrom codegeex.megatron import is_last_rank\nfrom codegeex.megatron import update_num_microbatches\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron import print_rank_0\nfrom codegeex.megatron import print_rank_last\nfrom codegeex.megatron.checkpointing import load_checkpoint\nfrom codegeex.megatron.checkpointing import save_checkpoint\nfrom codegeex.megatron.model import Float16Module\nfrom codegeex.megatron.optimizer import get_megatron_optimizer\nfrom codegeex.megatron.initialize import initialize_megatron\nfrom codegeex.megatron.initialize import write_args_to_tensorboard\nfrom codegeex.megatron.initialize import initialize_wandb_experiment\nfrom codegeex.megatron.learning_rates import AnnealingLR\nfrom codegeex.megatron.model import DistributedDataParallel as LocalDDP\nfrom codegeex.megatron.utils import check_adlr_autoresume_termination\nfrom codegeex.megatron.utils import unwrap_model\nfrom codegeex.megatron.data.data_samplers import build_pretraining_data_loader\nfrom codegeex.megatron.utils import calc_params_l2_norm\nfrom codegeex.megatron.schedules import forward_backward_no_pipelining\nfrom codegeex.megatron.schedules import forward_backward_pipelining_without_interleaving\nfrom codegeex.megatron.schedules import forward_backward_pipelining_with_interleaving\nfrom codegeex.megatron.utils import report_memory, flops_calculator\n\nimport deepspeed\n\ntry:\n    import wandb\nexcept ImportError:\n    wandb = None\n\nfrom filelock import FileLock\nimport pathlib\n\n\n\ndef print_datetime(string):\n    \"\"\"Note that this call will sync across all ranks.\"\"\"\n    torch.distributed.barrier()\n    time_str = datetime.now().strftime(\"%Y-%m-%d %H:%M:%S\")\n    print_rank_0(\"[\" + string + \"] datetime: {} \".format(time_str))\n\n\ndef pretrain(\n    train_valid_test_dataset_provider,\n    model_provider,\n    forward_step_func,\n    valid_forward_step_func=None,\n    extra_args_provider=None,\n    args_defaults={},\n):\n    \"\"\"Main training program.\n\n    This function will run the followings in the order provided:\n        1) initialize Megatron.\n        2) setup model, optimizer and lr schedule using the model_provider.\n        3) call train_val_test_data_provider to get train/val/test datasets.\n        4) train the modle using the forward_step_func.\n\n    Arguments:\n        train_valid_test_dataset_provider: a function that takes the size of\n            train/valid/test dataset and returns `train, valid, test` datasets.\n        model_provider: a function that returns a vanilla version of the\n            model. By vanilla we mean a simple model on cpu with no fp16 or ddp.\n        forward_step_func: a function that takes a `data iterator` and `model`,\n            and returns a `loss` scalar with a dictionary with key:values being\n            the info we would like to monitor during training, for example\n            `lm-loss: value`. We also require that this function add\n            `batch generator` to the timers class.\n        extra_args_provider: a function that takes a parser and adds arguments\n            to it. It is used for programs to add their own arguments.\n        args_defaults: a dictionary from argument-name to argument-value. It\n            to set already parse arguments.\n    \"\"\"\n\n    # Initalize and get arguments, timers, and Tensorboard writer.\n    initialize_megatron(\n        extra_args_provider=extra_args_provider, args_defaults=args_defaults\n    )\n\n    # Adjust the startup time so it reflects the largest value.\n    # This will be closer to what scheduler will see (outside of\n    # image ... launches.\n    global _TRAIN_START_TIME\n    start_time_tensor = torch.cuda.FloatTensor([_TRAIN_START_TIME])\n    torch.distributed.all_reduce(start_time_tensor, op=torch.distributed.ReduceOp.MIN)\n    _TRAIN_START_TIME = start_time_tensor.item()\n    print_rank_0(\n        \"time to initialize megatron (seconds): {:.3f}\".format(\n            time.time() - _TRAIN_START_TIME\n        )\n    )\n    print_datetime(\"after megatron is initialized\")\n\n    args = get_args()\n    timers = get_timers()\n\n    if args.local_rank == 0 and args.save is not None:\n        print(f\"Creating output dir ...\")\n        os.makedirs(args.save, exist_ok=True)\n\n    if args.deepspeed:\n        args.deepspeed_configuration = json.load(\n            open(args.deepspeed_config, \"r\", encoding=\"utf-8\")\n        )\n\n    # Model, optimizer, and learning rate.\n    timers(\"model-and-optimizer-setup\").start()\n    model, optimizer, lr_scheduler = setup_model_and_optimizer(model_provider)\n    timers(\"model-and-optimizer-setup\").stop()\n    print_datetime(\"after model, optimizer, and learning rate \" \"scheduler are built\")\n\n    # Data stuff.\n    timers(\"train/valid/test-data-iterators-setup\").start()\n    if args.virtual_pipeline_model_parallel_size is not None:\n        all_data_iterators = [\n            build_train_valid_test_data_iterators(train_valid_test_dataset_provider)\n            for _ in range(len(model))\n        ]\n        train_data_iterator = [\n            data_iterators[0] for data_iterators in all_data_iterators\n        ]\n        valid_data_iterator = [\n            data_iterators[1] for data_iterators in all_data_iterators\n        ]\n        test_data_iterator = [\n            data_iterators[2] for data_iterators in all_data_iterators\n        ]\n    else:\n        (\n            train_data_iterator,\n            valid_data_iterator,\n            test_data_iterator,\n        ) = build_train_valid_test_data_iterators(train_valid_test_dataset_provider)\n    timers(\"train/valid/test-data-iterators-setup\").stop()\n    print_datetime(\"after dataloaders are built\")\n\n    # Print setup timing.\n    print_rank_0(\"done with setup ...\")\n    timers.log([\"model-and-optimizer-setup\", \"train/valid/test-data-iterators-setup\"])\n    print_rank_0(\"training ...\")\n\n    iteration = 0\n    if args.do_train and args.train_iters > 0:\n        iteration = train(\n            forward_step_func,\n            valid_forward_step_func,\n            model,\n            optimizer,\n            lr_scheduler,\n            train_data_iterator,\n            valid_data_iterator,\n        )\n    print_datetime(\"after training is done\")\n\n    if args.do_valid:\n        prefix = \"the end of training for val data\"\n        if args.co_evaluation:\n            for key, value in valid_data_iterator.items():\n                evaluate_and_print_results(\n                    prefix, valid_forward_step_func, value, model, iteration, False, tag=key\n                )\n        else:\n            evaluate_and_print_results(\n                prefix, valid_forward_step_func, valid_data_iterator, model, iteration, False\n            )\n\n    if args.save and iteration != 0:\n        save_checkpoint(iteration, model, optimizer, lr_scheduler)\n\n    if args.do_test:\n        # Run on test data.\n        prefix = \"the end of training for test data\"\n        if args.co_evaluation:\n            for key, value in test_data_iterator.items():\n                evaluate_and_print_results(\n                    prefix, forward_step_func, value, model, 0, True, tag=key\n                )\n        else:\n            evaluate_and_print_results(\n                prefix, forward_step_func, test_data_iterator, model, 0, True\n            )\n\n    if args.wandb_logging and is_last_rank():\n        wandb.finish()\n\n\ndef update_train_iters(args):\n\n    # For iteration-based training, we don't need to do anything\n    if args.train_iters:\n        return\n\n    # Constant batch size with sample-based training.\n    if args.rampup_batch_size is None:\n        args.train_iters = args.train_samples // args.global_batch_size\n\n    else:\n        # Sample based training with rampup batch size.\n        iterations = 0\n        consumed_samples = 0\n        # Rampup phase.\n        while consumed_samples <= int(args.rampup_batch_size[2]):\n            update_num_microbatches(consumed_samples, consistency_check=False)\n            consumed_samples += get_current_global_batch_size()\n            iterations += 1\n        # Reset\n        update_num_microbatches(0, consistency_check=False)\n        # Constant phase\n        # Note that we throw away any partial last batch.\n        iterations += (args.train_samples - consumed_samples) // args.global_batch_size\n        args.train_iters = iterations\n\n    print_rank_0(\"setting training iterations to {}\".format(args.train_iters))\n\n\ndef get_model(model_provider_func):\n    \"\"\"Build the model.\"\"\"\n    args = get_args()\n\n    # Build model.\n    if (\n        mpu.get_pipeline_model_parallel_world_size() > 1\n        and args.virtual_pipeline_model_parallel_size is not None\n    ):\n        model = []\n        for i in range(args.virtual_pipeline_model_parallel_size):\n            mpu.set_virtual_pipeline_model_parallel_rank(i)\n            # Set pre_process and post_process only after virtual rank is set.\n            pre_process = mpu.is_pipeline_first_stage()\n            post_process = mpu.is_pipeline_last_stage()\n            this_model = model_provider_func(\n                pre_process=pre_process, post_process=post_process\n            )\n            model.append(this_model)\n    else:\n        pre_process = mpu.is_pipeline_first_stage()\n        post_process = mpu.is_pipeline_last_stage()\n        model = model_provider_func(pre_process=pre_process, post_process=post_process)\n\n    if not isinstance(model, list):\n        model = [model]\n\n    # Set tensor model parallel attributes if not set.\n    # Only parameters that are already tensor model parallel have these\n    # attributes set for them. We should make sure the default attributes\n    # are set for all params so the optimizer can use them.\n    for model_module in model:\n        for param in model_module.parameters():\n            mpu.set_defaults_if_not_set_tensor_model_parallel_attributes(param)\n\n    # Print number of parameters.\n    if mpu.get_data_parallel_rank() == 0:\n        print(\n            \" > number of parameters on (tensor, pipeline) \"\n            \"model parallel rank ({}, {}): {}\".format(\n                mpu.get_tensor_model_parallel_rank(),\n                mpu.get_pipeline_model_parallel_rank(),\n                sum(\n                    [\n                        sum(\n                            [\n                                p.ds_numel if hasattr(p, \"ds_id\") else p.nelement()\n                                for p in model_module.parameters()\n                            ]\n                        )\n                        for model_module in model\n                    ]\n                ),\n            ),\n            flush=True,\n        )\n\n    if args.deepspeed:\n        return model\n\n    # GPU allocation.\n    print(f\" > moving model to GPU ...\", flush=True)\n    for model_module in model:\n        model_module.cuda(torch.cuda.current_device())\n    print(f\" > moving to GPU done\", flush=True)\n\n    # Fp16 conversion.\n    if args.fp16 or args.bf16:\n        print(f\" > converting model to fp16 ...\", flush=True)\n        model = [Float16Module(model_module, args) for model_module in model]\n        print(f\" > converting to fp16 done\", flush=True)\n\n    if args.DDP_impl == \"torch\":\n        i = torch.cuda.current_device()\n        model = [\n            torchDDP(\n                model_module,\n                device_ids=[i],\n                output_device=i,\n                process_group=mpu.get_data_parallel_group(),\n            )\n            for model_module in model\n        ]\n        return model\n\n    if args.DDP_impl == \"local\":\n        print(f\" > creating DDP model ...\", flush=True)\n        model = [\n            LocalDDP(\n                model_module,\n                args.accumulate_allreduce_grads_in_fp32,\n                args.use_contiguous_buffers_in_ddp,\n            )\n            for model_module in model\n        ]\n        print(f\" > creating DDP model done\", flush=True)\n        return model\n\n    raise NotImplementedError(\n        \"Unknown DDP implementation specified: {}. \" \"Exiting.\".format(args.DDP_impl)\n    )\n\n\ndef get_learning_rate_scheduler(optimizer):\n    \"\"\"Build the learning rate scheduler.\"\"\"\n    args = get_args()\n\n    # Iteration-based training.\n    if args.train_iters:\n        if args.lr_decay_iters is None:\n            args.lr_decay_iters = args.train_iters\n        decay_steps = args.lr_decay_iters * args.global_batch_size\n        if args.lr_warmup_fraction is not None:\n            warmup_steps = args.lr_warmup_fraction * decay_steps\n        else:\n            warmup_steps = args.lr_warmup_iters * args.global_batch_size\n    # Sample-based training.\n    elif args.train_samples:\n        # We need to set training iters for later use. Technically\n        # we need to adjust the training samples too (due to last\n        # batch being incomplete) but we leave it as is for now.\n        update_train_iters(args)\n        if args.lr_decay_samples is None:\n            args.lr_decay_samples = args.train_samples\n        decay_steps = args.lr_decay_samples\n        if args.lr_warmup_fraction is not None:\n            warmup_steps = args.lr_warmup_fraction * decay_steps\n        else:\n            warmup_steps = args.lr_warmup_samples\n    else:\n        raise Exception(\"either train-iters or train-samples should be provided.\")\n\n    lr_scheduler = AnnealingLR(\n        optimizer,\n        max_lr=args.lr,\n        min_lr=args.min_lr,\n        warmup_steps=warmup_steps,\n        decay_steps=decay_steps,\n        decay_style=args.lr_decay_style,\n        use_checkpoint_lr_scheduler=args.use_checkpoint_lr_scheduler,\n        override_lr_scheduler=args.override_lr_scheduler,\n    )\n\n    return lr_scheduler\n\n\ndef setup_model_and_optimizer(model_provider_func):\n    \"\"\"Setup model and optimizer.\"\"\"\n    args = get_args()\n\n    model = get_model(model_provider_func)\n    unwrapped_model = unwrap_model(model, (torchDDP, LocalDDP, Float16Module))\n    optimizer = get_megatron_optimizer(unwrapped_model)\n    lr_scheduler = get_learning_rate_scheduler(optimizer)\n\n    if args.deepspeed:\n        print_rank_0(\"DeepSpeed is enabled.\")\n        pp = mpu.get_pipeline_model_parallel_world_size()\n        print_rank_0(pp)\n        \n        model, optimizer, _, lr_scheduler = deepspeed.initialize(\n            model=model[0],\n            optimizer=optimizer,\n            args=args,\n            lr_scheduler=lr_scheduler,\n            mpu=mpu if args.no_pipeline_parallel else None,\n        )\n        print_rank_0(\"FinishInitialization.\")\n        if isinstance(model, deepspeed.PipelineEngine):\n            # hack to get batch_fn from pretrain_gpt.py\n            print_rank_0(\"InstancePipelineEngine.\")\n            model.set_batch_fn(model.module._megatron_batch_fn)\n\n            assert (\n                model.grid.get_pipe_parallel_rank()\n                == mpu.get_pipeline_model_parallel_rank()\n            )\n            assert (\n                model.grid.get_slice_parallel_rank()\n                == mpu.get_tensor_model_parallel_rank()\n            )\n            assert model.grid.get_data_parallel_rank() == mpu.get_data_parallel_rank()\n        model = [model]\n        print_rank_0(\"Finishparallel.\")\n\n    if args.load is not None:\n        timers = get_timers()\n        # Extra barrier is added to make sure all ranks report the\n        # max time.\n        torch.distributed.barrier()\n        timers(\"load-checkpoint\").start()\n        if args.low_memory_load:\n            load_start = time.perf_counter()\n            with FileLock(os.path.join(pathlib.Path.home(), \"checkpoint_lock\"), timeout=-1):\n                this_rank_load_start = time.perf_counter()\n                print(f\"Rank {args.rank} is loading checkpoint ...\")\n                args.iteration = load_checkpoint(model, optimizer, lr_scheduler)\n                this_rank_load_time = time.perf_counter() - this_rank_load_start\n                load_time = time.perf_counter() - load_start\n                print(f\"Rank {args.rank} loaded checkpoint, this rank time: {this_rank_load_time}, total time: {load_time}\")\n        else:\n            args.iteration = load_checkpoint(model, optimizer, lr_scheduler)\n        print(f\"Rank {args.rank} loaded checkpoint and waiting for other ranks\")\n        torch.distributed.barrier()\n        timers(\"load-checkpoint\").stop()\n        timers.log([\"load-checkpoint\"])\n    else:\n        args.iteration = 0\n\n    # We only support local DDP with multiple micro-batches.\n    if len(model) > 1 or mpu.get_pipeline_model_parallel_world_size() > 1:\n        assert args.DDP_impl == \"local\"\n\n    # get model without FP16 and/or TorchDDP wrappers\n    if (\n        args.iteration == 0\n        and len(unwrapped_model) == 1\n        and hasattr(unwrapped_model[0], \"init_state_dict_from_bert\")\n    ):\n        print_rank_0(\"Initializing ICT from pretrained BERT model\")\n        unwrapped_model[0].init_state_dict_from_bert()\n        if args.fp16:\n            optimizer.reload_model_params()\n\n    return model, optimizer, lr_scheduler\n\n\ndef train_step(forward_step_func, data_iterator, model, optimizer, lr_scheduler):\n    \"\"\"Single training step.\"\"\"\n    args = get_args()\n    timers = get_timers()\n\n    if args.deepspeed and args.ds_pipeline_enabled:\n        skipped_iter = 0\n        num_zeros_in_grad = 0\n        assert isinstance(model[0], deepspeed.PipelineEngine)\n        loss = model[0].train_batch(data_iter=data_iterator)\n        grad_norm = model[0].get_global_grad_norm()\n        return {\"lm loss\": loss}, skipped_iter, grad_norm, num_zeros_in_grad\n\n    # Set grad to zero.\n    if not args.deepspeed:\n        if args.DDP_impl == \"local\" and args.use_contiguous_buffers_in_ddp:\n            for partition in model:\n                partition.zero_grad_buffer()\n        else:\n            optimizer.zero_grad()\n\n    if mpu.get_pipeline_model_parallel_world_size() > 1:\n        if args.virtual_pipeline_model_parallel_size is not None:\n            # print_rank_0(\"===> fb_func = w/ interleaving\")\n            forward_backward_func = forward_backward_pipelining_with_interleaving\n            assert get_num_microbatches() % args.pipeline_model_parallel_size == 0, (\n                \"number of microbatches is not divisible by pipeline-parallel \"\n                \"size when using interleaved schedule\"\n            )\n        else:\n            # print_rank_0(\"===> fb_func = w/o interleaving\")\n            forward_backward_func = forward_backward_pipelining_without_interleaving\n    else:\n        # print_rank_0(\"===> fb_func = no_pp\")\n        forward_backward_func = forward_backward_no_pipelining\n    # print_rank_0(\"===> running fb_func\")\n    losses_reduced = forward_backward_func(\n        forward_step_func, data_iterator, model, optimizer, timers, forward_only=False\n    )\n\n    # All-reduce if needed.\n    if not args.deepspeed and args.DDP_impl == \"local\":\n        timers(\"backward-params-all-reduce\").start()\n        for model_module in model:\n            model_module.allreduce_gradients()\n        timers(\"backward-params-all-reduce\").stop()\n\n    # All-reduce word_embeddings' grad across first and last stages to ensure\n    # that word_embeddings parameters stay in sync.\n    # This should only run for models that support pipelined model parallelism\n    # (BERT and GPT-2).\n    if not args.deepspeed:\n        timers(\"backward-embedding-all-reduce\").start()\n        if (\n            mpu.is_pipeline_first_stage(ignore_virtual=True)\n            or mpu.is_pipeline_last_stage(ignore_virtual=True)\n        ) and mpu.get_pipeline_model_parallel_world_size() > 1:\n            if mpu.is_pipeline_first_stage(ignore_virtual=True):\n                unwrapped_model = model[0]\n            elif mpu.is_pipeline_last_stage(ignore_virtual=True):\n                unwrapped_model = model[-1]\n            unwrapped_model = unwrap_model(\n                unwrapped_model, (torchDDP, LocalDDP, Float16Module)\n            )\n\n            if unwrapped_model.share_word_embeddings:\n                word_embeddings_weight = unwrapped_model.word_embeddings_weight()\n                if args.DDP_impl == \"local\":\n                    grad = word_embeddings_weight.main_grad\n                else:\n                    grad = word_embeddings_weight.grad\n                torch.distributed.all_reduce(grad, group=mpu.get_embedding_group())\n        timers(\"backward-embedding-all-reduce\").stop()\n\n    # Update parameters.\n    timers(\"optimizer\").start()\n    # print_rank_0(\"===> start of update params\")\n    if args.deepspeed:\n        increment = (\n            get_num_microbatches() * args.micro_batch_size * args.data_parallel_size\n        )\n        model[0].step(lr_kwargs={\"increment\": increment})\n        update_successful = model[0].was_step_applied()\n    else:\n        update_successful, grad_norm, num_zeros_in_grad = optimizer.step()\n    # print_rank_0(\"===> end of update params\")\n    timers(\"optimizer\").stop()\n\n    # Update learning rate.\n    if args.deepspeed:\n        skipped_iter = 0\n        grad_norm = None\n        num_zeros_in_grad = None\n\n        loss_reduced = {}\n        for key in losses_reduced[0]:\n            losses_reduced_for_key = [x[key] for x in losses_reduced]\n            loss_reduced[key] = sum(losses_reduced_for_key) / len(\n                losses_reduced_for_key\n            )\n        return loss_reduced, skipped_iter, grad_norm, num_zeros_in_grad\n    else:\n        if update_successful:\n            increment = (\n                get_num_microbatches() * args.micro_batch_size * args.data_parallel_size\n            )\n            lr_scheduler.step(increment=increment)\n            skipped_iter = 0\n        else:\n            skipped_iter = 1\n\n        if mpu.is_pipeline_last_stage(ignore_virtual=True):\n            # Average loss across microbatches.\n            loss_reduced = {}\n            for key in losses_reduced[0]:\n                losses_reduced_for_key = [x[key] for x in losses_reduced]\n                loss_reduced[key] = sum(losses_reduced_for_key) / len(\n                    losses_reduced_for_key\n                )\n            return loss_reduced, skipped_iter, grad_norm, num_zeros_in_grad\n    return {}, skipped_iter, grad_norm, num_zeros_in_grad\n\n\ndef training_log(\n    loss_dict,\n    total_loss_dict,\n    learning_rate,\n    iteration,\n    loss_scale,\n    report_memory_flag,\n    skipped_iter,\n    grad_norm,\n    params_norm,\n    num_zeros_in_grad,\n    model=None,\n):\n    \"\"\"Log training information such as losses, timing, ....\"\"\"\n    args = get_args()\n    timers = get_timers()\n    writer = get_tensorboard_writer()\n\n    # Advanced, skipped, and Nan iterations.\n    advanced_iters_key = \"advanced iterations\"\n    skipped_iters_key = \"skipped iterations\"\n    nan_iters_key = \"nan iterations\"\n    # Advanced iterations.\n    if not skipped_iter:\n        total_loss_dict[advanced_iters_key] = (\n            total_loss_dict.get(advanced_iters_key, 0) + 1\n        )\n    else:\n        if advanced_iters_key not in total_loss_dict:\n            total_loss_dict[advanced_iters_key] = 0\n    # Skipped iterations.\n    total_loss_dict[skipped_iters_key] = (\n        total_loss_dict.get(skipped_iters_key, 0) + skipped_iter\n    )\n    # Update losses and set nan iterations\n    got_nan = False\n    for key in loss_dict:\n        if not skipped_iter:\n            total_loss_dict[key] = (\n                total_loss_dict.get(key, torch.cuda.FloatTensor([0.0])) + loss_dict[key]\n            )\n        else:\n            value = loss_dict[key].float().sum().item()\n            is_nan = value == float(\"inf\") or value == -float(\"inf\") or value != value\n            got_nan = got_nan or is_nan\n    total_loss_dict[nan_iters_key] = total_loss_dict.get(nan_iters_key, 0) + int(\n        got_nan\n    )\n\n    # Logging.\n    timers_to_log = []\n\n    def add_to_logging(name):\n        if name in timers.timers:\n            timers_to_log.append(name)\n\n    add_to_logging(\"forward-compute\")\n    add_to_logging(\"forward-recv\")\n    add_to_logging(\"forward-send\")\n    add_to_logging(\"forward-backward-send-forward-backward-recv\")\n    add_to_logging(\"backward-compute\")\n    add_to_logging(\"backward-recv\")\n    add_to_logging(\"backward-send\")\n    add_to_logging(\"backward-send-forward-recv\")\n    add_to_logging(\"backward-send-backward-recv\")\n    add_to_logging(\"backward-params-all-reduce\")\n    add_to_logging(\"backward-embedding-all-reduce\")\n    add_to_logging(\"optimizer-copy-to-main-grad\")\n    add_to_logging(\"optimizer-unscale-and-check-inf\")\n    add_to_logging(\"optimizer-clip-main-grad\")\n    add_to_logging(\"optimizer-copy-main-to-model-params\")\n    add_to_logging(\"optimizer\")\n    add_to_logging(\"batch-generator\")\n\n    # Calculate batch size.\n    batch_size = (\n        args.micro_batch_size * args.data_parallel_size * get_num_microbatches()\n    )\n\n    total_iterations = (\n        total_loss_dict[advanced_iters_key] + total_loss_dict[skipped_iters_key]\n    )\n\n    # wandb logging.\n    if (\n        args.wandb_logging\n        and (iteration % args.wandb_log_interval == 0)\n        and is_last_rank()\n    ):\n        wandb.log(\n            {\n                \"train/tokens\": args.consumed_train_tokens,\n                \"train/lr\": learning_rate,\n            },\n            step=iteration,\n        )\n\n        for k, v in loss_dict.items():\n            wandb.log({f\"train/{k}\": v}, step=iteration)\n\n        for k in timers_to_log:\n            value = timers.timers[k].elapsed(reset=False)\n            wandb.log({f\"timer/{k}\": value}, step=iteration)\n\n    # Tensorboard values.\n    if writer and (iteration % args.tensorboard_log_interval == 0) and is_last_rank():\n        writer.add_scalar(\n            \"steps-vs-samples/y=steps,x=samples\", iteration, args.consumed_train_samples\n        )\n        writer.add_scalar(\n            \"steps-vs-samples/y=samples,x=steps\", args.consumed_train_samples, iteration\n        )\n        writer.add_scalar(\n            \"steps-vs-tokens/y=steps,x=tokens\", iteration, args.consumed_train_tokens\n        )\n        writer.add_scalar(\n            \"steps-vs-tokens/y=tokens,x=steps\", args.consumed_train_tokens, iteration\n        )\n        if args.log_learning_rate_to_tensorboard:\n            writer.add_scalar(\"learning-rate/learning-rate\", learning_rate, iteration)\n            writer.add_scalar(\n                \"learning-rate/learning-rate vs samples\",\n                learning_rate,\n                args.consumed_train_samples,\n            )\n            writer.add_scalar(\n                \"learning-rate/learning-rate vs tokens\",\n                learning_rate,\n                args.consumed_train_tokens,\n            )\n        if args.log_batch_size_to_tensorboard:\n            writer.add_scalar(\"batch-size/batch-size\", batch_size, iteration)\n            writer.add_scalar(\n                \"batch-size/batch-size vs samples\",\n                batch_size,\n                args.consumed_train_samples,\n            )\n        for key in loss_dict:\n            writer.add_scalar(f\"lm-loss-training/{key}\", loss_dict[key], iteration)\n            # writer.add_scalar(\n            #     f\"lm-loss-training/{key}\" + \" vs samples\",\n            #     loss_dict[key],\n            #     args.consumed_train_samples,\n            # )\n            # writer.add_scalar(\n            #     f\"lm-loss-training/{key}\" + \" vs tokens\",\n            #     loss_dict[key],\n            #     args.consumed_train_tokens,\n            # )\n        if args.log_loss_scale_to_tensorboard:\n            writer.add_scalar(\"loss-scale/loss-scale\", loss_scale, iteration)\n            writer.add_scalar(\n                \"loss-scale/loss-scale vs samples\",\n                loss_scale,\n                args.consumed_train_samples,\n            )\n            writer.add_scalar(\n                \"loss-scale/loss-scale vs tokens\",\n                loss_scale,\n                args.consumed_train_tokens,\n            )\n        if grad_norm is not None:\n            writer.add_scalar(\"grad-norm/grad-norm\", grad_norm, iteration)\n            writer.add_scalar(\n                \"grad-norm/grad-norm vs samples\", grad_norm, args.consumed_train_samples\n            )\n            writer.add_scalar(\n                \"grad-norm/grad-norm vs tokens\", grad_norm, args.consumed_train_tokens\n            )\n        if num_zeros_in_grad is not None:\n            writer.add_scalar(\"num-zeros/num-zeros\", num_zeros_in_grad, iteration)\n            writer.add_scalar(\n                \"num-zeros/num-zeros vs samples\",\n                num_zeros_in_grad,\n                args.consumed_train_samples,\n            )\n            writer.add_scalar(\n                \"num-zeros/num-zeros vs tokens\",\n                num_zeros_in_grad,\n                args.consumed_train_tokens,\n            )\n        if params_norm is not None:\n            writer.add_scalar(\"params-norm/params-norm\", params_norm, iteration)\n            writer.add_scalar(\n                \"params-norm/params-norm vs samples\",\n                params_norm,\n                args.consumed_train_samples,\n            )\n            writer.add_scalar(\n                \"params-norm/params-norm vs tokens\",\n                params_norm,\n                args.consumed_train_tokens,\n            )\n        if args.log_timers_to_tensorboard:\n            timers.write(timers_to_log, writer, iteration, normalizer=total_iterations)\n\n    if iteration % args.log_interval == 0:\n        elapsed_time = timers(\"interval-time\").elapsed()\n        elapsed_time_per_iteration = elapsed_time / total_iterations\n\n        # log iteration time to wandb\n        if args.wandb_logging and is_last_rank():\n            wandb.log(\n                {\n                    \"train/iteration-time\": elapsed_time_per_iteration,\n                },\n                step=iteration,\n            )\n\n        # only the last rank process has a non-None _GLOBAL_TENSORBOARD_WRITER\n        if writer and is_last_rank():\n            if args.log_timers_to_tensorboard:\n                writer.add_scalar(\n                    \"iteration-time/iteration-time\",\n                    elapsed_time_per_iteration,\n                    iteration,\n                )\n                writer.add_scalar(\n                    \"iteration-time/iteration-time vs samples\",\n                    elapsed_time_per_iteration,\n                    args.consumed_train_samples,\n                )\n                writer.add_scalar(\n                    \"iteration-time/iteration-time vs tokens\",\n                    elapsed_time_per_iteration,\n                    args.consumed_train_tokens,\n                )\n        log_string = \"==> iteration {:8d}/{:8d} |\".format(iteration, args.train_iters)\n        log_string += \" consumed samples: {:12d} |\".format(args.consumed_train_samples)\n        log_string += \" consumed tokens: {:12d} |\".format(args.consumed_train_tokens)\n        log_string += \" elapsed time per iteration (ms): {:.1f} |\".format(\n            elapsed_time_per_iteration * 1000.0\n        )\n        log_string += \" learning rate: {:.3E} |\".format(learning_rate)\n        log_string += \" global batch size: {:5d} |\".format(batch_size)\n        for key in total_loss_dict:\n            if key not in [advanced_iters_key, skipped_iters_key, nan_iters_key]:\n                avg = total_loss_dict[key].item() / float(\n                    max(1, total_loss_dict[advanced_iters_key])\n                )\n                if avg > 0.0:\n                    log_string += \" {}: {:.6E} |\".format(key, avg)\n                total_loss_dict[key] = torch.cuda.FloatTensor([0.0])\n        log_string += \" loss scale: {:.1f} |\".format(loss_scale)\n        if grad_norm is not None:\n            log_string += \" grad norm: {:.3f} |\".format(grad_norm)\n        if num_zeros_in_grad is not None:\n            log_string += \" num zeros: {:.1f} |\".format(num_zeros_in_grad)\n        if params_norm is not None:\n            log_string += \" params norm: {:.3f} |\".format(params_norm)\n        log_string += \" number of skipped iterations: {:3d} |\".format(\n            total_loss_dict[skipped_iters_key]\n        )\n        log_string += \" number of nan iterations: {:3d} |\".format(\n            total_loss_dict[nan_iters_key]\n        )\n        total_loss_dict[advanced_iters_key] = 0\n        total_loss_dict[skipped_iters_key] = 0\n        total_loss_dict[nan_iters_key] = 0\n        print_rank_last(log_string)\n        if report_memory_flag and learning_rate > 0.0:\n            # Report memory after optimizer state has been initialized.\n            report_memory(\"(after {} iterations)\".format(iteration))\n            report_memory_flag = False\n        timers.log(timers_to_log, normalizer=args.log_interval)\n        flops_calculator(model, args, elapsed_time)\n\n    return report_memory_flag\n\n\ndef save_checkpoint_and_time(iteration, model, optimizer, lr_scheduler):\n    timers = get_timers()\n    # Extra barrier is added to make sure\n    # all ranks report the max time.\n    torch.distributed.barrier()\n    timers(\"save-checkpoint\").start()\n    save_checkpoint(iteration, model, optimizer, lr_scheduler)\n    torch.distributed.barrier()\n    timers(\"save-checkpoint\").stop()\n    timers.log([\"save-checkpoint\"])\n\n\ndef train(\n    forward_step_func,\n    valid_forward_step_func,\n    model,\n    optimizer,\n    lr_scheduler,\n    train_data_iterator,\n    valid_data_iterator,\n):\n    \"\"\"Train the model function.\"\"\"\n    args = get_args()\n    timers = get_timers()\n\n    # Write args to tensorboard\n    write_args_to_tensorboard()\n\n    if args.wandb_logging:\n        torch.distributed.barrier()\n        print_datetime(\"before the initialization of wandb\")\n        timers(\"wandb-init\").start()\n        if is_last_rank():\n            initialize_wandb_experiment()\n        torch.distributed.barrier()\n        timers(\"wandb-init\").stop()\n        timers.log([\"wandb-init\"])\n\n    # Turn on training mode which enables dropout.\n    for model_module in model:\n        model_module.train()\n\n    # Tracking loss.\n    total_loss_dict = {}\n\n    # Iterations.\n    iteration = args.iteration\n\n    timers(\"interval-time\").start()\n    print_datetime(\"before the start of training step\")\n    report_memory_flag = True\n    \n    while iteration < args.train_iters and (\n        args.train_tokens is None or args.consumed_train_tokens < args.train_tokens\n    ):\n        # print_rank_0(f'=> iteration {iteration}')\n        update_num_microbatches(args.consumed_train_samples)\n        if args.deepspeed:\n            # inform deepspeed of any batch size changes\n            global_batch_size = (\n                mpu.get_data_parallel_world_size()\n                * args.micro_batch_size\n                * get_num_microbatches()\n            )\n            model[0].set_train_batch_size(global_batch_size)\n\n        # print_rank_0(f\"==> running train step for iteration {iteration}\")\n        loss_dict, skipped_iter, grad_norm, num_zeros_in_grad = train_step(\n            forward_step_func, train_data_iterator, model, optimizer, lr_scheduler\n        )\n        iteration += 1\n        args.iteration = iteration\n        new_samples = (\n            mpu.get_data_parallel_world_size()\n            * args.micro_batch_size\n            * get_num_microbatches()\n        )\n        args.consumed_train_samples += new_samples\n        args.consumed_train_tokens += new_samples * args.seq_length\n\n        # Logging.\n        if args.deepspeed:\n            loss_scale = model[0].optimizer.cur_scale\n        else:\n            loss_scale = optimizer.get_loss_scale().item()\n        params_norm = None\n        if args.log_params_norm:\n            params_norm = calc_params_l2_norm(model)\n        report_memory_flag = training_log(\n            loss_dict,\n            total_loss_dict,\n            optimizer.param_groups[0][\"lr\"],\n            iteration,\n            loss_scale,\n            report_memory_flag,\n            skipped_iter,\n            grad_norm,\n            params_norm,\n            num_zeros_in_grad,\n            model,\n        )\n\n        # Autoresume\n        if args.adlr_autoresume and (iteration % args.adlr_autoresume_interval == 0):\n            check_adlr_autoresume_termination(iteration, model, optimizer, lr_scheduler)\n\n        # Evaluation\n        if args.eval_interval and iteration % args.eval_interval == 0 and args.do_valid:\n            prefix = \"iteration {}\".format(iteration)\n            if args.co_evaluation:\n                for key, value in valid_data_iterator.items():\n                    evaluate_and_print_results(\n                        prefix, valid_forward_step_func, value, model, iteration, False, tag=key\n                    )\n            else:\n                if args.gold:\n                    evaluate_and_print_results_gold(\n                        prefix, forward_step_func, valid_data_iterator, model, iteration, False\n                    )\n                evaluate_and_print_results(\n                    prefix, valid_forward_step_func, valid_data_iterator, model, iteration, False\n                )\n\n        # Checkpointing\n        saved_checkpoint = False\n        if args.save and args.save_interval and (iteration % args.save_interval == 0):  # debugging\n            save_checkpoint_and_time(iteration, model, optimizer, lr_scheduler)\n            saved_checkpoint = True\n\n        # Exiting based on duration\n        if args.exit_duration_in_mins:\n            train_time = (time.time() - _TRAIN_START_TIME) / 60.0\n            done_cuda = torch.cuda.IntTensor([train_time > args.exit_duration_in_mins])\n            torch.distributed.all_reduce(done_cuda, op=torch.distributed.ReduceOp.MAX)\n            done = done_cuda.item()\n            if done:\n                if not saved_checkpoint:\n                    save_checkpoint_and_time(iteration, model, optimizer, lr_scheduler)\n                print_datetime(\"exiting program after {} minutes\".format(train_time))\n                sys.exit()\n\n        # Exiting based on iterations\n        if args.exit_interval and iteration % args.exit_interval == 0:\n            if not saved_checkpoint:\n                save_checkpoint_and_time(iteration, model, optimizer, lr_scheduler)\n            torch.distributed.barrier()\n            print_datetime(\"exiting program at iteration {}\".format(iteration))\n            sys.exit()\n\n    return iteration\n\n\ndef evaluate(forward_step_func, data_iterator, model, verbose=False):\n    \"\"\"Evaluation.\"\"\"\n    args = get_args()\n\n    # Turn on evaluation mode which disables dropout.\n    for model_module in model:\n        model_module.eval()\n\n    total_loss_dict = {}\n\n    with torch.no_grad():\n        iteration = 0\n        while iteration < args.eval_iters:\n            iteration += 1\n            if verbose and iteration % args.log_interval == 0:\n                print_rank_0(\"Evaluating iter {}/{}\".format(iteration, args.eval_iters))\n\n            if mpu.get_pipeline_model_parallel_world_size() > 1:\n                if args.virtual_pipeline_model_parallel_size is not None:\n                    forward_backward_func = (\n                        forward_backward_pipelining_with_interleaving\n                    )\n                else:\n                    forward_backward_func = (\n                        forward_backward_pipelining_without_interleaving\n                    )\n            else:\n                forward_backward_func = forward_backward_no_pipelining\n\n            if args.deepspeed and not args.no_pipeline_parallel:\n                # DeepSpeed uses eval_batch() and already aggregates losses.\n                assert isinstance(model, list) and len(model) == 1\n                loss = model[0].eval_batch(data_iterator)\n                loss_dicts = [{\"lm loss\": loss}] * get_num_microbatches()\n            else:\n                loss_dicts = forward_backward_func(\n                    forward_step_func,\n                    data_iterator,\n                    model,\n                    optimizer=None,\n                    timers=None,\n                    forward_only=True,\n                )\n\n            if mpu.is_pipeline_last_stage(ignore_virtual=True):\n                # Reduce across processes.\n                for loss_dict in loss_dicts:\n                    for key in loss_dict:\n                        total_loss_dict[key] = (\n                            total_loss_dict.get(key, torch.cuda.FloatTensor([0.0]))\n                            + loss_dict[key]\n                        )\n\n            args.consumed_valid_samples += (\n                mpu.get_data_parallel_world_size()\n                * args.micro_batch_size\n                * get_num_microbatches()\n            )\n    # Move model back to the train mode.\n    for model_module in model:\n        model_module.train()\n\n    for key in total_loss_dict:\n        total_loss_dict[key] /= args.eval_iters * get_num_microbatches()\n\n    return total_loss_dict\n\n\ndef evaluate_and_print_results(\n    prefix, forward_step_func, data_iterator, model, iteration, verbose=False, tag=None\n):\n    \"\"\"Helper function to evaluate and dump results on screen.\"\"\"\n    args = get_args()\n    writer = get_tensorboard_writer()\n\n    total_loss_dict = evaluate(forward_step_func, data_iterator, model, verbose)\n    if tag is None:\n        string = \" validation loss at {} | \".format(prefix)\n    else:\n        string = \" validation loss for {} at {} | \".format(tag, prefix)\n    for key in total_loss_dict:\n        string += \"{} value: {:.6E} | \".format(key, total_loss_dict[key].item())\n        ppl = math.exp(min(20, total_loss_dict[key].item()))\n        string += \"{} PPL: {:.6E} | \".format(key, ppl)\n\n        if tag is not None:\n            display_key = tag + \"-\" + key\n        else:\n            display_key = key\n\n        if args.wandb_logging and is_last_rank():\n            wandb.log(\n                {\n                    f\"eval/{display_key}\": total_loss_dict[key].item(),\n                },\n                step=iteration,\n            )\n\n        if writer and is_last_rank():\n            writer.add_scalar(\n                f\"lm-loss-validation/{display_key} validation\",\n                total_loss_dict[key].item(),\n                iteration,\n            )\n            # writer.add_scalar(\n            #     f\"lm-loss-validation/{display_key} validation vs samples\",\n            #     total_loss_dict[key].item(),\n            #     args.consumed_train_samples,\n            # )\n            # writer.add_scalar(\n            #     f\"lm-loss-validation/{display_key} validation vs tokens\",\n            #     total_loss_dict[key].item(),\n            #     args.consumed_train_tokens,\n            # )\n            if args.log_validation_ppl_to_tensorboard:\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl\", ppl, iteration\n                )\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl vs samples\",\n                    ppl,\n                    args.consumed_train_samples,\n                )\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl vs tokens\",\n                    ppl,\n                    args.consumed_train_tokens,\n                )\n\n    length = len(string) + 1\n    print_rank_last(\"-\" * length)\n    print_rank_last(string)\n    print_rank_last(\"-\" * length)\n\n\ndef evaluate_and_print_results_gold(\n    prefix, forward_step_func, data_iterator, model, iteration, verbose=False, tag=None\n):\n    \"\"\"Helper function to evaluate and dump results on screen.\"\"\"\n    args = get_args()\n    writer = get_tensorboard_writer()\n\n    total_loss_dict = evaluate(forward_step_func, data_iterator, model, verbose)\n    if tag is None:\n        string = \" validation loss (gold) at {} | \".format(prefix)\n    else:\n        string = \" validation loss (gold) for {} at {} | \".format(tag, prefix)\n    for key in total_loss_dict:\n        string += \"{} value: {:.6E} | \".format(key, total_loss_dict[key].item())\n        ppl = math.exp(min(20, total_loss_dict[key].item()))\n        string += \"{} PPL: {:.6E} | \".format(key, ppl)\n\n        if tag is not None:\n            display_key = tag + \"-\" + key\n        else:\n            display_key = key\n\n        if args.wandb_logging and is_last_rank():\n            wandb.log(\n                {\n                    f\"eval/{display_key}\": total_loss_dict[key].item(),\n                },\n                step=iteration,\n            )\n\n        if writer and is_last_rank():\n            writer.add_scalar(\n                f\"lm-loss-validation-gold/{display_key} validation\",\n                total_loss_dict[key].item(),\n                iteration,\n            )\n            if args.log_validation_ppl_to_tensorboard:\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl\", ppl, iteration\n                )\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl vs samples\",\n                    ppl,\n                    args.consumed_train_samples,\n                )\n                writer.add_scalar(\n                    f\"lm-loss-validation/{display_key} validation ppl vs tokens\",\n                    ppl,\n                    args.consumed_train_tokens,\n                )\n\n    length = len(string) + 1\n    print_rank_last(\"-\" * length)\n    print_rank_last(string)\n    print_rank_last(\"-\" * length)\n    \n\ndef cyclic_iter(iter):\n    while True:\n        for x in iter:\n            yield x\n\n\ndef build_train_valid_test_data_iterators(build_train_valid_test_datasets_provider):\n    args = get_args()\n\n    (train_dataloader, valid_dataloader, test_dataloader) = (None, None, None)\n\n    print_rank_0(\"> building train, validation, and test datasets ...\")\n\n    # Backward compatibility, assume fixed batch size.\n    if args.iteration > 0 and args.consumed_train_samples == 0:\n        assert (\n            args.train_samples is None\n        ), \"only backward compatibility support for iteration-based training\"\n        args.consumed_train_samples = args.iteration * args.global_batch_size\n    if args.iteration > 0 and args.consumed_valid_samples == 0:\n        assert (\n            args.train_samples is None\n        ), \"only backward compatibility support for iteration-based training\"\n        args.consumed_valid_samples = (\n            (args.iteration // args.eval_interval)\n            * args.eval_iters\n            * args.global_batch_size\n        )\n\n    # Data loader only on rank 0 of each model parallel group.\n    if mpu.get_tensor_model_parallel_rank() == 0:\n\n        # Number of train/valid/test samples.\n        if args.train_samples:\n            train_samples = args.train_samples\n        else:\n            train_samples = args.train_iters * args.global_batch_size\n        eval_iters = (args.train_iters // args.eval_interval + 1) * args.eval_iters\n        test_iters = args.eval_iters\n        train_val_test_num_samples = [\n            train_samples,\n            eval_iters * args.global_batch_size,\n            test_iters * args.global_batch_size,\n        ]\n        print_rank_0(\" > datasets target sizes (minimum size):\")\n        print_rank_0(\"    train:      {}\".format(train_val_test_num_samples[0]))\n        print_rank_0(\"    validation: {}\".format(train_val_test_num_samples[1]))\n        print_rank_0(\"    test:       {}\".format(train_val_test_num_samples[2]))\n\n        # Build the datasets.\n        train_ds, valid_ds, test_ds = build_train_valid_test_datasets_provider(\n            train_val_test_num_samples\n        )\n\n        # Build dataloders.\n        train_dataloader = build_pretraining_data_loader(\n            train_ds, args.consumed_train_samples\n        )\n        if args.co_evaluation:\n            valid_dataloader = {}\n            for key, value in valid_ds.items():\n                valid_dataloader[key] = build_pretraining_data_loader(\n                    value, args.consumed_valid_samples\n                )\n        else:\n            valid_dataloader = build_pretraining_data_loader(\n                valid_ds, args.consumed_valid_samples\n            )\n        if args.co_evaluation:\n            if test_ds is not None:\n                test_dataloader = {}\n                for key, value in test_ds.items():\n                    test_dataloader[key] = build_pretraining_data_loader(value, 0)\n            else:\n                test_dataloader = None\n        else:\n            test_dataloader = build_pretraining_data_loader(test_ds, 0)\n\n        # Flags to know if we need to do training/validation/testing.\n        do_train = train_dataloader is not None and args.train_iters > 0\n        do_valid = valid_dataloader is not None and args.eval_iters > 0\n        do_test = test_dataloader is not None and args.eval_iters > 0\n        # Need to broadcast num_tokens and num_type_tokens.\n        flags = torch.cuda.LongTensor([int(do_train), int(do_valid), int(do_test)])\n    else:\n        flags = torch.cuda.LongTensor([0, 0, 0])\n\n    # Broadcast num tokens.\n    torch.distributed.broadcast(\n        flags,\n        mpu.get_tensor_model_parallel_src_rank(),\n        group=mpu.get_tensor_model_parallel_group(),\n    )\n    args.do_train = flags[0].item()\n    args.do_valid = flags[1].item()\n    args.do_test = flags[2].item()\n\n    # Build iterators.\n    dl_type = args.dataloader_type\n    assert dl_type in [\"single\", \"cyclic\"]\n\n    if train_dataloader is not None:\n        train_data_iterator = (\n            iter(train_dataloader)\n            if dl_type == \"single\"\n            else iter(cyclic_iter(train_dataloader))\n        )\n    else:\n        train_data_iterator = None\n\n    if valid_dataloader is not None:\n        if args.co_evaluation:\n            valid_data_iterator = {}\n            for key, value in valid_dataloader.items():\n                valid_data_iterator[key] = (\n                    iter(value)\n                    if dl_type == \"single\"\n                    else iter(cyclic_iter(value))\n                )\n        else:\n            valid_data_iterator = (\n                iter(valid_dataloader)\n                if dl_type == \"single\"\n                else iter(cyclic_iter(valid_dataloader))\n            )\n    else:\n        valid_data_iterator = None\n\n    if test_dataloader is not None:\n        if args.co_evaluation:\n            test_data_iterator = {}\n            for key, value in test_dataloader.items():\n                test_data_iterator[key] = (\n                    iter(value)\n                    if dl_type == \"single\"\n                    else iter(cyclic_iter(value))\n                )\n        else:\n            test_data_iterator = (\n                iter(test_dataloader)\n                if dl_type == \"single\"\n                else iter(cyclic_iter(test_dataloader))\n            )\n    else:\n        test_data_iterator = None\n\n    return train_data_iterator, valid_data_iterator, test_data_iterator\n"
  },
  {
    "path": "codegeex/megatron/utils.py",
    "content": "# coding=utf-8\n# Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\n\"\"\"General utilities.\"\"\"\n\nimport sys\n\nimport torch\nfrom torch.nn.parallel import DistributedDataParallel as torchDDP\n\nfrom apex.multi_tensor_apply import multi_tensor_applier\nimport amp_C\n\nfrom codegeex.megatron import get_args\nfrom codegeex.megatron import print_rank_0\nfrom codegeex.megatron import get_adlr_autoresume\nfrom codegeex.megatron import mpu\nfrom codegeex.megatron.model.module import param_is_not_shared\nfrom codegeex.megatron.mpu.layers import param_is_not_tensor_parallel_duplicate\n\n\ndef unwrap_model(model, module_instances=(torchDDP)):\n    return_list = True\n    if not isinstance(model, list):\n        model = [model]\n        return_list = False\n    unwrapped_model = []\n    for model_module in model:\n        while isinstance(model_module, module_instances):\n            model_module = model_module.module\n        unwrapped_model.append(model_module)\n    if not return_list:\n        return unwrapped_model[0]\n    return unwrapped_model\n\n\ndef calc_params_l2_norm(model):\n    \"\"\"Calculate l2 norm of parameters\"\"\"\n    args = get_args()\n    if not isinstance(model, list):\n        model = [model]\n    # Remove duplicate params.\n    params_data = []\n    for model_ in model:\n        for param in model_.parameters():\n            is_not_shared = param_is_not_shared(param)\n            is_not_tp_duplicate = param_is_not_tensor_parallel_duplicate(param)\n            if is_not_shared and is_not_tp_duplicate:\n                if args.bf16:\n                    params_data.append(param.data.float())\n                else:\n                    params_data.append(param.data)\n    # Calculate norm\n    dummy_overflow_buf = torch.cuda.IntTensor([0])\n    norm, _ = multi_tensor_applier(\n        amp_C.multi_tensor_l2norm,\n        dummy_overflow_buf,\n        [params_data],\n        False,  # no per-parameter norm\n    )\n    norm_2 = norm * norm\n    # Sum across all model-parallel GPUs.\n    torch.distributed.all_reduce(\n        norm_2, op=torch.distributed.ReduceOp.SUM, group=mpu.get_model_parallel_group()\n    )\n    return norm_2.item() ** 0.5\n\n\ndef average_losses_across_data_parallel_group(losses):\n    \"\"\"Reduce a tensor of losses across all GPUs.\"\"\"\n    averaged_losses = torch.cat([loss.clone().detach().view(1) for loss in losses])\n    torch.distributed.all_reduce(averaged_losses, group=mpu.get_data_parallel_group())\n    averaged_losses = averaged_losses / torch.distributed.get_world_size(\n        group=mpu.get_data_parallel_group()\n    )\n\n    return averaged_losses\n\n\ndef report_memory(name):\n    \"\"\"Simple GPU memory report.\"\"\"\n    mega_bytes = 1024.0 * 1024.0\n    string = name + \" memory (MB)\"\n    string += \" | allocated: {}\".format(torch.cuda.memory_allocated() / mega_bytes)\n    string += \" | max allocated: {}\".format(\n        torch.cuda.max_memory_allocated() / mega_bytes\n    )\n    string += \" | reserved: {}\".format(torch.cuda.memory_reserved() / mega_bytes)\n    string += \" | max reserved: {}\".format(\n        torch.cuda.max_memory_reserved() / mega_bytes\n    )\n    if mpu.get_data_parallel_rank() == 0:\n        print(\"[Rank {}] {}\".format(torch.distributed.get_rank(), string), flush=True)\n\n\ndef print_params_min_max_norm(optimizer, iteration):\n    \"\"\"Print min, max, and norm of all parameters.\"\"\"\n    index = 0\n    rank = torch.distributed.get_rank()\n    string = \"iteration, rank, index, tensor-model-parallel, min, max, norm\\n\"\n    optimizer_ = optimizer.optimizer\n    for param_group in optimizer_.param_groups:\n        for param in param_group[\"params\"]:\n            index += 1\n            min_ = param.data.min()\n            max_ = param.data.max()\n            norm = torch.linalg.norm(param.data)\n            string += \"{:7d}, {:4d}, {:4d}, {:2d}, \".format(\n                iteration, rank, index, int(param.tensor_model_parallel)\n            )\n            string += \"{:.6E}, {:.6E}, {:.6E}\\n\".format(min_, max_, norm)\n    print(string, flush=True)\n\n\ndef check_adlr_autoresume_termination(iteration, model, optimizer, lr_scheduler):\n    \"\"\"Check for autoresume signal and exit if it is received.\"\"\"\n    from codegeex.megatron.checkpointing import save_checkpoint\n\n    args = get_args()\n    autoresume = get_adlr_autoresume()\n    # Add barrier to ensure consistnecy.\n    torch.distributed.barrier()\n    if autoresume.termination_requested():\n        if args.save:\n            save_checkpoint(iteration, model, optimizer, lr_scheduler)\n        print_rank_0(\">>> autoresume termination request found!\")\n        if torch.distributed.get_rank() == 0:\n            autoresume.request_resume()\n        print_rank_0(\">>> training terminated. Returning\")\n        sys.exit(0)\n\n\ndef get_ltor_masks_and_position_ids(\n    data, eod_token, reset_position_ids, reset_attention_mask, eod_mask_loss\n):\n    \"\"\"Build masks and position id for left to right model.\"\"\"\n\n    # Extract batch size and sequence length.\n    micro_batch_size, seq_length = data.size()\n\n    # Attention mask (lower triangular).\n    if reset_attention_mask:\n        att_mask_batch = micro_batch_size\n    else:\n        att_mask_batch = 1\n    attention_mask = torch.tril(\n        torch.ones((att_mask_batch, seq_length, seq_length), device=data.device)\n    ).view(att_mask_batch, 1, seq_length, seq_length)\n\n    # Loss mask.\n    loss_mask = torch.ones(data.size(), dtype=torch.float, device=data.device)\n    if eod_mask_loss:\n        loss_mask[data == eod_token] = 0.0\n\n    # Position ids.\n    position_ids = torch.arange(seq_length, dtype=torch.long, device=data.device)\n    position_ids = position_ids.unsqueeze(0).expand_as(data)\n    # We need to clone as the ids will be modifed based on batch index.\n    if reset_position_ids:\n        position_ids = position_ids.clone()\n\n    if reset_position_ids or reset_attention_mask:\n        # Loop through the batches:\n        for b in range(micro_batch_size):\n\n            # Find indecies where EOD token is.\n            eod_index = position_ids[b, data[b] == eod_token]\n            # Detach indecies from positions if going to modify positions.\n            if reset_position_ids:\n                eod_index = eod_index.clone()\n\n            # Loop through EOD indecies:\n            prev_index = 0\n            for j in range(eod_index.size()[0]):\n                i = eod_index[j]\n                # Mask attention loss.\n                if reset_attention_mask:\n                    attention_mask[b, 0, (i + 1) :, : (i + 1)] = 0\n                # Reset positions.\n                if reset_position_ids:\n                    position_ids[b, (i + 1) :] -= i + 1 - prev_index\n                    prev_index = i + 1\n\n    # Convert attention mask to binary:\n    attention_mask = attention_mask < 0.5\n\n    return attention_mask, loss_mask, position_ids\n\n\ndef get_parameters_in_billions(model):\n    gpus_per_model = torch.distributed.get_world_size(\n        group=mpu.get_model_parallel_group()\n    )\n\n    approx_parameters_in_billions = sum(\n        [\n            sum(\n                [\n                    p.ds_numel if hasattr(p, \"ds_id\") else p.nelement()\n                    for p in model_module.parameters()\n                ]\n            )\n            for model_module in model\n        ]\n    )\n\n    return approx_parameters_in_billions * gpus_per_model / (1e9)\n\n\ndef flops_calculator(model, args, iteration_time):\n    return  # currently broken\n    gpus_per_model = torch.distributed.get_world_size(\n        group=mpu.get_model_parallel_group()\n    )\n\n    approx_parameters_in_billions = get_parameters_in_billions(model)\n\n    batch_size = args.micro_batch_size * get_num_microbatches()\n\n    giga_flops_per_model_per_train_step = (\n        approx_parameters_in_billions * batch_size * args.seq_length * 2.0 * 4.0\n    )\n\n    effective_tera_flops_per_gpu = giga_flops_per_model_per_train_step / (\n        iteration_time * 1000.0 * gpus_per_model\n    )\n\n    print_rank_0(\n        f\"Effective Tera Flops per GPU: {round(effective_tera_flops_per_gpu, 2)} and total parameters {round(approx_parameters_in_billions, 3)} B\"\n    )"
  },
  {
    "path": "codegeex/mindspore/configs/13B.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=1\n\npython ${script_dir}/../train.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type train \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path <TODO> \\ # TODO: set to obs path for saving ckpts\n    --save_checkpoint_steps 250 \\\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt\n    --per_batch_size 16 \\\n    --dropout_rate 0.1 \\\n    --full_batch 0 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --tb_dir $LOG_PATH"
  },
  {
    "path": "codegeex/mindspore/configs/13B_128p_save_1p.sh",
    "content": "#!/bin/bash\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../save_1p_ckpt_from_8p_ckpt.py \\\n    --distribute true \\\n    --run_type train \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path <TODO> \\ # TODO: set to obs path for saving ckpts\n    --save_checkpoint_steps <TODO> \\ # TODO: set to epoch number of loaded ckpt\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --per_batch_size 16 \\\n    --full_batch 0 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --tb_dir $LOG_PATH\n"
  },
  {
    "path": "codegeex/mindspore/configs/13B_128p_save_8p_ckpt.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../save_8p_ckpt.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type train \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path <TODO> \\ # TODO: set to obs path for saving ckpts\n    --save_checkpoint_steps 99999 \\\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --per_batch_size 16 \\\n    --full_batch 0 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --tb_dir $LOG_PATH"
  },
  {
    "path": "codegeex/mindspore/configs/13B_1p_to_torch.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../convertion_1p.py \\\n    --distribute false \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --per_batch_size 1 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.8 \\\n    --op_level_model_parallel_num 1 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH\n"
  },
  {
    "path": "codegeex/mindspore/configs/13B_finetune.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=1\n\npython ${script_dir}/../../finetune.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type train \\\n    --train_and_eval_mode 1 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path <TODO> \\ # TODO: set to obs path for saving ckpts\n    --save_checkpoint_steps 20 \\\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt\n    --per_batch_size 16 \\\n    --dropout_rate 0.1 \\\n    --full_batch 0 \\\n    --epoch_size 5 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --tb_dir $LOG_PATH \\"
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 99999 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --per_batch_size 1 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.8 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH\n    "
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate_1p.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation_1p.py \\\n    --distribute false \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp16 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 99999 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --per_batch_size 1 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.8 \\\n    --op_level_model_parallel_num 1 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH\n    "
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate_1p_values.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation_values_1p.py \\\n    --distribute false \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp16 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 213000 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt\n    --per_batch_size 1 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"false\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.8 \\\n    --op_level_model_parallel_num 1 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH\n    "
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate_finetune.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation_finetune.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --max_generate_length 1024 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 99999 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --per_batch_size 6 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.2 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH \\\n    --language $LANGUAGE\n    \n"
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate_humaneval.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation_humaneval.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --max_generate_length 1024 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 99999 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --per_batch_size 6 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 0.8 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH \\\n    --part $PART\n    \n"
  },
  {
    "path": "codegeex/mindspore/configs/13B_generate_values.sh",
    "content": "#!/bin/bash\n\nscript_path=$(realpath $BASH_SOURCE)\nscript_dir=$(dirname $script_path)\n\nCODE_DATA_DIR=\"\" # TODO: set the path to the code data directory\n\nGAS=32\n\npython ${script_dir}/../generation_values.py \\\n    --distribute true \\\n    --device_num $RANK_SIZE \\\n    --sink_size 2 \\\n    --run_type predict \\\n    --train_and_eval_mode 0 \\\n    --mode 13B \\\n    --code_data $CODE_DATA_DIR \\\n    --param_init_type fp32 \\\n    --micro_size $GAS \\\n    --seq_length 2048 \\\n    --vocab_size 51200 \\\n    --max_generate_length 2048 \\\n    --ckpt_name_prefix code-13B \\\n    --save_checkpoint=True \\\n    --save_checkpoint_path /cache/ckpts \\\n    --save_checkpoint_obs_path /home \\ # TODO: set at will\n    --save_checkpoint_steps 99999 \\ # TODO: set at will\n    --load_ckpt_path <TODO> \\ # TODO: set to obs path for loading ckpt\n    --load_ckpt_epoch <TODO> \\ # TODO: set to epoch number of loaded ckpt, same as save_checkpoint_steps\n    --per_batch_size 6 \\\n    --full_batch 1 \\\n    --epoch_size 1 \\\n    --micro_interleaved_size 1 \\\n    --profiling 0 \\\n    --use_past \"true\" \\\n    --top_p 0.95 \\\n    --top_k_num 100 \\\n    --temperature 1.0 \\\n    --frequency_penalty 0.0 \\\n    --presence_penalty 0.0 \\\n    --strategy_load_ckpt_path \"/home/work/user-job-dir/start_1.6/strategy.ckpt\" \\\n    --tb_dir $LOG_PATH   \n"
  },
  {
    "path": "codegeex/mindspore/convertion_1p.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.pangu_alpha_fp16_predict import EvalNet, PanguAlphaModel\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    print(\"===args_opt: \", args_opt, flush=True)\n    print(\"===device_num is: \", device_num, flush=True)\n    args_opt.op_level_model_parallel_num = 1\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    print(\"===data_parallel_num is: \", data_parallel_num, flush=True)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    # Now only support single batch_size for predict\n    if args_opt.run_type == \"predict\":\n        batch_size = 1\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    print(\"======start load_distributed checkpoint\", flush=True)\n\n    time.sleep(rank * 0.5)\n    if not os.path.exists(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\")):\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n    ckpt_name = f\"code-13B0-50.ckpt\"  # TODO: set to current ckpt name\n    if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, \"rank_0\", ckpt_name)):\n        print(f\"Checkpoint from rank {rank} doesn't exist!\")\n    mox.file.copy(os.path.join(args_opt.load_ckpt_path, \"rank_0\", ckpt_name),\n                  os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n    param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n    # TODO: add them back if not for the 1st run!\n    if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n        args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n        args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n    if not os.path.exists(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}'):\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n    while True:\n        num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n        if num == device_num:\n            break\n        if rank % 8 == 0:\n            print(\"Loaded ckpt in step 1: \", num)\n        time.sleep(1)\n    net_not_load = load_param_into_net(pangu_alpha, param_dict)\n    print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    if not os.path.exists(\"/home/work/sfs/cache/ckpts_npy/\"):\n        os.mkdir(\"/home/work/sfs/cache/ckpts_npy/\")\n    for k, weight in pangu_alpha.parameters_dict().items():\n        print(k)\n        np.save(os.path.join(\"/home/work/sfs/cache/ckpts_npy/\", f\"{k}.npy\"), weight.asnumpy())\n    rank_obs_save_path = \"./\"  # TODO: set to current obs path for saving\n    if not mox.file.exists(rank_obs_save_path):\n        mox.file.make_dirs(rank_obs_save_path)\n    mox.file.copy_parallel(\"/home/work/sfs/cache/ckpts_npy/\", rank_obs_save_path)\n    print(\"======= npy saved\")\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate import generate, generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    samples = [\n        \"# language: Python\\ndef add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"def add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"# language: Python\\ndef optimization():\\n    '''\\n    Find the maximum of P=E**2*R/(R + r)**2 if E and r are fixed but R varies. Import sympy. Use sympy. Find where the derivative is equal to zero. Substitute the value of R into P.\\n    '''\\n\",\n        \"from typing import List\\n\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\",\n        \"// language: C++\\nint add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"int add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"bool prime(int n) {\\n    // Find whether n is a prime number\\n\",\n        \"// language: JavaScript\\nfunction add(a, b) {\\n    // Find the sum of a and b.\\n\",\n        \"# language: R\\nadd<-function(a, b) {\\n    # Find the sum of a and b.\\n\",\n    ]\n    verbose = False\n    for i, sample in enumerate(samples):\n        for _ in range(1):\n            tokenized_token = tokenizer.encode_code(sample)\n            input_ids = np.array(tokenized_token).reshape(1, -1)\n            # Call inference\n            generate_func = generate_increment if config.use_past else generate\n            t0 = time.perf_counter()\n            output_ids = generate_func(model_predict, input_ids, args_opt, verbose)\n            # Decode output ids to sentence\n            t1 = time.perf_counter()\n            output_samples = tokenizer.decode_code(output_ids.tolist())\n            output_samples_str = \"\".join(output_samples)\n            if rank % 8 == 0:\n                print(f\"=================== prompt {i} ====================\")\n                print(sample, flush=True)\n                print(f\"=================== generation {i} ====================\")\n                print(output_samples_str, flush=True)\n                print(\n                    f\"=== Total time (s): {t1 - t0}, {output_ids.shape[-1] - input_ids.shape[-1]} tokens, {(output_ids.shape[-1] - input_ids.shape[-1]) / (t1 - t0)} token/s\")\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/finetune.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanguAlpha train script\n\"\"\"\n\nimport datetime\nimport math\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport mindspore.nn as nn\nimport moxing as mox\nfrom mindspore import context\nfrom mindspore.context import ParallelMode\nfrom mindspore.nn.wrap.cell_wrapper import _VirtualDatasetCell, MicroBatchInterleaved\nfrom mindspore.nn.wrap.loss_scale import DynamicLossScaleUpdateCell\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn import TransformerOpParallelConfig, CrossEntropyLoss\nfrom mindspore.profiler import Profiler\nfrom mindspore.train.callback import ModelCheckpoint, CheckpointConfig\nfrom mindspore.train.callback import TimeMonitor\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_distributed_checkpoint, load_checkpoint, load_param_into_net\nfrom tensorboardX import SummaryWriter\n\nfrom src.adam import AdamWeightDecayOp\nfrom src.callbacks import EvalCallBack, LossCallBack, SaveCheckpointCallback\nfrom src.dataset_finetune import create_dataset\nfrom src.metrics import PPLMetric, ValidationLoss\nfrom src.pangu_alpha import PanguAlphaModel, PanGUAlphaWithFinetuneLoss\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.pangu_alpha_wrapcell_finetune import PanguAlphaTrainOneStepWithLossScaleCell\nfrom src.utils import LearningRate, get_args, FP32StateAdamWeightDecay\nfrom src.utils import download_data\n\nproject_root = os.path.abspath(\n    os.path.dirname(os.path.realpath(__file__)) + os.path.sep + \"..\")\nprint('project_root:', project_root)\n\n\ndef set_weight_decay(params):\n    \"\"\"\n    Set weight decay coefficient, zero for bias and layernorm, 1e-1 for rest\n    \"\"\"\n    decay_filter = lambda x: 'layernorm' not in x.name.lower() and \"bias\" not in x.name.lower()\n    decay_params = list(filter(decay_filter, params))\n    other_params = list(filter(lambda x: not decay_filter(x), params))\n    group_params = [\n        {\"params\": decay_params, \"weight_decay\": 1e-1},\n        {\"params\": other_params, \"weight_decay\": 0.0},\n        {\"order_params\": params},\n    ]\n    return group_params\n\n\ndef add_checkpoint_callback_policy(args_param, callback, rank_id):\n    r\"\"\"\n    Add checkpoint policy to callback.\n    \"\"\"\n    if args_param.save_checkpoint:\n        # checkpoint store epoch_num and step_num info\n        ckpt_append_info = [{\"epoch_num\": args_param.has_trained_epoches, \"step_num\": args_param.has_trained_steps}]\n        ckpt_config = CheckpointConfig(\n            save_checkpoint_steps=args_param.save_checkpoint_steps,\n            keep_checkpoint_max=args_param.keep_checkpoint_max,\n            integrated_save=False,\n            append_info=ckpt_append_info,\n        )\n\n        # save checkpoint into rank directory\n        ckpoint_cb = ModelCheckpoint(prefix=args_param.ckpt_name_prefix + str(rank_id),\n                                     directory=os.path.join(args_param.save_checkpoint_path, f\"rank_{rank_id}\"),\n                                     config=ckpt_config)\n\n        callback.append(ckpoint_cb)\n\n        saveckpt_cb = SaveCheckpointCallback(cache_dir=args_param.save_checkpoint_path,\n                                             bucket=args_param.save_checkpoint_obs_path,\n                                             local_rank=rank_id,\n                                             has_trained_epoch=args_param.has_trained_epoches,\n                                             has_trained_step=args_param.has_trained_steps,\n                                             syn_times=args_param.save_checkpoint_steps)\n        callback.append(saveckpt_cb)\n\n\ndef set_parallel_context(args_opt):\n    r\"\"\"Set parallel context\"\"\"\n    D.init()\n    device_num = D.get_group_size()\n    rank = D.get_rank()\n    print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n    if device_num < 128:\n        args_opt.optimizer_shard = 0\n    context.reset_auto_parallel_context()\n    context.set_auto_parallel_context(\n        parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL, gradients_mean=False,\n        full_batch=bool(args_opt.full_batch), strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path,\n        enable_parallel_optimizer=bool(args_opt.optimizer_shard), strategy_ckpt_save_file='strategy.ckpt',\n    )\n    set_algo_parameters(elementwise_op_strategy_follow=True)\n    _set_multi_subgraphs()\n    return rank, device_num\n\n\ndef run_train(args_opt):\n    r\"\"\"The main training process.\"\"\"\n    os.environ[\"HCCL_CONNECT_TIMEOUT\"] = \"2000\"\n    # Set execution mode\n    context.set_context(\n        mode=context.GRAPH_MODE, device_target=args_opt.device_target\n    )\n    if args_opt.profiling:\n        profiler = Profiler(output_path=\"/cache/profiler_data\")\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    rank = 0\n    device_num = 1\n    if args_opt.distribute == \"true\":\n        rank, device_num = set_parallel_context(args_opt)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n\n    # copy data from the cloud to the /cache/Data\n    cache_url = '/cache/Data/'\n    eval_cache_url = '/cache/EvalData/'\n    if not args_opt.offline:\n        download_data(src_data_url=args_opt.data_url, tgt_data_path=cache_url, rank=rank)\n        download_data(src_data_url=args_opt.eval_data_url, tgt_data_path=eval_cache_url, rank=rank)\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    batch_size = args_opt.per_batch_size * data_parallel_num\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num, model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=bool(args_opt.optimizer_shard),\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp), recompute=True,\n                                                  gradient_aggregation_group=args_opt.gradient_aggregation_group)\n\n    micro_interleaved_size = args_opt.micro_interleaved_size\n    config = PanguAlphaConfig(\n        batch_size=batch_size // micro_interleaved_size,\n        num_heads=args_opt.num_heads,\n        hidden_size=args_opt.embedding_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        num_layers=args_opt.num_layers,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        eod_token=args_opt.eod_id,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == \"fp32\"\n        else mstype.float16,\n        dropout_rate=args_opt.dropout_rate,\n        enable_offload=bool(args_opt.opt_offload),\n        use_moe=bool(args_opt.use_moe),\n        per_dp_dim_expert_num=args_opt.per_dp_dim_expert_num,\n        hidden_act=\"fast_gelu\" if args_opt.device_target != \"GPU\" else \"gelu\",\n        parallel_config=parallel_config,\n    )\n    print(\"===config is: \", config, flush=True)\n    # Define network\n    pangu_alpha = PanguAlphaModel(config=config)\n    loss = CrossEntropyLoss(config.parallel_config.dp_mp_config)\n    if micro_interleaved_size > 1:\n        print(\"===using MicroBatchInterleaved\", flush=True)\n        pangu_alpha_with_loss_net = MicroBatchInterleaved(PanGUAlphaWithFinetuneLoss(config, pangu_alpha, loss),\n                                                          micro_interleaved_size)\n    else:\n        pangu_alpha_with_loss_net = PanGUAlphaWithFinetuneLoss(config, pangu_alpha, loss)\n    pangu_alpha_with_loss = _VirtualDatasetCell(pangu_alpha_with_loss_net)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    # Warm-up and cosine decay learning rate\n    lr = LearningRate(learning_rate=args_opt.start_lr, end_learning_rate=args_opt.end_lr,\n                      warmup_steps=args_opt.warmup_step, decay_steps=args_opt.decay_steps)\n    params = pangu_alpha_with_loss.trainable_params()\n    group_params = set_weight_decay(params)\n    if args_opt.optimizer == \"lamb\":\n        optimizer = nn.Lamb(group_params, learning_rate=lr)\n    elif args_opt.opt_offload:\n        optimizer = AdamWeightDecayOp(group_params, learning_rate=lr, eps=1e-8, beta1=0.9, beta2=0.95,\n                                      param_init_type=config.param_init_type)\n    else:\n        optimizer = FP32StateAdamWeightDecay(group_params, learning_rate=lr, eps=1e-8, beta1=0.9, beta2=0.95)\n    # Initial scaling sens\n    loss_scale_value = math.pow(2, 32)\n    epoch_num = args_opt.epoch_size\n\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.05)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}_21-{args_opt.load_ckpt_epoch}_2.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        # TODO: remove after warming-up!\n        param_dict.pop('global_step')\n        # TODO: add them back if not for the 1st run!\n        # if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n        #     args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n        #     args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        # args_opt.has_trained_steps = 9000\n\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 64 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n\n    # if args_opt.tb_dir is not None and rank == device_num - 1:\n    if args_opt.tb_dir is not None and rank == 0:\n        os.makedirs(args_opt.tb_dir, exist_ok=True)\n        summary_writer = SummaryWriter(args_opt.tb_dir)\n        os.system(f'chmod 777 -R {args_opt.tb_dir}')\n    else:\n        summary_writer = None\n\n    # Dataset loading mindrecord files\n    ds, ds_eval = create_dataset(config.batch_size * micro_interleaved_size, data_path=args_opt.code_data,\n                                 args_opt=args_opt, data_start_index=0,\n                                 eod_reset=config.eod_reset, full_batch=bool(args_opt.full_batch),\n                                 eod_id=args_opt.eod_id,\n                                 device_num=device_num, rank=rank, epoch=epoch_num,\n                                 train_and_eval=bool(args_opt.train_and_eval_mode), val_ratio=0.001)\n    actual_epoch_num = int(ds.get_dataset_size() / args_opt.sink_size)\n    callback = [\n        TimeMonitor(args_opt.sink_size),\n    ]\n    update_cell = DynamicLossScaleUpdateCell(loss_scale_value=loss_scale_value, scale_factor=2, scale_window=1000)\n    pangu_alpha_with_grads = PanguAlphaTrainOneStepWithLossScaleCell(\n        pangu_alpha_with_loss, optimizer=optimizer, scale_update_cell=update_cell, enable_global_norm=True,\n        config=config)\n    if ds_eval:\n        ppl_metric = PPLMetric(config.seq_length)\n        validation_loss = ValidationLoss(config.seq_length)\n        model = Model(pangu_alpha_with_grads, eval_network=pangu_alpha_with_loss,\n                      metrics={\"ppl\": ppl_metric, \"validation_loss\": validation_loss})\n        callback.append(\n            EvalCallBack(\n                model=model,\n                eval_dataset=ds_eval,\n                ppl_metric=ppl_metric,\n                validation_loss=validation_loss,\n                print_per_step=20,\n                has_trained_step=args_opt.has_trained_steps,\n                local_rank=rank,\n                rank_size=device_num,\n                tb_writer=summary_writer\n            )\n        )\n    else:\n        model = Model(pangu_alpha_with_grads)\n    if args_opt.load_ckpt_epoch > 0:\n        print(\"===build model and load ckpt\")\n        time_stamp = datetime.datetime.now()\n        print(f\"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')} before building\", flush=True)\n        model.build(train_dataset=ds, sink_size=args_opt.sink_size, epoch=actual_epoch_num)\n        time_stamp = datetime.datetime.now()\n        print(f\"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')} before loading ckpt\", flush=True)\n        load_param_into_net(pangu_alpha_with_loss, param_dict)\n\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/2/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/2'))\n            if num == device_num:\n                break\n            if rank % 64 == 0:\n                print(\"Loaded ckpt in step 2: \", num)\n            time.sleep(1)\n\n    callback.append(\n        LossCallBack(\n            name=args_opt.ckpt_name_prefix,\n            dataset_size=args_opt.sink_size,\n            local_rank=rank,\n            rank_size=device_num,\n            has_trained_epoch=args_opt.has_trained_epoches,\n            has_trained_step=args_opt.has_trained_steps,\n            micro_size=args_opt.micro_size * micro_interleaved_size,\n            tb_writer=summary_writer,\n        )\n    )\n    if not args_opt.profiling:\n        add_checkpoint_callback_policy(args_opt, callback, rank)\n    if args_opt.incremental_training:\n        strategy = model.infer_train_layout(train_dataset=ds, sink_size=args_opt.sink_size)\n        print(\"======start load_distributed checkpoint\", flush=True)\n        # For 2.6B and 13B models, the number of ckpt files is 512.\n        ckpt_file_list = [os.path.join(args_opt.load_ckpt_path, f\"filerted_{ckpt_rank}.ckpt\") for ckpt_rank in\n                          range(0, 512)]\n        print(f\"Loading from path {ckpt_file_list[0]}\", flush=True)\n        load_distributed_checkpoint(model.train_network, ckpt_file_list, strategy)\n    print(\"Dataset size: {}, actual_epoch_num: {}\".format(ds.get_dataset_size(), actual_epoch_num), flush=True)\n\n    try:\n        model.train(10 if args_opt.profiling else actual_epoch_num, ds, callbacks=callback,\n                    sink_size=args_opt.sink_size, dataset_sink_mode=True)\n    finally:\n        if args_opt.profiling:\n            jobid = os.environ[\"BATCH_JOB_ID\"]\n            profiler.analyse()\n            rank_id = rank\n            if context.get_context(\"save_graphs\"):\n                mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n                mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                                       dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n            if rank_id % 8 == 0:\n                mox.file.make_dirs(\"s3://wudao-1/yyf/profiler_\" + jobid)\n                mox.file.copy_parallel(src_url=\"/cache/profiler_data\",\n                                       dst_url=\"s3://wudao-1/yyf/profiler_\" + jobid + \"/\" + str(rank_id))\n\n\nif __name__ == \"__main__\":\n    opt = get_args()\n    set_parse(opt)\n    if opt.per_batch_size == 0:\n        raise ValueError(\"The per_batch_size has not been configured.\")\n    if opt.stage_num > 1:\n        if bool(opt.use_moe) or bool(opt.opt_offload):\n            raise ValueError(\"Currently, moe and host device mode is not supported in pipeline parallel.\")\n    else:\n        run_train(opt)\n"
  },
  {
    "path": "codegeex/mindspore/generation.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha import EvalNet, PanguAlphaModel\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    if args_opt.run_type == \"predict\":\n        batch_size = 1\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.1)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate import generate, generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    samples = [\n        \"Hello there!\",\n        \"# language: Python\\ndef add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"def add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"# language: Python\\ndef optimization():\\n    '''\\n    Find the maximum of P=E**2*R/(R + r)**2 if E and r are fixed but R varies. Import sympy. Use sympy. Find where the derivative is equal to zero. Substitute the value of R into P.\\n    '''\\n\",\n        \"from typing import List\\n\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\",\n        \"// language: JavaScript\\nfunction prime(n) {\\n    // Find whether n is a prime number.\\n\",\n        \"string morse_encoder(string text) {\\n    // Translate text into Morse code\\n\",\n        \"def morse_encoder(text):\\n    # Translate text into Morse code separated by spaces\\n\",\n        f\"% language: MATLAB\\nfunction x = solve(A, b)\\n    % Solve Ax = b\\n\",\n        f\"% language: MATLAB\\nfunction [L, U] = lu(A)\\n    % Return LU factorization of A\\n\",\n        \"def TCPState(state):\\n    # given a state in TCP protocol, return a list of next possible states\\n\",\n        \"def coordinates(p1, p2, precision=0)\\n    # p1 is (x1, y1), p2 is (x2, y2), return the distance between p1 and p2 on a cartesian plane, rounded to precision\\n\",\n        \"double travel(double total_time, double run_time, double rest_time, double speed) {\\n    // the horse runs for run_time with speed speed and rests for rest_time, return the distance it travels after total_time\\n\",\n        \"def travel(total_time, run_time, rest_time, speed):\\n    # the horse runs for run_time with speed speed and rests for rest_time, return the distance it travels after total_time\\n\",\n        \"// language: C++\\nint add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"int add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"// language: C++\\nvoid sort(int *array, int len) {\\n   // Sort the array with length len\\n\",\n        \"bool prime(int n) {\\n    // Find whether n is a prime number\\n\",\n        \"def prime(n):\\n    # Find whether n is a prime number\\n\",\n        f\"% language: MATLAB\\nfunction H = hilbert(n)\\n    % Return Hilbert matrix of size n * n\\n\",\n        f\"% language: MATLAB\\nfunction L = cholesky(A)\\n    % Return Cholesky factorization of symmetric positive definete matrix A\\n\",\n        \"// language: JavaScript\\nfunction add(a, b) {\\n    // Find the sum of a and b.\\n\",\n        \"# language: R\\nadd<-function(a, b) {\\n    # Find the sum of a and b.\\n\",\n    ]\n    verbose = False\n    for i, sample in enumerate(samples):\n        for _ in range(1):\n            tokenized_token = tokenizer.encode_code(sample)\n            input_ids = np.array(tokenized_token).reshape(1, -1)\n            # Call inference\n            generate_func = generate_increment if config.use_past else generate\n            t0 = time.perf_counter()\n            output_ids = generate_func(model_predict, input_ids, args_opt, verbose)\n            # Decode output ids to sentence\n            t1 = time.perf_counter()\n            output_samples = tokenizer.decode_code(output_ids.tolist())\n            output_samples_str = \"\".join(output_samples)\n            if rank % 8 == 0:\n                print(f\"=================== prompt {i} ====================\")\n                print(sample, flush=True)\n                print(f\"=================== generation {i} ====================\")\n                print(output_samples_str, flush=True)\n                print(\n                    f\"=== Total time (s): {t1 - t0}, {output_ids.shape[-1] - input_ids.shape[-1]} tokens, {(output_ids.shape[-1] - input_ids.shape[-1]) / (t1 - t0)} token/s\")\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_1p.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.pangu_alpha_fp16_predict import EvalNet, PanguAlphaModel\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    print(\"===args_opt: \", args_opt, flush=True)\n    print(\"===device_num is: \", device_num, flush=True)\n    args_opt.op_level_model_parallel_num = 1\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    print(\"===data_parallel_num is: \", data_parallel_num, flush=True)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    # Now only support single batch_size for predict\n    if args_opt.run_type == \"predict\":\n        batch_size = 1\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.5)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B0-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        # TODO: add them back if not for the 1st run!\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate import generate, generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    samples = [\n        \"# language: Python\\ndef add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"def add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"# language: Python\\ndef optimization():\\n    '''\\n    Find the maximum of P=E**2*R/(R + r)**2 if E and r are fixed but R varies. Import sympy. Use sympy. Find where the derivative is equal to zero. Substitute the value of R into P.\\n    '''\\n\",\n        \"from typing import List\\n\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\",\n        \"// language: C++\\nint add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"int add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"bool prime(int n) {\\n    // Find whether n is a prime number\\n\",\n        \"// language: JavaScript\\nfunction add(a, b) {\\n    // Find the sum of a and b.\\n\",\n        \"# language: R\\nadd<-function(a, b) {\\n    # Find the sum of a and b.\\n\",\n    ]\n    verbose = False\n    for i, sample in enumerate(samples):\n        for _ in range(1):\n            tokenized_token = tokenizer.encode_code(sample)\n            input_ids = np.array(tokenized_token).reshape(1, -1)\n            # Call inference\n            generate_func = generate_increment if config.use_past else generate\n            t0 = time.perf_counter()\n            output_ids = generate_func(model_predict, input_ids, args_opt, verbose)\n            # Decode output ids to sentence\n            t1 = time.perf_counter()\n            output_samples = tokenizer.decode_code(output_ids.tolist())\n            output_samples_str = \"\".join(output_samples)\n            if rank % 8 == 0:\n                print(f\"=================== prompt {i} ====================\")\n                print(sample, flush=True)\n                print(f\"=================== generation {i} ====================\")\n                print(output_samples_str, flush=True)\n                print(\n                    f\"=== Total time (s): {t1 - t0}, {output_ids.shape[-1] - input_ids.shape[-1]} tokens, {(output_ids.shape[-1] - input_ids.shape[-1]) / (t1 - t0)} token/s\")\n        break\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_batch.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha import EvalNet, PanguAlphaModel\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.1)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate_finetune import generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    samples = [\n        \"Hello there!\",\n        \"# language: Python\\ndef add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"def add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"# language: Python\\ndef optimization():\\n    '''\\n    Find the maximum of P=E**2*R/(R + r)**2 if E and r are fixed but R varies. Import sympy. Use sympy. Find where the derivative is equal to zero. Substitute the value of R into P.\\n    '''\\n\",\n        \"from typing import List\\n\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\",\n        \"// language: JavaScript\\nfunction prime(n) {\\n    // Find whether n is a prime number.\\n\",\n        \"string morse_encoder(string text) {\\n    // Translate text into Morse code\\n\",\n        \"def morse_encoder(text):\\n    # Translate text into Morse code separated by spaces\\n\",\n        f\"% language: MATLAB\\nfunction x = solve(A, b)\\n    % Solve Ax = b\\n\",\n        f\"% language: MATLAB\\nfunction [L, U] = lu(A)\\n    % Return LU factorization of A\\n\",\n        \"def TCPState(state):\\n    # given a state in TCP protocol, return a list of next possible states\\n\",\n        \"def coordinates(p1, p2, precision=0)\\n    # p1 is (x1, y1), p2 is (x2, y2), return the distance between p1 and p2 on a cartesian plane, rounded to precision\\n\",\n        \"double travel(double total_time, double run_time, double rest_time, double speed) {\\n    // the horse runs for run_time with speed speed and rests for rest_time, return the distance it travels after total_time\\n\",\n        \"def travel(total_time, run_time, rest_time, speed):\\n    # the horse runs for run_time with speed speed and rests for rest_time, return the distance it travels after total_time\\n\",\n        \"// language: C++\\nint add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"int add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"// language: C++\\nvoid sort(int *array, int len) {\\n   // Sort the array with length len\\n\",\n        \"bool prime(int n) {\\n    // Find whether n is a prime number\\n\",\n        \"def prime(n):\\n    # Find whether n is a prime number\\n\",\n        f\"% language: MATLAB\\nfunction H = hilbert(n)\\n    % Return Hilbert matrix of size n * n\\n\",\n        f\"% language: MATLAB\\nfunction L = cholesky(A)\\n    % Return Cholesky factorization of symmetric positive definete matrix A\\n\",\n        \"// language: JavaScript\\nfunction add(a, b) {\\n    // Find the sum of a and b.\\n\",\n        \"# language: R\\nadd<-function(a, b) {\\n    # Find the sum of a and b.\\n\",\n    ]\n    samples = [tokenizer.encode_code(l) for l in samples]\n    generations = []\n    batch_size = config.batch_size\n    verbose = (rank % 8 == 0)\n    save_path = f'/home/work/sfs/xx/pangu_alpha_code/generation_batch/{args_opt.temperature}.txt'  # TODO: set as current save path\n    save_dir = os.path.split(save_path)[0]\n    if rank == 0:\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        if not os.path.exists(save_path):\n            f = open(save_path, 'w')\n            f.close()\n        os.system(f'sudo chmod 777 -R {save_dir}')\n    batch = []\n    input_length = []\n    sample_ids = []\n    for i, sample in enumerate(samples):\n        tokenized_token = sample\n        input_ids = np.array(tokenized_token).reshape(1, -1)\n        batch.append(input_ids)\n        input_length.append(input_ids.shape[1])\n        sample_ids.append(i)\n        if (i + 1) % batch_size == 0:\n            valid_length = max(input_length)\n            for j in range(len(batch)):\n                batch[j] = np.pad(batch[j], ((0, 0), (0, valid_length - input_length[j])),\n                                  'constant', constant_values=(args_opt.end_token, args_opt.end_token))\n            input_ids = np.concatenate(batch, axis=0)\n            t0 = time.perf_counter()\n            output_ids = generate_increment(model_predict, input_ids, input_length, args_opt, tokenizer, verbose)\n            t1 = time.perf_counter()\n            batch, input_length = [], []\n            if rank % 8 == 0:\n                print(f\"=== Batch time: {t1 - t0}s\")\n                for k, out in enumerate(output_ids):\n                    if not out.endswith('\\n'):\n                        out = out + '\\n'\n                    print(f\"=================== generation {sample_ids[k]} ====================\")\n                    print(out, flush=True)\n                    generations.append(out)\n                    if rank == 0:\n                        f = open(save_path, 'a')\n                        f.write(generations[-1])\n                        f.close()\n            sample_ids = []\n    if len(batch) > 0:\n        for j in range(batch_size - len(sample_ids)):\n            batch.append(np.zeros((1, 1)))\n            input_length.append(-1)\n        valid_length = max(input_length)\n        for j in range(len(batch)):\n            batch[j] = np.pad(batch[j], ((0, 0), (0, valid_length - batch[j].shape[1])),\n                              'constant', constant_values=(args_opt.end_token, args_opt.end_token))\n        input_ids = np.concatenate(batch, axis=0)\n        t0 = time.perf_counter()\n        output_ids = generate_increment(model_predict, input_ids, input_length, args_opt, tokenizer, verbose)\n        t1 = time.perf_counter()\n        if rank % 8 == 0:\n            print(f\"=== Batch time: {t1 - t0}s\")\n            for k, out in enumerate(output_ids):\n                if input_length[k] == -1:\n                    break\n                if not out.endswith('\\n'):\n                    out = out + '\\n'\n                print(f\"=================== generation {sample_ids[k]} ====================\")\n                print(out, flush=True)\n                generations.append(out)\n                if rank == 0:\n                    f = open(save_path, 'a')\n                    f.write(generations[-1])\n                    f.close()\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    print(\"===Enter main!\")\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_finetune.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha import EvalNet, PanguAlphaModel\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.sat_dataset import LMDBDataset\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    # data_parallel_num = 1\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.1)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate_finetune import generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    lang = args_opt.language\n    data_path = os.path.join(args_opt.code_data, lang, 'test')\n    dataset = LMDBDataset(data_path)\n    samples = []\n    for i in range(len(dataset)):\n        prompt, length = dataset[i]\n        samples.append(prompt[:length])\n    generations = []\n    batch_size = config.batch_size\n    verbose = (rank % 8 == 0)\n    save_path = f'/home/work/sfs/xx/pangu_alpha_code/generation_finetune/code_translation/{lang}/temp_{args_opt.temperature}.txt'  # TODO: set as current save path\n    save_dir = os.path.split(save_path)[0]\n    if rank == 0:\n        if not os.path.exists(save_dir):\n            os.makedirs(save_dir)\n        if not os.path.exists(save_path):\n            f = open(save_path, 'w')\n            f.close()\n        os.system(f'sudo chmod 777 -R {os.path.split(save_dir)[0]}')\n    batch = []\n    input_length = []\n    sample_ids = []\n    for i, sample in enumerate(samples):\n        tokenized_token = sample\n        input_ids = np.array(tokenized_token).reshape(1, -1)\n        batch.append(input_ids)\n        input_length.append(input_ids.shape[1])\n        sample_ids.append(i)\n        if (i + 1) % batch_size == 0:\n            valid_length = max(input_length)\n            for j in range(len(batch)):\n                batch[j] = np.pad(batch[j], ((0, 0), (0, valid_length - input_length[j])),\n                                  'constant', constant_values=(args_opt.end_token, args_opt.end_token))\n            input_ids = np.concatenate(batch, axis=0)\n            t0 = time.perf_counter()\n            output_ids = generate_increment(model_predict, input_ids, input_length, args_opt, tokenizer, verbose)\n            t1 = time.perf_counter()\n            batch, input_length = [], []\n            if rank % 8 == 0:\n                print(f\"=== Batch time: {t1 - t0}s\")\n                for k, out in enumerate(output_ids):\n                    print(f\"=================== generation {sample_ids[k]} ====================\")\n                    print(out, flush=True)\n                    generations.append(out)\n                    if rank == 0:\n                        f = open(save_path, 'a')\n                        f.write(generations[-1])\n                        if not generations[-1].endswith('\\n'):\n                            f.write('\\n')\n                        f.close()\n            sample_ids = []\n    if len(batch) > 0:\n        valid_length = max(input_length)\n        for j in range(batch_size - len(sample_ids)):\n            batch.append(np.zeros((1, 1)))\n            input_length.append(-1)\n        for j in range(len(batch)):\n            batch[j] = np.pad(batch[j], ((0, 0), (0, valid_length - batch[j].shape[1])),\n                              'constant', constant_values=(args_opt.end_token, args_opt.end_token))\n        input_ids = np.concatenate(batch, axis=0)\n        t0 = time.perf_counter()\n        output_ids = generate_increment(model_predict, input_ids, input_length, args_opt, tokenizer, verbose)\n        t1 = time.perf_counter()\n        if rank % 8 == 0:\n            print(f\"=== Batch time: {t1 - t0}s\")\n            print(f\"=== Input lengths: {input_length}, length: {len(input_length)}\")\n            print(f\"=== Input ids shape: {input_ids.shape}\")\n            print(f\"=== Num of outputs: {len(output_ids)}\")\n            for k, out in enumerate(output_ids):\n                if input_length[k] == -1:\n                    break\n                print(f\"=================== generation {sample_ids[k]} ====================\")\n                print(out, flush=True)\n                generations.append(out)\n                if rank == 0:\n                    f = open(save_path, 'a')\n                    f.write(generations[-1])\n                    if not generations[-1].endswith('\\n'):\n                        f.write('\\n')\n                    f.close()\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    print(\"===Enter main!\")\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_humaneval.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport json\nimport os\nimport time\n\nimport mindspore\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha import EvalNet, PanguAlphaModel\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.1)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate_humaneval import generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    humaneval_path = '/home/work/sfs/xx/human_eval_x/data/humaneval_cpp.jsonl'  # TODO: set as current humaneval path\n    humaneval = open(humaneval_path, 'r').readlines()\n    humaneval = [json.loads(task) for task in humaneval if len(task) != 0]\n    samples = [task['prompt'] for task in humaneval]\n    generations = []\n    batch_size = config.batch_size\n    verbose = (rank % 8 == 0)\n    part = int(args_opt.part)\n    gen_times = 12 # TODO: set as generation times of current task\n    print(f\"gen times: {gen_times}, part: {part}\")\n    save_path = f'/home/work/sfs/xx/pangu_alpha_code/generation_humanevalx/cpp/temp_{args_opt.temperature}/samples_{args_opt.load_ckpt_epoch}_part_{part}.jsonl'  # TODO: set as current save path\n    if rank == 0 and not os.path.exists(save_path):\n        os.makedirs(os.path.split(save_path)[0], exist_ok=True)\n        f = open(save_path, 'w')\n        f.close()\n        os.system(f'sudo chmod 777 {save_path}')\n    for i, sample in enumerate(samples):\n        tag = \"// language: C++\\n\"\n        sample = tag + sample\n        if rank % 8 == 0:\n            print(f\"=================== prompt {i} ====================\")\n            print(sample, flush=True)\n        for j in range((gen_times + batch_size - 1) // batch_size):\n            tokenized_token = tokenizer.encode_code(sample)\n            input_ids = np.array(tokenized_token).reshape(1, -1).repeat(batch_size, axis=0)\n            # Call inference\n            mindspore.set_seed(j + 8 * part)\n            generate_func = generate_increment\n            t0 = time.perf_counter()\n            output_ids = generate_func(model_predict, input_ids, args_opt, tokenizer, verbose)\n            t1 = time.perf_counter()\n            if rank % 8 == 0:\n                print(f\"=== Batch time: {t1 - t0}s\")\n                for k, out in enumerate(output_ids):\n                    print(f\"=================== generation {j * batch_size + k} ====================\")\n                    print(out, flush=True)\n                    generations.append(json.dumps({'task_id': humaneval[i]['task_id'], 'completion': out}))\n                    if rank == 0:\n                        f = open(save_path, 'a')\n                        f.write(generations[-1] + '\\n')\n                        f.close()\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    print(\"===Enter main!\")\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_values.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha import PanguAlphaModel, LogitsNet\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = LogitsNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0 for _ in range(batch_size)]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.1)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    batch_size = config.batch_size\n    input_ids = np.array(\n        [8189, 11059, 198, 29584, 25, 198, 11377, 1398, 28186, 1391, 198, 50268, 11377, 9037, 25131, 468, 26125, 36,\n         3639, 7, 600, 21737, 997, 82, 11, 493, 11387, 8, 1391, 198, 50272, 1640, 357, 600, 1312, 796, 657, 26, 1312,\n         1279, 997, 82, 13, 13664, 532, 352, 26, 1312, 29577, 1391, 198, 50276, 1640, 357, 600, 474, 796, 1312, 1343,\n         352, 26, 474, 1279, 997, 82, 13, 13664, 26, 474, 29577, 1391, 198, 50280, 361, 357, 37372, 13, 8937, 7, 77,\n         5700, 58, 72, 60, 532, 997, 82, 58, 73, 12962, 1279, 11387, 8, 1391, 198, 50284, 7783, 2081, 26, 198, 50280,\n         92, 198, 50276, 92, 198, 50272, 92, 198, 50272, 7783, 3991, 26, 198, 50268, 92, 198, 92, 198, 5247, 25, 198],\n        dtype=np.int32)\n    valid_length = input_ids.shape[0]\n    input_ids = np.concatenate((input_ids, np.ones(2048 - valid_length, dtype=np.int32) * 50256))\n    attention_mask = np.tril(np.ones((2048, 2048)))\n    attention_mask[valid_length:] = 0\n    input_ids = input_ids.reshape(1, -1).repeat(config.batch_size, axis=0)\n    current_index = valid_length - 1 if valid_length - 1 > 0 else 0\n    init = Tensor([False], mstype.bool_)\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    batch_valid_length = Tensor(np.array([current_index for _ in range(batch_size)]), mstype.int32)\n    output_logits = model_predict.predict(Tensor(input_ids, mstype.int32),\n                                          init, batch_valid_length)\n    output = output_logits.asnumpy()\n    if rank == 0:\n        np.save(\"/home/work/sfs/xx/pangu_alpha_code/output_6_7375_8.13.npy\", output)  # TODO: set as current save path\n        os.system(\n            \"chmod 777 /home/work/sfs/xx/pangu_alpha_code/output_6_7375_8.13.npy\")  # TODO: set as current save path\n        print(\"== Output shape: \", output.shape)\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    print(\"===Enter main!\")\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/generation_values_1p.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanGu predict run\n\"\"\"\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport moxing as mox\nimport numpy as np\nfrom mindspore import context, Tensor\nfrom mindspore import export\nfrom mindspore.context import ParallelMode\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn.transformer import TransformerOpParallelConfig\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_checkpoint, load_param_into_net\n\nfrom src.code_tokenizer import CodeTokenizer\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.pangu_alpha_fp16_predict import EvalNet, PanguAlphaModel\nfrom src.utils import get_args\n\n\ndef load_model(args_opt):\n    r\"\"\"\n     The main function for load model\n    \"\"\"\n    # Set execution mode\n    context.set_context(save_graphs=False,\n                        mode=context.GRAPH_MODE,\n                        device_target=args_opt.device_target)\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    if args_opt.distribute == \"true\":\n        D.init()\n        device_num = D.get_group_size()\n        rank = D.get_rank()\n        print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL,\n            gradients_mean=False,\n            full_batch=True,\n            loss_repeated_mean=True,\n            enable_parallel_optimizer=False,\n            pipeline_stages=args_opt.stage_num)\n        set_algo_parameters(elementwise_op_strategy_follow=True)\n        _set_multi_subgraphs()\n\n    else:\n        rank = 0\n        device_num = 1\n        context.reset_auto_parallel_context()\n        context.set_auto_parallel_context(\n            strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    use_past = (args_opt.use_past == \"true\")\n    print('local_rank:{}, start to run...'.format(rank), flush=True)\n    if args_opt.export:\n        use_past = True\n    # Set model property\n    print(\"===args_opt: \", args_opt, flush=True)\n    print(\"===device_num is: \", device_num, flush=True)\n    args_opt.op_level_model_parallel_num = 1\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    print(\"===data_parallel_num is: \", data_parallel_num, flush=True)\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=False,\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True)\n\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num\n\n    if args_opt.run_type == \"predict\":\n        batch_size = 1\n    config = PanguAlphaConfig(\n        batch_size=batch_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        hidden_size=args_opt.embedding_size,\n        num_layers=args_opt.num_layers,\n        num_heads=args_opt.num_heads,\n        post_layernorm_residual=False,\n        dropout_rate=0.0,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        use_past=use_past,\n        eod_token=args_opt.eod_id,\n        eod_reset=False,\n        parallel_config=parallel_config,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == 'fp32'\n        else mstype.float16,\n    )\n    print(\"===config is: \", config, flush=True)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    ckpt_name = args_opt.load_ckpt_name\n    # Define network\n    pangu_alpha = PanguAlphaModel(config)\n    eval_net = EvalNet(pangu_alpha, pad_token=50256)\n    eval_net.set_train(False)\n    model_predict = Model(eval_net)\n    # Compile network and obtain tensor layout for loading ckpt\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    if args_opt.distribute == \"false\":\n        predict_layout = None\n    elif config.use_past:\n        batch_valid_length = Tensor(np.array([0]), mstype.int32)\n        init_true = Tensor([True], mstype.bool_)\n        print(\"Input shape:\", inputs_np.shape, flush=True)\n        inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n        print(\"is_first_iteration=True\", flush=True)\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index, init_true, batch_valid_length)\n        model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n        print(\"is_first_iteration=False\", flush=True)\n        init_false = Tensor([False], mstype.bool_)\n        _ = model_predict.infer_predict_layout(inputs_np_1, current_index, init_false, batch_valid_length)\n    else:\n        predict_layout = model_predict.infer_predict_layout(inputs_np, current_index)\n\n    if context.get_context(\"save_graphs\"):\n        print(\"==============save_graph\", flush=True)\n        jobid = os.environ[\"BATCH_JOB_ID\"]\n        rank_id = rank\n        mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n        mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                               dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n    print(\"======start load_distributed checkpoint\", flush=True)\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.5)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B0-{args_opt.load_ckpt_epoch}.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        # TODO: add them back if not for the 1st run!\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n            args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 8 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n        net_not_load = load_param_into_net(pangu_alpha, param_dict)\n        print(\"====== load_distributed checkpoint done, net_not_load: \", net_not_load, flush=True)\n    return model_predict, config, rank\n\n\ndef export_mindir(model_predict, config):\n    \"\"\"Export mindir model\"\"\"\n    inputs_np = Tensor(np.ones(shape=(config.batch_size, config.seq_length)), mstype.int32)\n    current_index = Tensor(np.array([0]), mstype.int32)\n\n    batch_valid_length = Tensor(np.array([0]), mstype.int32)\n    init_true = Tensor([True], mstype.bool_)\n    inputs_np_1 = Tensor(np.ones(shape=(config.batch_size, 1)), mstype.int32)\n\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=True)\n    export(model_predict.predict_network, inputs_np, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1024', file_format='MINDIR')\n    model_predict.predict_network.add_flags_recursive(is_first_iteration=False)\n    export(model_predict.predict_network, inputs_np_1, current_index,\n           init_true, batch_valid_length, file_name='pangu_alpha_1', file_format='MINDIR')\n    print(\"Export finished and now exit.\")\n\n\ndef run_predict(model_predict, config, args_opt, rank):\n    \"\"\"run predict\"\"\"\n    from src.generate import generate, generate_increment\n    # Define tokenizer\n    tokenizer = CodeTokenizer(mode='6b')\n\n    # Tokenize input sentence to ids\n    samples = [\n        \"# language: Python\\ndef add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"def add(a, b):\\n    '''\\n    Find the sum of a and b.\\n    '''\\n\",\n        \"# language: Python\\ndef optimization():\\n    '''\\n    Find the maximum of P=E**2*R/(R + r)**2 if E and r are fixed but R varies. Import sympy. Use sympy. Find where the derivative is equal to zero. Substitute the value of R into P.\\n    '''\\n\",\n        \"from typing import List\\n\\n\\ndef has_close_elements(numbers: List[float], threshold: float) -> bool:\\n    \\\"\\\"\\\" Check if in given list of numbers, are any two numbers closer to each other than\\n    given threshold.\\n    >>> has_close_elements([1.0, 2.0, 3.0], 0.5)\\n    False\\n    >>> has_close_elements([1.0, 2.8, 3.0, 4.0, 5.0, 2.0], 0.3)\\n    True\\n    \\\"\\\"\\\"\\n\",\n        \"// language: C++\\nint add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"int add(int a, int b) {\\n    /* Find the sum of a and b. */\\n\",\n        \"bool prime(int n) {\\n    // Find whether n is a prime number\\n\",\n        \"// language: JavaScript\\nfunction add(a, b) {\\n    // Find the sum of a and b.\\n\",\n        \"# language: R\\nadd<-function(a, b) {\\n    # Find the sum of a and b.\\n\",\n    ]\n    # verbose = (rank == 0)\n    verbose = False\n    for i, sample in enumerate(samples):\n        for _ in range(1):\n            tokenized_token = tokenizer.encode_code(sample)\n            input_ids = np.array(tokenized_token).reshape(1, -1)\n            # Call inference\n            generate_func = generate_increment if config.use_past else generate\n            t0 = time.perf_counter()\n            output_ids = generate_func(model_predict, input_ids, args_opt, verbose)\n            # Decode output ids to sentence\n            t1 = time.perf_counter()\n            output_samples = tokenizer.decode_code(output_ids.tolist())\n            output_samples_str = \"\".join(output_samples)\n            if rank % 8 == 0:\n                print(f\"=================== prompt {i} ====================\")\n                print(sample, flush=True)\n                print(f\"=================== generation {i} ====================\")\n                print(output_samples_str, flush=True)\n                print(\n                    f\"=== Total time (s): {t1 - t0}, {output_ids.shape[-1] - input_ids.shape[-1]} tokens, {(output_ids.shape[-1] - input_ids.shape[-1]) / (t1 - t0)} token/s\")\n        break\n\n\ndef main():\n    \"\"\"Main process for predict or export model\"\"\"\n    opt = get_args(True)\n    set_parse(opt)\n    model_predict, config, rank = load_model(opt)\n    if opt.export:\n        export_mindir(model_predict, config)\n    else:\n        run_predict(model_predict, config, opt, rank)\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "codegeex/mindspore/save_1p_ckpt_from_8p_ckpt.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanguAlpha train script\n\"\"\"\n\nimport datetime\nimport argparse\nimport numpy as np\nimport json\nimport glob\nimport os\nimport math\nimport time\nfrom pathlib2 import Path\nfrom collections import defaultdict\nimport moxing as mox\n\nfrom tensorboardX import SummaryWriter\n\nfrom mindspore import context\nimport mindspore.communication.management as D\nfrom mindspore.context import ParallelMode\nimport mindspore.nn as nn\nfrom mindspore.nn.wrap.loss_scale import DynamicLossScaleUpdateCell\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn import TransformerOpParallelConfig, CrossEntropyLoss\nfrom mindspore.train.callback import ModelCheckpoint, CheckpointConfig\n\nimport mindspore\nfrom mindspore.train.serialization import load_checkpoint, build_searched_strategy, save_checkpoint, \\\n    merge_sliced_parameter, _convert_to_list, _convert_to_layout\nfrom mindspore.common.parameter import Parameter\nfrom mindspore.train.node_strategy_pb2 import ParallelStrategyMap, ParallelLayouts\nfrom mindspore import Tensor\nfrom mindspore.parallel._utils import _infer_rank_list, _remove_repeated_slices\n\nfrom src.adam import AdamWeightDecayOp\nfrom src.dataset import create_dataset\nfrom src.pangu_alpha import PanGUAlphaWithLoss, PanguAlphaModel\nfrom src.pangu_alpha_wrapcell import PanguAlphaTrainOneStepWithLossScaleCell, PanguAlphaTrainPipelineWithLossScaleCell\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import LearningRate, get_args, FP32StateAdamWeightDecay\nfrom src.utils import download_data\nfrom src.callbacks import LossCallBack, SaveCheckpointCallback\nfrom mindspore.profiler import Profiler\n\nproject_root = os.path.abspath(\n    os.path.dirname(os.path.realpath(__file__)) + os.path.sep + \"..\")\nprint('project_root:', project_root)\n\n\ndef set_weight_decay(params):\n    \"\"\"\n    Set weight decay coefficient, zero for bias and layernorm, 1e-1 for rest\n    \"\"\"\n    decay_filter = lambda x: 'layernorm' not in x.name.lower() and \"bias\" not in x.name.lower()\n    decay_params = list(filter(decay_filter, params))\n    other_params = list(filter(lambda x: not decay_filter(x), params))\n    group_params = [\n        {\"params\": decay_params, \"weight_decay\": 1e-1},\n        {\"params\": other_params, \"weight_decay\": 0.0},\n        {\"order_params\": params},\n    ]\n    return group_params\n\n\ndef add_checkpoint_callback_policy(args_param, callback, rank_id):\n    r\"\"\"\n    Add checkpoint policy to callback.\n    \"\"\"\n    if args_param.save_checkpoint:\n        # checkpoint store epoch_num and step_num info\n        ckpt_append_info = [{\"epoch_num\": args_param.has_trained_epoches, \"step_num\": args_param.has_trained_steps}]\n        ckpt_config = CheckpointConfig(\n            save_checkpoint_steps=args_param.save_checkpoint_steps,\n            keep_checkpoint_max=args_param.keep_checkpoint_max,\n            integrated_save=False,\n            append_info=ckpt_append_info,\n        )\n\n        # save checkpoint into rank directory\n        ckpoint_cb = ModelCheckpoint(prefix=args_param.ckpt_name_prefix + str(rank_id),\n                                     directory=os.path.join(args_param.save_checkpoint_path, f\"rank_{rank_id}\"),\n                                     config=ckpt_config)\n\n        callback.append(ckpoint_cb)\n\n        saveckpt_cb = SaveCheckpointCallback(cache_dir=args_param.save_checkpoint_path,\n                                             bucket=args_param.save_checkpoint_obs_path,\n                                             local_rank=rank_id,\n                                             has_trained_epoch=args_param.has_trained_epoches,\n                                             has_trained_step=args_param.has_trained_steps,\n                                             syn_times=args_param.save_checkpoint_steps)\n        callback.append(saveckpt_cb)\n\n\ndef set_parallel_context(args_opt):\n    r\"\"\"Set parallel context\"\"\"\n    D.init()\n    device_num = D.get_group_size()\n    rank = D.get_rank()\n    print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n    context.reset_auto_parallel_context()\n    context.set_auto_parallel_context(\n        parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL, gradients_mean=False,\n        full_batch=bool(args_opt.full_batch), strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path,\n        enable_parallel_optimizer=bool(args_opt.optimizer_shard), strategy_ckpt_save_file='strategy.ckpt',\n        optimizer_weight_shard_size=16, optimizer_weight_shard_aggregated_save=True)\n    set_algo_parameters(elementwise_op_strategy_follow=True)\n    _set_multi_subgraphs()\n    return rank, device_num\n\n\ndef download_ckpt(args_opt, file_num, rank_num, rank_id):\n    ckpt_list = []\n    for rank in range(0, file_num):\n        ckpt_name = f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\"\n        local_file = os.path.join(args_opt.save_checkpoint_path, f\"origin_rank_{rank}\", ckpt_name)\n        ckpt_list.append(local_file)\n        if rank % rank_num != rank_id:\n            continue\n        time.sleep(rank * 0.05)\n        if not os.path.exists(os.path.join(args_opt.save_checkpoint_path, f\"origin_rank_{rank}\")):\n            os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"origin_rank_{rank}\"))\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name), local_file)\n        print(\"===download ckpt ok: \", local_file, flush=True)\n    print(ckpt_list)\n    return ckpt_list\n\n\ndef get_needed_model_parallel_list(train_strategy_file, self_rank):\n    train_strategy_origin = build_searched_strategy(train_strategy_file)\n    strategy_keys = list(train_strategy_origin.keys())\n    train_strategy = _convert_to_list(train_strategy_origin)\n    rank_list = _infer_rank_list(train_strategy, None)\n    needed_ckpt_ranks = []\n    for param_name in strategy_keys:\n        param_needs_rank_list = rank_list[param_name][0]\n        if len(param_needs_rank_list) > len(needed_ckpt_ranks):  # 实际上应该求并集。\n            needed_ckpt_ranks = param_needs_rank_list\n    return needed_ckpt_ranks\n\n\ndef transform_model_parallel(restore_local_ckpt_file_list, train_strategy_file, save_path, using_fp16=False):\n    # check whether the ckpt_file has been download\n    for local_file in restore_local_ckpt_file_list:\n        if not os.path.exists(local_file):\n            raise ValueError(\"ckpt not download: \", restore_local_ckpt_file_list)\n    time.sleep(0.1)\n    param_total_dict = defaultdict(dict)\n    for file_index, local_file in enumerate(restore_local_ckpt_file_list):\n        param_dict = load_checkpoint(local_file)\n        for param_name, param in param_dict.items():\n            if \"adam\" in param_name:\n                continue\n            print(f\"===loading {file_index}: \", param_name, flush=True)\n            param_total_dict[param_name][file_index] = param\n    print(\"===load param done.\", flush=True)\n    train_strategy_origin = build_searched_strategy(train_strategy_file)\n    train_strategy = _convert_to_list(train_strategy_origin)\n    rank_list = _infer_rank_list(train_strategy, None)\n    strategy_keys = list(train_strategy_origin.keys())\n    merged_param_list = []\n    for param_name in param_total_dict.keys():\n        if \"adam\" in param_name:\n            continue\n        if param_name not in strategy_keys:\n            each_param = {\"name\": param_name}\n            each_param[\"data\"] = param_total_dict[param_name][0]\n            print(\"====\", param_name, param_total_dict[param_name][0].data.asnumpy().shape, flush=True)\n            merged_param_list.append(each_param)\n            continue\n        param_unique_strategy = _remove_repeated_slices(train_strategy[param_name])\n        _param_unique_strategy = _convert_to_layout(param_name, param_unique_strategy)\n        sliced_params = []\n        if using_fp16 and \"embedding\" not in param_name and \"layernorm\" not in param_name:\n            for i in rank_list[param_name][0]:\n                slice_param = param_total_dict[param_name][i]\n                layerwise_parallel = slice_param.layerwise_parallel\n                requires_grad = slice_param.requires_grad\n                sliced_data = sliced_params.data.asnumpy()\n                sliced_data = sliced_data.astype(np.float16)\n                paramete_fp16 = Parameter(Tensor(sliced_data), param_name, requires_grad, layerwise_parallel)\n                sliced_params.append(paramete_fp16)\n        else:\n            sliced_params = [param_total_dict[param_name][i] for i in rank_list[param_name][0]]\n        merged_param = merge_sliced_parameter(sliced_params, _param_unique_strategy)\n        each_param = {\"name\": param_name}\n        each_param[\"data\"] = merged_param\n        print(\"====\", param_name, merged_param.data.asnumpy().shape, flush=True)\n        merged_param_list.append(each_param)\n    save_file = os.path.join(save_path, \"predict_1p.ckpt\")\n    save_checkpoint(merged_param_list, save_file)\n    return save_file\n\n\ndef run_transform_model_parallel_ckpt(args_opt):\n    # Set execution mode\n    context.set_context(\n        mode=context.GRAPH_MODE, device_target=args_opt.device_target\n    )\n    # Set parallel context\n    rank = 0\n    device_num = 1\n    if args_opt.distribute == \"true\":\n        rank, device_num = set_parallel_context(args_opt)\n    print(\"=====rank is: \", rank, flush=True)\n    ckpt_file_list = download_ckpt(args_opt, 8, device_num, rank)\n    if rank != 0:\n        return\n    needed_ckpt_ranks = get_needed_model_parallel_list(args_opt.strategy_load_ckpt_path, rank)\n    restore_local_ckpt_file_list = [ckpt_file_list[i] for i in needed_ckpt_ranks]\n    print(\"====restore_local_ckpt_file_list====\", restore_local_ckpt_file_list, flush=True)\n    save_path = os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\")\n    if not os.path.exists(save_path):\n        os.mkdir(save_path)\n    save_file = transform_model_parallel(restore_local_ckpt_file_list, args_opt.strategy_load_ckpt_path, save_path)\n    obs_save_path = args_opt.save_checkpoint_obs_path\n    time.sleep(rank * 0.1)\n    if not mox.file.exists(obs_save_path):\n        mox.file.make_dirs(obs_save_path)\n    rank_obs_save_path = os.path.join(obs_save_path, f\"rank_{rank}\")\n    if not mox.file.exists(rank_obs_save_path):\n        mox.file.make_dirs(rank_obs_save_path)\n    rank_obs_save_file = os.path.join(rank_obs_save_path, f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\")\n    if not os.path.exists(save_file):\n        raise ValueError(save_file + \" not exists\")\n    mox.file.copy(save_file, rank_obs_save_file)\n    print(\"=====save ok, save_path\", save_path)\n\n\nif __name__ == \"__main__\":\n    opt = get_args()\n    set_parse(opt)\n    run_transform_model_parallel_ckpt(opt)\n"
  },
  {
    "path": "codegeex/mindspore/save_8p_ckpt.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanguAlpha train script\n\"\"\"\n\nimport datetime\nimport numpy as np\nimport glob\nimport os\nimport math\nimport time\nfrom collections import defaultdict\nimport moxing as mox\n\nfrom tensorboardX import SummaryWriter\n\nfrom mindspore import context\nimport mindspore.communication.management as D\nfrom mindspore.context import ParallelMode\nimport mindspore.nn as nn\nfrom mindspore.train.callback import TimeMonitor\nfrom mindspore.nn.wrap.loss_scale import DynamicLossScaleUpdateCell\nimport mindspore.common.dtype as mstype\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.train.callback import ModelCheckpoint, CheckpointConfig\nfrom mindspore.train.serialization import load_distributed_checkpoint, load_checkpoint, load_param_into_net\n\nimport mindspore\nfrom mindspore.train.serialization import load_checkpoint, build_searched_strategy, save_checkpoint, \\\n    merge_sliced_parameter\nfrom mindspore.common.parameter import Parameter\nfrom mindspore import Tensor\n\nfrom src.adam import AdamWeightDecayOp\nfrom src.dataset import create_dataset\nfrom src.pangu_alpha_wrapcell import PanguAlphaTrainOneStepWithLossScaleCell, PanguAlphaTrainPipelineWithLossScaleCell\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.utils import LearningRate, get_args, FP32StateAdamWeightDecay\nfrom src.utils import download_data\nfrom mindspore.profiler import Profiler\n\nproject_root = os.path.abspath(\n    os.path.dirname(os.path.realpath(__file__)) + os.path.sep + \"..\")\nprint('project_root:', project_root)\n\n\ndef set_parallel_context(args_opt):\n    r\"\"\"Set parallel context\"\"\"\n    D.init()\n    device_num = D.get_group_size()\n    rank = D.get_rank()\n    print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n    context.reset_auto_parallel_context()\n    context.set_auto_parallel_context(\n        parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL, gradients_mean=False,\n        full_batch=bool(args_opt.full_batch), strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path,\n        enable_parallel_optimizer=bool(args_opt.optimizer_shard), strategy_ckpt_save_file='strategy.ckpt',\n        optimizer_weight_shard_size=16, optimizer_weight_shard_aggregated_save=True)\n    set_algo_parameters(elementwise_op_strategy_follow=True)\n    _set_multi_subgraphs()\n    return rank, device_num\n\n\ndef download_ckpt(args_opt, file_num, rank_num, rank_id):\n    ckpt_list = []\n    for rank in range(0, file_num):\n        ckpt_name = f\"code-13B{rank}_22-{args_opt.load_ckpt_epoch}_2.ckpt\"\n        local_file = os.path.join(args_opt.save_checkpoint_path, f\"origin_rank_{rank}\", ckpt_name)\n        ckpt_list.append(local_file)\n        if rank % rank_num != rank_id:\n            continue\n        time.sleep(rank * 0.05)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"origin_rank_{rank}\"))\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name), local_file)\n        print(\"===download ckpt ok: \", local_file, flush=True)\n    return ckpt_list\n\n\ndef get_needed_opt_shard_list(train_strategy_file, self_rank):\n    train_strategy_origin = build_searched_strategy(train_strategy_file)\n    strategy_keys = list(train_strategy_origin.keys())\n    needed_ckpt_ranks = []\n    for param_name in strategy_keys:\n        opt_weight_shard_size = train_strategy_origin[param_name].opt_weight_shard_size\n        opt_weight_shard_step = train_strategy_origin[param_name].opt_weight_shard_step\n        if opt_weight_shard_size <= 0:\n            continue\n        group_index = self_rank % opt_weight_shard_step\n        current_needed_ckpt_ranks = [group_index + i * opt_weight_shard_step for i in range(0, opt_weight_shard_size)]\n        if len(current_needed_ckpt_ranks) > len(needed_ckpt_ranks):\n            needed_ckpt_ranks = current_needed_ckpt_ranks\n    return needed_ckpt_ranks\n\n\ndef transform_opt_shard(restore_local_ckpt_file_list, train_strategy_file, save_path):\n    # check whether the ckpt_file has been download\n    for local_file in restore_local_ckpt_file_list:\n        if not os.path.exists(local_file):\n            raise ValueError(\"ckpt not download: \", restore_local_ckpt_file_list)\n    time.sleep(0.1)\n    param_total_dict = defaultdict(dict)\n    for file_index, local_file in enumerate(restore_local_ckpt_file_list):\n        param_dict = load_checkpoint(local_file)\n        for param_name, param in param_dict.items():\n            param_total_dict[param_name][file_index] = param\n\n    train_strategy_origin = build_searched_strategy(train_strategy_file)\n    strategy_keys = list(train_strategy_origin.keys())\n    merged_param_list = []\n    for param_name in param_total_dict.keys():\n        if param_name not in strategy_keys:\n            each_param = {\"name\": param_name}\n            each_param[\"data\"] = param_total_dict[param_name][0]\n            print(\"====\", param_name, param_total_dict[param_name][0].data.asnumpy().shape, flush=True)\n            merged_param_list.append(each_param)\n            continue\n        opt_weight_shard_size = train_strategy_origin[param_name].opt_weight_shard_size\n        opt_weight_shard_step = train_strategy_origin[param_name].opt_weight_shard_step\n        if opt_weight_shard_step == 0:\n            print(\"====not opt shard:\", param_name)\n            each_param = {\"name\": param_name}\n            each_param[\"data\"] = param_total_dict[param_name][0]\n            print(\"====\", param_name, param_total_dict[param_name][0].data.asnumpy().shape, flush=True)\n            merged_param_list.append(each_param)\n            continue\n        print(\"====do opt shard:\", param_name)\n        sliced_params = [param_total_dict[param_name][i] for i in range(len(param_total_dict[param_name]))]\n        merged_param = merge_sliced_parameter(sliced_params, None)\n        each_param = {\"name\": param_name}\n        each_param[\"data\"] = merged_param\n        print(\"====\", param_name, merged_param.data.asnumpy().shape, flush=True)\n        merged_param_list.append(each_param)\n    save_file = os.path.join(save_path, \"predict.ckpt\")\n    save_checkpoint(merged_param_list, save_file)\n    return save_file\n\n\ndef run_transform_opt_shard_ckpt(args_opt):\n    # Set execution mode\n    context.set_context(\n        mode=context.GRAPH_MODE, device_target=args_opt.device_target\n    )\n    # Set parallel context\n    rank = 0\n    device_num = 1\n    if args_opt.distribute == \"true\":\n        rank, device_num = set_parallel_context(args_opt)\n    print(\"=====rank is: \", rank, flush=True)\n    ckpt_file_list = download_ckpt(args_opt, 128, device_num, rank)\n    needed_ckpt_ranks = get_needed_opt_shard_list(args_opt.strategy_load_ckpt_path, rank)\n    restore_local_ckpt_file_list = [ckpt_file_list[i] for i in needed_ckpt_ranks]\n    print(\"====restore_local_ckpt_file_list====\", restore_local_ckpt_file_list, flush=True)\n    save_path = os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\")\n    os.mkdir(save_path)\n    save_file = transform_opt_shard(restore_local_ckpt_file_list, args_opt.strategy_load_ckpt_path, save_path)\n    obs_save_path = args_opt.save_checkpoint_obs_path\n    time.sleep(rank * 0.1)\n    if not mox.file.exists(obs_save_path):\n        mox.file.make_dirs(obs_save_path)\n    rank_obs_save_path = os.path.join(obs_save_path, f\"rank_{rank}\")\n    if not mox.file.exists(rank_obs_save_path):\n        mox.file.make_dirs(rank_obs_save_path)\n    rank_obs_save_file = os.path.join(rank_obs_save_path, f\"code-13B{rank}-{args_opt.load_ckpt_epoch}.ckpt\")\n    if not os.path.exists(save_file):\n        raise ValueError(save_file + \" not exists\")\n    mox.file.copy(save_file, rank_obs_save_file)\n    print(\"=====save ok, save_path\", save_path)\n\n\nif __name__ == \"__main__\":\n    opt = get_args()\n    set_parse(opt)\n    run_transform_opt_shard_ckpt(opt)\n"
  },
  {
    "path": "codegeex/mindspore/scripts/custom_tune_bank_new/Ascend910ProA/cube/repository_ascend910ProA_matmul.json",
    "content": "{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      320,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      5120,\n      408,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_2771399508056390762_5\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_2771399508056390762_5\",\n    \"op_name\": \"mat_mul_2771399508056390762_5\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    16,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    2,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    16,\n    4,\n    1,\n    1,\n    2,\n    4,\n    12,\n    1,\n    1,\n    1,\n    16,\n    12,\n    1,\n    1,\n    2,\n    12,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 4007\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      8,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      128,\n      128,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_264584590321133929_3\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_264584590321133929_3\",\n    \"op_name\": \"batch_matmul_264584590321133929_3\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    8,\n    1,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    4,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    2,\n    1,\n    1,\n    2,\n    2,\n    8,\n    1,\n    1,\n    1,\n    8,\n    8,\n    1,\n    1,\n    2,\n    8,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 336\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      320,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      160,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 1.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"te_fusion_mat_mul_add_n_11939967502175003478_3\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"te_fusion_mat_mul_add_n_11939967502175003478_3\",\n    \"op_name\": \"te_fusion_mat_mul_add_n_11939967502175003478_3\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    2,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    16,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    16,\n    4,\n    1,\n    1,\n    1,\n    4,\n    10,\n    1,\n    1,\n    1,\n    16,\n    10,\n    1,\n    1,\n    1,\n    10,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1524\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      160,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2560,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_7795354838463119617_1\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_7795354838463119617_1\",\n    \"op_name\": \"mat_mul_7795354838463119617_1\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    1,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    32,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    8,\n    4,\n    1,\n    1,\n    2,\n    4,\n    10,\n    1,\n    1,\n    2,\n    8,\n    10,\n    1,\n    1,\n    2,\n    2,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1529\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      160,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2560,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_8502051246037796405_6\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_8502051246037796405_6\",\n    \"op_name\": \"mat_mul_8502051246037796405_6\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    1,\n    8,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    4,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    16,\n    4,\n    1,\n    1,\n    2,\n    4,\n    16,\n    1,\n    1,\n    1,\n    16,\n    16,\n    1,\n    1,\n    2,\n    8,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1539\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      408,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_10020169295337338553_4\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_10020169295337338553_4\",\n    \"op_name\": \"mat_mul_10020169295337338553_4\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    2,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    16,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    12,\n    2,\n    1,\n    1,\n    1,\n    2,\n    20,\n    1,\n    1,\n    1,\n    12,\n    20,\n    1,\n    1,\n    2,\n    20,\n    12,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 3869\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      128,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2048,\n      8,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_14296839150857266480_5\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_14296839150857266480_5\",\n    \"op_name\": \"batch_matmul_14296839150857266480_5\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    20,\n    1,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    4,\n    1,\n    1,\n    2,\n    4,\n    8,\n    1,\n    1,\n    1,\n    8,\n    8,\n    1,\n    1,\n    2,\n    4,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 307\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      40,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      640,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_4706447111365559176_2\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_4706447111365559176_2\",\n    \"op_name\": \"mat_mul_4706447111365559176_2\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    4,\n    1,\n    160,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    8,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    5,\n    1,\n    1,\n    1,\n    5,\n    10,\n    1,\n    1,\n    2,\n    8,\n    10,\n    1,\n    1,\n    2,\n    1,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 399\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      40,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      640,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 2.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"te_fusion_mat_mul_add_n_13134900527835197061_2\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"te_fusion_mat_mul_add_n_13134900527835197061_2\",\n    \"op_name\": \"te_fusion_mat_mul_add_n_13134900527835197061_2\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    2,\n    1,\n    80,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    16,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    1,\n    1,\n    1,\n    2,\n    1,\n    20,\n    1,\n    1,\n    1,\n    8,\n    20,\n    1,\n    1,\n    2,\n    10,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 589\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      8,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      128,\n      128,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_348894072471711205_4\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_348894072471711205_4\",\n    \"op_name\": \"batch_matmul_348894072471711205_4\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    8,\n    1,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    4,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    2,\n    1,\n    1,\n    2,\n    2,\n    16,\n    1,\n    1,\n    1,\n    8,\n    16,\n    1,\n    1,\n    2,\n    8,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 341\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      160,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 1.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"te_fusion_mat_mul_add_n_16846783208860040250_5\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"te_fusion_mat_mul_add_n_16846783208860040250_5\",\n    \"op_name\": \"te_fusion_mat_mul_add_n_16846783208860040250_5\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    8,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    4,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    10,\n    2,\n    1,\n    1,\n    2,\n    2,\n    20,\n    1,\n    1,\n    1,\n    10,\n    20,\n    1,\n    1,\n    1,\n    20,\n    10,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1518\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      408,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      6528,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_10037588020308265125_3\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_10037588020308265125_3\",\n    \"op_name\": \"mat_mul_10037588020308265125_3\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    8,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    4,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    16,\n    4,\n    1,\n    1,\n    2,\n    4,\n    16,\n    1,\n    1,\n    1,\n    16,\n    16,\n    1,\n    1,\n    2,\n    8,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 3850\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      40,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      640,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 1.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"te_fusion_mat_mul_add_n_13083928761190877831_7\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"te_fusion_mat_mul_add_n_13083928761190877831_7\",\n    \"op_name\": \"te_fusion_mat_mul_add_n_13083928761190877831_7\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    4,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    8,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    2,\n    1,\n    1,\n    1,\n    2,\n    20,\n    1,\n    1,\n    1,\n    8,\n    20,\n    1,\n    1,\n    2,\n    10,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 475\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      128,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2048,\n      8,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_5455218657126709689_4\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_5455218657126709689_4\",\n    \"op_name\": \"batch_matmul_5455218657126709689_4\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    8,\n    4,\n    1,\n    256,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    4,\n    8,\n    1,\n    1,\n    1,\n    8,\n    8,\n    1,\n    1,\n    1,\n    4,\n    8,\n    1,\n    1,\n    2,\n    2,\n    4,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 309\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      320,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      160,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_12629559082267527822_4\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_12629559082267527822_4\",\n    \"op_name\": \"mat_mul_12629559082267527822_4\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    4,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    8,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    10,\n    2,\n    1,\n    1,\n    2,\n    2,\n    20,\n    1,\n    1,\n    1,\n    10,\n    20,\n    1,\n    1,\n    2,\n    10,\n    10,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1506\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      40,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_2961386392776229656_0\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_2961386392776229656_0\",\n    \"op_name\": \"mat_mul_2961386392776229656_0\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    4,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    8,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    10,\n    2,\n    1,\n    1,\n    2,\n    2,\n    20,\n    1,\n    1,\n    1,\n    10,\n    20,\n    1,\n    1,\n    2,\n    20,\n    10,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 384\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      320,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      5120,\n      40,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_5732981344802962744_0\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_5732981344802962744_0\",\n    \"op_name\": \"mat_mul_5732981344802962744_0\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    8,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    4,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    16,\n    4,\n    1,\n    1,\n    1,\n    4,\n    10,\n    1,\n    1,\n    1,\n    16,\n    10,\n    1,\n    1,\n    1,\n    10,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 387\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      160,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_5320104505114709702_1\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_5320104505114709702_1\",\n    \"op_name\": \"mat_mul_5320104505114709702_1\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    1,\n    8,\n    1,\n    32,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    4,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    10,\n    2,\n    1,\n    1,\n    2,\n    2,\n    20,\n    1,\n    1,\n    1,\n    10,\n    20,\n    1,\n    1,\n    1,\n    10,\n    10,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1515\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      320,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      5120,\n      40,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": true,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_2475397886920913456_3\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_2475397886920913456_3\",\n    \"op_name\": \"mat_mul_2475397886920913456_3\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    8,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    4,\n    256,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    16,\n    4,\n    1,\n    1,\n    2,\n    4,\n    10,\n    1,\n    1,\n    1,\n    16,\n    10,\n    1,\n    1,\n    1,\n    10,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 396\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      320,\n      1024,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      5120,\n      160,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 3,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"mat_mul_10365315625571784022_6\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"mat_mul_10365315625571784022_6\",\n    \"op_name\": \"mat_mul_10365315625571784022_6\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    1,\n    16,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    2,\n    256,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    16,\n    4,\n    1,\n    1,\n    1,\n    4,\n    16,\n    1,\n    1,\n    1,\n    16,\n    16,\n    1,\n    1,\n    2,\n    4,\n    16,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 1541\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      8,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      128,\n      128,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float32\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_7694463296870981403_1\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_7694463296870981403_1\",\n    \"op_name\": \"batch_matmul_7694463296870981403_1\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    8,\n    2,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    2,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    4,\n    2,\n    1,\n    1,\n    2,\n    2,\n    16,\n    1,\n    1,\n    2,\n    4,\n    16,\n    1,\n    1,\n    2,\n    16,\n    4,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 616\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      1,\n      1024,\n      40,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      16384,\n      320,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 1.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"te_fusion_mat_mul_add_n_15973011329800254031_0\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"te_fusion_mat_mul_add_n_15973011329800254031_0\",\n    \"op_name\": \"te_fusion_mat_mul_add_n_15973011329800254031_0\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    1,\n    4,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    8,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    10,\n    2,\n    1,\n    1,\n    2,\n    2,\n    20,\n    1,\n    1,\n    1,\n    10,\n    20,\n    1,\n    1,\n    2,\n    10,\n    10,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 384\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      128,\n      128,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2048,\n      8,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 1,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_17630417334245373547_0\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_17630417334245373547_0\",\n    \"op_name\": \"batch_matmul_17630417334245373547_0\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    2,\n    false,\n    20,\n    1,\n    1,\n    128,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    1,\n    false,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    4,\n    1,\n    1,\n    1,\n    4,\n    8,\n    1,\n    1,\n    1,\n    8,\n    8,\n    1,\n    1,\n    2,\n    4,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 307\n}\n{\n  \"shape\": {\n    \"op_type\": \"matmul\",\n    \"A_shape\": [\n      40,\n      128,\n      8,\n      16,\n      16\n    ],\n    \"B_shape\": [\n      2048,\n      128,\n      1,\n      1,\n      16\n    ],\n    \"C_shape\": [\n      0,\n      0,\n      0,\n      0\n    ],\n    \"A_dtype\": \"float16\",\n    \"B_dtype\": \"float16\",\n    \"C_dtype\": \"float16\",\n    \"mad_dtype\": \"float32\",\n    \"padl\": 0,\n    \"padr\": 0,\n    \"padu\": 0,\n    \"padd\": 0,\n    \"strideH\": 1,\n    \"strideW\": 1,\n    \"strideH_expand\": 1,\n    \"strideW_expand\": 1,\n    \"dilationH\": 2,\n    \"dilationW\": 1,\n    \"group\": 1,\n    \"bias_flag\": false,\n    \"fused_double_operand_num\": 0.0,\n    \"shape_a_align\": 1,\n    \"shape_b_align\": 1,\n    \"kernel_name\": \"batch_matmul_4044644841773873142_6\",\n    \"scalar_size\": 0,\n    \"model_type\": \"transformer\",\n    \"tiling_access_version\": 0,\n    \"test_case\": \"batch_matmul_4044644841773873142_6\",\n    \"op_name\": \"batch_matmul_4044644841773873142_6\",\n    \"platform\": 2\n  },\n  \"tiling\": [\n    1,\n    false,\n    20,\n    1,\n    1,\n    [],\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    false,\n    1,\n    64,\n    1,\n    1,\n    1,\n    1,\n    null,\n    null,\n    null,\n    null,\n    2,\n    8,\n    4,\n    1,\n    1,\n    1,\n    4,\n    16,\n    1,\n    1,\n    2,\n    8,\n    16,\n    1,\n    1,\n    2,\n    4,\n    8,\n    1,\n    1,\n    false,\n    1,\n    false,\n    false,\n    false\n  ],\n  \"cost_time\": 315\n}\n"
  },
  {
    "path": "codegeex/mindspore/scripts/custom_tune_bank_new/Ascend910ProA/vector/Ascend910ProA_AiCore_32_v001_20220509_200939_588817.json",
    "content": "{\n  \"[[10, [16384, 6528], [], 11, []], [0, [16384, 6528], [], 11, [0]], [29, [16384, 6528], [], 11, [0]], [0, [1, 1], [], 11, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 2], [6, 6, 0, 1], [6, 6, 2, 3264], [6, 8, [0, 2, 1, 3]], [6, 7, 0, 32], [6, 7, 1, 1], [1, 9, 6, 3], [3, 9, 6, 1], [5, 9, 6, 3], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 10], [6, 11, [-1, 5], 0], [1, 13, 0, 8], [3, 13, 0, 8], [5, 13, 0, 8], [-1, 14, [], [6], [6]]], 784, \\\"add_14778510190997485516_4@add@16384_6528@float32@1_1@float32@4a5cad6ebb4ca49da856448a4c7ed296@Ascend910\\\"]\",\n  \"[[10, [2048, 5120], [], 11, []], [12, [2048, 5120], [], 11, [0]], [0, [2048, 5120], [], 11, [1]], [29, [2048, 5120], [], 11, [1]], [0, [1, 1], [], 11, [3]], [12, [2048, 5120], [], 11, [0]], [12, [2048, 5120], [], 11, [5]], [0, [2048, 5120], [], 11, [6, 15]], [29, [2048, 5120], [], 11, [5]], [0, [1, 1], [], 11, [8]], [10, [2048, 5120], [], 11, []], [12, [2048, 5120], [], 11, [10]], [0, [2048, 5120], [], 11, [11]], [29, [2048, 5120], [], 11, [11]], [0, [1, 1], [], 11, [13]], [12, [2048, 5120], [], 11, [10]], [29, [2048, 5120], [], 11, [15]], [0, [1, 1], [], 11, [16]], [11, [2048, 5120], [], 11, []], [0, [2048, 5120], [], 11, [18, 27]], [12, [2048, 5120], [], 11, [18]], [10, [2048, 5120], [], 11, [20]], [47, [2048, 5120], [], 11, [21]], [10, [2048, 5120], [], 11, [22]], [9, [2048, 5120], [], 11, [23]], [29, [2048, 5120], [], 11, [23]], [0, [1, 1], [], 11, [25]], [12, [2048, 5120], [], 11, [21]], [29, [2048, 5120], [], 11, [27]], [0, [1, 1], [], 11, [28]], [29, [2048, 5120], [], 11, [20]], [0, [1, 1], [], 11, [30]]]\": \"[[[0, 0, 1, [26, 31]], [2, 0, 1, [5]], [4, 0, 1, [5]], [7, 1, 1], [9, 0, 1, [12, 18]], [11, 0, 1, [12]], [14, 1, 1], [16, 0, 1, [30]], [16, 1, 1], [19, 0, 1, [22]], [21, 0, 1, [22]], [24, 1, 1], [26, 1, 1], [28, 0, 1, [29]], [31, 1, 1], [33, 0, 1, [34]], [33, 1, 1], [36, 1, 1], [38, 0, 1, [39]], [41, 1, 1], [43, 1, 1], [45, 0, 1, [46]], [48, 1, 1], [50, 1, 1], [52, 0, 1, [53]], [55, 1, 1], [57, 1, 1], [6, 3], [8, 3], [13, 3], [15, 3], [23, 3], [25, 3], [27, 3], [30, 3], [32, 3], [37, 3], [40, 3], [42, 3], [44, 3], [47, 3], [49, 3], [51, 3], [54, 3], [56, 3], [58, 4, 2], [58, 6, 0, 2], [58, 6, 2, 5120], [58, 8, [0, 2, 1, 3]], [58, 7, 1, 1], [58, 7, 2, 1], [1, 9, 58, 3], [3, 9, 58, 3], [5, 9, 58, 3], [7, 9, 58, 3], [10, 9, 58, 3], [12, 9, 58, 3], [14, 9, 58, 3], [16, 9, 58, 3], [17, 9, 58, 3], [18, 9, 58, 3], [20, 9, 58, 3], [22, 9, 58, 3], [24, 9, 58, 3], [26, 9, 58, 3], [29, 9, 58, 3], [31, 9, 58, 3], [33, 9, 58, 3], [34, 9, 58, 3], [35, 9, 58, 3], [36, 9, 58, 3], [39, 9, 58, 3], [41, 9, 58, 3], [43, 9, 58, 3], [46, 9, 58, 3], [48, 9, 58, 3], [50, 9, 58, 3], [53, 9, 58, 3], [55, 9, 58, 3], [57, 9, 58, 3], [58, 7, 0, 32], [58, 10], [1, 2], [3, 2], [5, 2], [10, 2], [12, 2], [18, 2], [20, 2], [22, 2], [29, 2], [35, 2], [39, 2], [46, 2], [53, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 0], [7, 11, [0, -1], 12], [10, 11, [0, -1], 0], [12, 11, [0, -1], 0], [14, 11, [0, -1], 12], [16, 11, [0, -1], 10], [17, 11, [0, -1], 0], [17, 16, [0, -1], 24, 0], [18, 16, [0, -1], 22, 0], [18, 11, [0, -1], 18], [20, 11, [0, -1], 0], [22, 11, [0, -1], 0], [24, 11, [0, -1], 12], [26, 11, [0, -1], 12], [29, 11, [0, -1], 0], [31, 11, [0, -1], 12], [33, 11, [0, -1], 10], [34, 11, [0, -1], 0], [34, 16, [0, -1], 24, 1], [35, 16, [0, -1], 22, 1], [35, 11, [0, -1], 18], [36, 11, [0, -1], 9], [39, 11, [0, -1], 0], [41, 11, [0, -1], 10], [43, 11, [0, -1], 47], [46, 11, [0, -1], 0], [48, 11, [0, -1], 12], [50, 11, [0, -1], 10], [53, 11, [0, -1], 0], [55, 11, [0, -1], 12], [57, 11, [0, -1], 11], [58, 11, [-1, 5], 0], [-1, 14, [], [34, 17, 58], [34, 17, 58]]], 318, \\\"adam_apply_one_with_decay_11977523204374661836_5@adam_apply_one_with_decay@2048_5120@float32@2048_5120@float32@ec8888cd7a0c21ef30ff2bca07265f4a@Ascend910\\\"]\",\n  \"[[10, [2560, 5120], [], 11, []], [12, [2560, 5120], [], 11, [0]], [0, [2560, 5120], [], 11, [1]], [29, [2560, 5120], [], 11, [1]], [0, [1, 1], [], 11, [3]], [12, [2560, 5120], [], 11, [0]], [12, [2560, 5120], [], 11, [5]], [0, [2560, 5120], [], 11, [6, 15]], [29, [2560, 5120], [], 11, [5]], [0, [1, 1], [], 11, [8]], [10, [2560, 5120], [], 11, []], [12, [2560, 5120], [], 11, [10]], [0, [2560, 5120], [], 11, [11]], [29, [2560, 5120], [], 11, [11]], [0, [1, 1], [], 11, [13]], [12, [2560, 5120], [], 11, [10]], [29, [2560, 5120], [], 11, [15]], [0, [1, 1], [], 11, [16]], [11, [2560, 5120], [], 11, []], [0, [2560, 5120], [], 11, [18, 27]], [12, [2560, 5120], [], 11, [18]], [10, [2560, 5120], [], 11, [20]], [47, [2560, 5120], [], 11, [21]], [10, [2560, 5120], [], 11, [22]], [9, [2560, 5120], [], 11, [23]], [29, [2560, 5120], [], 11, [23]], [0, [1, 1], [], 11, [25]], [12, [2560, 5120], [], 11, [21]], [29, [2560, 5120], [], 11, [27]], [0, [1, 1], [], 11, [28]], [29, [2560, 5120], [], 11, [20]], [0, [1, 1], [], 11, [30]]]\": \"[[[0, 0, 1, [26, 31]], [2, 0, 1, [5]], [4, 0, 1, [5]], [7, 1, 1], [9, 0, 1, [12, 18]], [11, 0, 1, [12]], [14, 1, 1], [16, 0, 1, [30]], [16, 1, 1], [19, 0, 1, [22]], [21, 0, 1, [22]], [24, 1, 1], [26, 1, 1], [28, 0, 1, [29]], [31, 1, 1], [33, 0, 1, [34]], [33, 1, 1], [36, 1, 1], [38, 0, 1, [39]], [41, 1, 1], [43, 1, 1], [45, 0, 1, [46]], [48, 1, 1], [50, 1, 1], [52, 0, 1, [53]], [55, 1, 1], [57, 1, 1], [6, 3], [8, 3], [13, 3], [15, 3], [23, 3], [25, 3], [27, 3], [30, 3], [32, 3], [37, 3], [40, 3], [42, 3], [44, 3], [47, 3], [49, 3], [51, 3], [54, 3], [56, 3], [58, 4, 2], [58, 6, 0, 2], [58, 6, 2, 5120], [58, 8, [0, 2, 1, 3]], [58, 7, 1, 1], [58, 7, 2, 1], [1, 9, 58, 3], [3, 9, 58, 3], [5, 9, 58, 3], [7, 9, 58, 3], [10, 9, 58, 3], [12, 9, 58, 3], [14, 9, 58, 3], [16, 9, 58, 3], [17, 9, 58, 3], [18, 9, 58, 3], [20, 9, 58, 3], [22, 9, 58, 3], [24, 9, 58, 3], [26, 9, 58, 3], [29, 9, 58, 3], [31, 9, 58, 3], [33, 9, 58, 3], [34, 9, 58, 3], [35, 9, 58, 3], [36, 9, 58, 3], [39, 9, 58, 3], [41, 9, 58, 3], [43, 9, 58, 3], [46, 9, 58, 3], [48, 9, 58, 3], [50, 9, 58, 3], [53, 9, 58, 3], [55, 9, 58, 3], [57, 9, 58, 3], [58, 7, 0, 32], [58, 10], [1, 2], [3, 2], [5, 2], [10, 2], [12, 2], [18, 2], [20, 2], [22, 2], [29, 2], [35, 2], [39, 2], [46, 2], [53, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 0], [7, 11, [0, -1], 12], [10, 11, [0, -1], 0], [12, 11, [0, -1], 0], [14, 11, [0, -1], 12], [16, 11, [0, -1], 10], [17, 11, [0, -1], 0], [17, 16, [0, -1], 24, 0], [18, 16, [0, -1], 22, 0], [18, 11, [0, -1], 18], [20, 11, [0, -1], 0], [22, 11, [0, -1], 0], [24, 11, [0, -1], 12], [26, 11, [0, -1], 12], [29, 11, [0, -1], 0], [31, 11, [0, -1], 12], [33, 11, [0, -1], 10], [34, 11, [0, -1], 0], [34, 16, [0, -1], 24, 1], [35, 16, [0, -1], 22, 1], [35, 11, [0, -1], 18], [36, 11, [0, -1], 9], [39, 11, [0, -1], 0], [41, 11, [0, -1], 10], [43, 11, [0, -1], 47], [46, 11, [0, -1], 0], [48, 11, [0, -1], 12], [50, 11, [0, -1], 10], [53, 11, [0, -1], 0], [55, 11, [0, -1], 12], [57, 11, [0, -1], 11], [58, 11, [-1, 5], 0], [-1, 14, [], [34, 17, 58], [34, 17, 58]]], 399, \\\"adam_apply_one_with_decay_13655876638799403930_2@adam_apply_one_with_decay@2560_5120@float32@2560_5120@float32@9e26dff2239069a7834f70164403c0ca@Ascend910\\\"]\",\n  \"[[10, [640, 5120], [], 11, []], [12, [640, 5120], [], 11, [0]], [0, [640, 5120], [], 11, [1]], [29, [640, 5120], [], 11, [1]], [0, [1, 1], [], 11, [3]], [12, [640, 5120], [], 11, [0]], [12, [640, 5120], [], 11, [5]], [0, [640, 5120], [], 11, [6, 15]], [29, [640, 5120], [], 11, [5]], [0, [1, 1], [], 11, [8]], [10, [640, 5120], [], 11, []], [12, [640, 5120], [], 11, [10]], [0, [640, 5120], [], 11, [11]], [29, [640, 5120], [], 11, [11]], [0, [1, 1], [], 11, [13]], [12, [640, 5120], [], 11, [10]], [29, [640, 5120], [], 11, [15]], [0, [1, 1], [], 11, [16]], [11, [640, 5120], [], 11, []], [0, [640, 5120], [], 11, [18, 27]], [12, [640, 5120], [], 11, [18]], [10, [640, 5120], [], 11, [20]], [47, [640, 5120], [], 11, [21]], [10, [640, 5120], [], 11, [22]], [9, [640, 5120], [], 11, [23]], [29, [640, 5120], [], 11, [23]], [0, [1, 1], [], 11, [25]], [12, [640, 5120], [], 11, [21]], [29, [640, 5120], [], 11, [27]], [0, [1, 1], [], 11, [28]], [29, [640, 5120], [], 11, [20]], [0, [1, 1], [], 11, [30]]]\": \"[[[0, 0, 1, [26, 31]], [2, 0, 1, [5]], [4, 0, 1, [5]], [7, 1, 1], [9, 0, 1, [12, 18]], [11, 0, 1, [12]], [14, 1, 1], [16, 0, 1, [30]], [16, 1, 1], [19, 0, 1, [22]], [21, 0, 1, [22]], [24, 1, 1], [26, 1, 1], [28, 0, 1, [29]], [31, 1, 1], [33, 0, 1, [34]], [33, 1, 1], [36, 1, 1], [38, 0, 1, [39]], [41, 1, 1], [43, 1, 1], [45, 0, 1, [46]], [48, 1, 1], [50, 1, 1], [52, 0, 1, [53]], [55, 1, 1], [57, 1, 1], [6, 3], [8, 3], [13, 3], [15, 3], [23, 3], [25, 3], [27, 3], [30, 3], [32, 3], [37, 3], [40, 3], [42, 3], [44, 3], [47, 3], [49, 3], [51, 3], [54, 3], [56, 3], [58, 4, 2], [58, 6, 0, 2], [58, 6, 2, 5120], [58, 8, [0, 2, 1, 3]], [58, 7, 1, 1], [58, 7, 2, 1], [1, 9, 58, 3], [3, 9, 58, 3], [5, 9, 58, 3], [7, 9, 58, 3], [10, 9, 58, 3], [12, 9, 58, 3], [14, 9, 58, 3], [16, 9, 58, 3], [17, 9, 58, 3], [18, 9, 58, 3], [20, 9, 58, 3], [22, 9, 58, 3], [24, 9, 58, 3], [26, 9, 58, 3], [29, 9, 58, 3], [31, 9, 58, 3], [33, 9, 58, 3], [34, 9, 58, 3], [35, 9, 58, 3], [36, 9, 58, 3], [39, 9, 58, 3], [41, 9, 58, 3], [43, 9, 58, 3], [46, 9, 58, 3], [48, 9, 58, 3], [50, 9, 58, 3], [53, 9, 58, 3], [55, 9, 58, 3], [57, 9, 58, 3], [58, 7, 0, 32], [58, 10], [1, 2], [3, 2], [5, 2], [10, 2], [12, 2], [18, 2], [20, 2], [22, 2], [29, 2], [35, 2], [39, 2], [46, 2], [53, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 0], [7, 11, [0, -1], 12], [10, 11, [0, -1], 0], [12, 11, [0, -1], 0], [14, 11, [0, -1], 12], [16, 11, [0, -1], 10], [17, 11, [0, -1], 0], [17, 16, [0, -1], 24, 0], [18, 16, [0, -1], 22, 0], [18, 11, [0, -1], 18], [20, 11, [0, -1], 0], [22, 11, [0, -1], 0], [24, 11, [0, -1], 12], [26, 11, [0, -1], 12], [29, 11, [0, -1], 0], [31, 11, [0, -1], 12], [33, 11, [0, -1], 10], [34, 11, [0, -1], 0], [34, 16, [0, -1], 24, 1], [35, 16, [0, -1], 22, 1], [35, 11, [0, -1], 18], [36, 11, [0, -1], 9], [39, 11, [0, -1], 0], [41, 11, [0, -1], 10], [43, 11, [0, -1], 47], [46, 11, [0, -1], 0], [48, 11, [0, -1], 12], [50, 11, [0, -1], 10], [53, 11, [0, -1], 0], [55, 11, [0, -1], 12], [57, 11, [0, -1], 11], [58, 11, [-1, 5], 0], [-1, 14, [], [34, 17, 58], [34, 17, 58]]], 99, \\\"adam_apply_one_with_decay_12307742633324841659_1@adam_apply_one_with_decay@640_5120@float32@640_5120@float32@82ce8fe0ecf5dc61caaa4109e78a1414@Ascend910\\\"]\",\n  \"[[10, [8, 5, 128, 128, 16, 16], [], 11, []], [29, [8, 5, 128, 128, 16, 16], [], 11, [0]], [0, [8, 1, 128, 128, 16, 16], [], 11, [1]], [0, [8, 5, 128, 128, 16, 16], [], 11, [0]]]\": \"[[[0, 0, 1, [1]], [3, 0, 1, [4]], [5, 1, 1], [2, 3], [6, 4, 6], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 1], [6, 6, 6, 8], [6, 6, 8, 16], [6, 6, 10, 16], [6, 8, [0, 4, 6, 8, 10, 2, 1, 3, 5, 7, 9, 11]], [6, 7, 1, 128], [1, 9, 6, 2], [4, 9, 6, 6], [5, 9, 6, 6], [6, 15, [0, 1]], [6, 7, 0, 32], [6, 10], [1, 2], [4, 2], [1, 11, [0, -1], 0], [4, 11, [0, -1], 0], [5, 11, [0, -1], 10], [6, 11, [-1, 7], 0], [1, 13, 2, 8], [4, 13, 2, 8], [5, 13, 2, 8], [-1, 14, [], [6], [6]]], 1473, \\\"add_12296771909818574508_1@add@8_1_128_128_16_16@float32@8_5_128_128_16_16@float32@a39f2946e2277d3a858d15f9373c978f@Ascend910\\\"]\",\n  \"[[10, [8, 5, 128, 128, 16, 16], [], 9, []], [29, [8, 5, 128, 128, 16, 16], [], 9, [0]], [0, [8, 1, 128, 128, 16, 16], [], 9, [1]], [0, [8, 5, 128, 128, 16, 16], [], 9, [0]]]\": \"[[[0, 0, 1, [1]], [3, 0, 1, [4]], [5, 1, 1], [2, 3], [6, 4, 6], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 1], [6, 6, 6, 128], [6, 6, 8, 16], [6, 6, 10, 16], [6, 8, [0, 4, 6, 8, 10, 2, 1, 3, 5, 7, 9, 11]], [6, 7, 1, 128], [1, 9, 6, 2], [4, 9, 6, 6], [5, 9, 6, 6], [6, 15, [0, 1]], [6, 7, 0, 32], [6, 10], [1, 2], [4, 2], [1, 11, [0, -1], 0], [4, 11, [0, -1], 0], [5, 11, [0, -1], 10], [6, 11, [-1, 7], 0], [1, 13, 2, 16], [4, 13, 2, 16], [5, 13, 2, 16], [-1, 14, [], [6], [6]]], 664, \\\"add_8655350206813942257_3@add@8_1_128_128_16_16@float16@8_5_128_128_16_16@float16@0f6ce49650cceccee6f0cb24acfa81cf@Ascend910\\\"]\",\n  \"[[11, [8, 1, 2048, 2048], [], 11, []], [29, [8, 1, 2048, 2048], [], 11, [0]], [0, [1, 1, 1, 1], [], 11, [1]], [0, [8, 1, 2048, 2048], [], 11, [0]]]\": \"[[[0, 0, 1, [1]], [3, 0, 1, [4]], [5, 1, 1], [2, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 8], [6, 6, 6, 2048], [6, 8, [2, 0, 4, 6, 1, 3, 5, 7]], [6, 7, 3, 1], [6, 7, 4, 1], [1, 9, 6, 5], [4, 9, 6, 5], [5, 9, 6, 5], [6, 15, [0, 1, 2]], [6, 7, 0, 32], [6, 10], [1, 2], [4, 2], [1, 11, [0, -1], 0], [4, 11, [0, -1], 0], [5, 11, [0, -1], 11], [6, 11, [-1, 5], 0], [1, 13, 1, 8], [4, 13, 1, 8], [5, 13, 1, 8], [-1, 14, [], [6], [6]]], 208, \\\"sub_173080813685505155_5@sub@1_1_1_1@float32@8_1_2048_2048@float32@f2aa977828a11de030eddb11be1114c3@Ascend910\\\"]\",\n  \"[[11, [8, 1, 2048, 2048], [], 9, []], [29, [8, 1, 2048, 2048], [], 9, [0]], [0, [1, 1, 1, 1], [], 9, [1]], [0, [8, 1, 2048, 2048], [], 9, [0]]]\": \"[[[0, 0, 1, [1]], [3, 0, 1, [4]], [5, 1, 1], [2, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 16], [6, 6, 6, 2048], [6, 8, [2, 0, 4, 6, 1, 3, 5, 7]], [6, 7, 3, 1], [6, 7, 4, 1], [1, 9, 6, 5], [4, 9, 6, 5], [5, 9, 6, 5], [6, 15, [0, 1, 2]], [6, 7, 0, 32], [6, 10], [1, 2], [4, 2], [1, 11, [0, -1], 0], [4, 11, [0, -1], 0], [5, 11, [0, -1], 11], [6, 11, [-1, 5], 0], [1, 13, 1, 16], [4, 13, 1, 16], [5, 13, 1, 16], [-1, 14, [], [6], [6]]], 81, \\\"sub_1889213970334340142_2@sub@1_1_1_1@float16@8_1_2048_2048@float16@0f696250b864949c9b884bb5fe8725be@Ascend910\\\"]\",\n  \"[[12, [160, 320, 16, 16], [], 9, []], [0, [160, 320, 16, 16], [], 9, [0]], [29, [160, 320, 16, 16], [], 9, [0]], [0, [1, 1, 1, 1], [], 9, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 80], [6, 6, 4, 16], [6, 6, 6, 16], [6, 8, [0, 2, 4, 6, 1, 3, 5, 7]], [6, 7, 0, 32], [6, 7, 1, 1], [1, 9, 6, 3], [3, 9, 6, 1], [5, 9, 6, 3], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 7], 0], [1, 13, 0, 16], [3, 13, 0, 16], [5, 13, 0, 16], [-1, 14, [], [6], [6]]], 22, \\\"mul_16639502312982825192_6@mul@160_320_16_16@float16@1_1_1_1@float16@79e510a2e3a4c7a2313c86fbebbc2516@Ascend910\\\"]\",\n  \"[[12, [2048, 5120], [], 9, []], [0, [2048, 5120], [], 9, [0]], [29, [2048, 5120], [], 9, [0]], [0, [1, 1], [], 9, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 2], [6, 6, 0, 4], [6, 6, 2, 5120], [6, 8, [0, 2, 1, 3]], [6, 7, 0, 32], [6, 7, 1, 1], [1, 9, 6, 2], [3, 9, 6, 1], [5, 9, 6, 2], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 5], 0], [-1, 14, [], [6], [6]]], 18, \\\"mul_18378345759510962979_4@mul@2048_5120@float16@1_1@float16@afe3bd941cde890231ca894776dda774@Ascend910\\\"]\",\n  \"[[12, [320, 160, 16, 16], [], 9, []], [0, [320, 160, 16, 16], [], 9, [0]], [29, [320, 160, 16, 16], [], 9, [0]], [0, [1, 1, 1, 1], [], 9, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 128], [6, 6, 3, 128], [6, 6, 5, 16], [6, 6, 7, 16], [6, 8, [0, 2, 3, 5, 7, 1, 4, 6, 8]], [6, 7, 0, 32], [6, 7, 1, 1], [1, 9, 6, 4], [3, 9, 6, 1], [5, 9, 6, 4], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 8], 0], [1, 13, 0, 16], [3, 13, 0, 16], [5, 13, 0, 16], [-1, 14, [], [6], [6]]], 21, \\\"mul_4425252578867752263_4@mul@320_160_16_16@float16@1_1_1_1@float16@e789002d1c61abbb768fa8ed7a662a71@Ascend910\\\"]\",\n  \"[[12, [320, 408, 16, 16], [], 9, []], [0, [320, 408, 16, 16], [], 9, [0]], [29, [320, 408, 16, 16], [], 9, [0]], [0, [1, 1, 1, 1], [], 9, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 204], [6, 6, 4, 16], [6, 6, 6, 16], [6, 8, [0, 2, 4, 6, 1, 3, 5, 7]], [6, 7, 0, 32], [6, 7, 1, 1], [1, 9, 6, 3], [3, 9, 6, 1], [5, 9, 6, 3], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 7], 0], [1, 13, 0, 16], [3, 13, 0, 16], [5, 13, 0, 16], [-1, 14, [], [6], [6]]], 77, \\\"mul_11613917493354379110_0@mul@320_408_16_16@float16@1_1_1_1@float16@2ce9ee56f9374c13081bd7e50c4933c2@Ascend910\\\"]\",\n  \"[[12, [8, 1, 2048, 2048], [], 11, []], [0, [8, 1, 2048, 2048], [], 11, [0]], [29, [8, 1, 2048, 2048], [], 11, [0]], [0, [1, 1, 1, 1], [], 11, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 16], [6, 6, 6, 2048], [6, 8, [2, 0, 4, 6, 1, 3, 5, 7]], [6, 7, 3, 1], [6, 7, 4, 1], [1, 9, 6, 5], [3, 9, 6, 5], [5, 9, 6, 5], [6, 15, [0, 1, 2]], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 5], 0], [1, 13, 1, 8], [3, 13, 1, 8], [5, 13, 1, 8], [-1, 14, [], [6], [6]]], 204, \\\"mul_8297393642950287586_7@mul@8_1_2048_2048@float32@1_1_1_1@float32@d653c2c887ad19cf8c98240b00e2dc52@Ascend910\\\"]\",\n  \"[[12, [8, 1, 2048, 2048], [], 9, []], [0, [8, 1, 2048, 2048], [], 9, [0]], [29, [8, 1, 2048, 2048], [], 9, [0]], [0, [1, 1, 1, 1], [], 9, [2]]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [5, 1, 1], [4, 3], [6, 4, 4], [6, 6, 0, 1], [6, 6, 2, 1], [6, 6, 4, 32], [6, 6, 6, 2048], [6, 8, [2, 0, 4, 6, 1, 3, 5, 7]], [6, 7, 3, 1], [6, 7, 4, 1], [1, 9, 6, 5], [3, 9, 6, 5], [5, 9, 6, 5], [6, 15, [0, 1, 2]], [6, 7, 0, 32], [6, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [5, 11, [0, -1], 12], [6, 11, [-1, 5], 0], [1, 13, 1, 16], [3, 13, 1, 16], [5, 13, 1, 16], [-1, 14, [], [6], [6]]], 79, \\\"mul_14769289322843616782_1@mul@8_1_2048_2048@float16@1_1_1_1@float16@f38eb46f4b33798eb286c00cacc407e7@Ascend910\\\"]\",\n  \"[[21, [16384], [1], 11, []], [0, [16384, 6528], [], 11, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [2, 4, 1], [2, 5, 1], [2, 6, 0, 3], [3, 4, 1], [3, 6, 0, 512], [2, 8, [0, 2]], [3, 8, [0, 1]], [3, 7, 0, 32], [1, 9, 2, 0], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [-1, 1], 21], [3, 11, [-1, 3], 0], [1, 13, 0, 8], [-1, 14, [], [3], [3]]], 377, \\\"reduce_sum_d_5347859394716646860_4@reduce_sum_d@16384_6528@float32@0d33c19390caf3d50c6c4778833d182d@Ascend910\\\"]\",\n  \"[[30, [13107200], [], 11, []], [0, [13107200], [], 9, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [3, 4, 1], [3, 6, 0, 10240], [3, 8, [0, 1]], [3, 7, 0, 1280], [1, 9, 3, 1], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [3, 11, [-1, 3], 0], [-1, 14, [], [3], [3]]], 32, \\\"cast_12579011271404556559_6@cast@13107200@float16@c9db693e7220c7e7cef8c8bb3c7ec895@Ascend910\\\"]\",\n  \"[[30, [13107200], [], 9, []], [0, [13107200], [], 11, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [3, 4, 1], [3, 6, 0, 20480], [3, 8, [0, 1]], [3, 7, 0, 640], [1, 9, 3, 1], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [3, 11, [-1, 3], 0], [-1, 14, [], [3], [3]]], 32, \\\"cast_12650143114974195539_1@cast@13107200@float32@cf02e91cb6d1a185b2efa59e553d5013@Ascend910\\\"]\",\n  \"[[30, [1], [], 9, []], [21, [1], [0, 1], 11, [0]], [30, [2048, 5120], [], 11, [1]], [12, [2048, 5120], [], 9, [2]], [0, [2048, 5120], [], 9, [3]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [8, 1, 1], [3, 3], [5, 3], [7, 3], [6, 4, 1], [6, 5, 2], [6, 6, 1, 8], [6, 6, 3, 5120], [9, 4, 1], [9, 6, 0, 1], [6, 8, [1, 3, 0, 2, 4]], [9, 8, [0, 1]], [9, 7, 0, 1], [1, 9, 6, 0], [2, 9, 6, 0], [4, 9, 6, 0], [6, 9, 9, 1], [8, 9, 9, 1], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 12], [4, 11, [0, -1], 30], [6, 11, [-1, 2], 21], [8, 11, [0, -1], 30], [9, 11, [-1, 2], 0], [-1, 14, [], [9], [9]]], 1025, \\\"square_sum_v1_16122968621825641452_5@square_sum_v1@2048_5120@float16@61163e328d943e6e99c7ab40b22507f0@Ascend910\\\"]\",\n  \"[[30, [1], [], 9, []], [21, [1], [0, 1], 11, [0]], [30, [2560, 5120], [], 11, [1]], [12, [2560, 5120], [], 9, [2]], [0, [2560, 5120], [], 9, [3]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [8, 1, 1], [3, 3], [5, 3], [7, 3], [6, 4, 1], [6, 5, 2], [6, 6, 1, 8], [6, 6, 3, 5120], [9, 4, 1], [9, 6, 0, 1], [6, 8, [1, 3, 0, 2, 4]], [9, 8, [0, 1]], [9, 7, 0, 1], [1, 9, 6, 0], [2, 9, 6, 0], [4, 9, 6, 0], [6, 9, 9, 1], [8, 9, 9, 1], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 12], [4, 11, [0, -1], 30], [6, 11, [-1, 2], 21], [8, 11, [0, -1], 30], [9, 11, [-1, 2], 0], [-1, 14, [], [9], [9]]], 1281, \\\"square_sum_v1_17894243575202895987_6@square_sum_v1@2560_5120@float16@984ca97fcbe85811b511acda08897e4f@Ascend910\\\"]\",\n  \"[[30, [1], [], 9, []], [21, [1], [0, 1], 11, [0]], [30, [5120, 2560], [], 11, [1]], [12, [5120, 2560], [], 9, [2]], [0, [5120, 2560], [], 9, [3]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [8, 1, 1], [3, 3], [5, 3], [7, 3], [6, 4, 1], [6, 5, 2], [6, 6, 1, 16], [6, 6, 3, 2560], [9, 4, 1], [9, 6, 0, 1], [6, 8, [1, 3, 0, 2, 4]], [9, 8, [0, 1]], [9, 7, 0, 1], [1, 9, 6, 0], [2, 9, 6, 0], [4, 9, 6, 0], [6, 9, 9, 1], [8, 9, 9, 1], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 12], [4, 11, [0, -1], 30], [6, 11, [-1, 2], 21], [8, 11, [0, -1], 30], [9, 11, [-1, 2], 0], [-1, 14, [], [9], [9]]], 1281, \\\"square_sum_v1_4257953204974462289_2@square_sum_v1@5120_2560@float16@da63288d4c5e64db1e41f9af1167a38c@Ascend910\\\"]\",\n  \"[[30, [1], [], 9, []], [21, [1], [0, 1], 11, [0]], [30, [640, 5120], [], 11, [1]], [12, [640, 5120], [], 9, [2]], [0, [640, 5120], [], 9, [3]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [8, 1, 1], [3, 3], [5, 3], [7, 3], [6, 4, 1], [6, 5, 2], [6, 6, 1, 8], [6, 6, 3, 5120], [9, 4, 1], [9, 6, 0, 1], [6, 8, [1, 3, 0, 2, 4]], [9, 8, [0, 1]], [9, 7, 0, 1], [1, 9, 6, 0], [2, 9, 6, 0], [4, 9, 6, 0], [6, 9, 9, 1], [8, 9, 9, 1], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 12], [4, 11, [0, -1], 30], [6, 11, [-1, 2], 21], [8, 11, [0, -1], 30], [9, 11, [-1, 2], 0], [-1, 14, [], [9], [9]]], 321, \\\"square_sum_v1_12397315506690742698_6@square_sum_v1@640_5120@float16@c3c1d5d76e9215e05cfd4483bb06f443@Ascend910\\\"]\",\n  \"[[30, [1], [], 9, []], [21, [1], [0, 1], 11, [0]], [30, [6528, 5120], [], 11, [1]], [12, [6528, 5120], [], 9, [2]], [0, [6528, 5120], [], 9, [3]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [8, 1, 1], [3, 3], [5, 3], [7, 3], [6, 4, 1], [6, 5, 2], [6, 6, 1, 8], [6, 6, 3, 5120], [9, 4, 1], [9, 6, 0, 1], [6, 8, [1, 3, 0, 2, 4]], [9, 8, [0, 1]], [9, 7, 0, 1], [1, 9, 6, 0], [2, 9, 6, 0], [4, 9, 6, 0], [6, 9, 9, 1], [8, 9, 9, 1], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 12], [4, 11, [0, -1], 30], [6, 11, [-1, 2], 21], [8, 11, [0, -1], 30], [9, 11, [-1, 2], 0], [-1, 14, [], [9], [9]]], 3265, \\\"square_sum_v1_11062644949061053785_7@square_sum_v1@6528_5120@float16@190df18c44a473696f14a8c172693ef7@Ascend910\\\"]\",\n  \"[[30, [2560], [], 9, []], [21, [2560], [0], 11, [0]], [30, [16384, 2560], [], 11, [1]], [0, [16384, 2560], [], 9, [2]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [3, 3], [5, 3], [4, 4, 1], [4, 5, 1], [4, 6, 1, 256], [7, 4, 1], [7, 6, 0, 80], [4, 8, [1, 2, 0]], [7, 8, [0, 1]], [7, 7, 0, 32], [1, 9, 4, 0], [2, 9, 4, 0], [4, 9, 7, 1], [6, 9, 7, 1], [7, 7, 0, 32], [7, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [4, 11, [-1, 1], 21], [6, 11, [0, -1], 30], [7, 11, [-1, 3], 0], [1, 13, 0, 16], [2, 13, 0, 8], [-1, 14, [], [7], [7]]], 118, \\\"reduce_sum_d_7090876483296108328_7@reduce_sum_d@16384_2560@float16@b356d1a1bd9daf14ba0da6cfb7c05611@Ascend910\\\"]\",\n  \"[[30, [33423360], [], 11, []], [0, [33423360], [], 9, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [3, 4, 1], [3, 6, 0, 5440], [3, 8, [0, 1]], [3, 7, 0, 6144], [1, 9, 3, 1], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [3, 11, [-1, 3], 0], [-1, 14, [], [3], [3]]], 141, \\\"cast_3174785036573960851_1@cast@33423360@float16@77f06449a3e9b05535be4e86e8f509dc@Ascend910\\\"]\",\n  \"[[30, [33423360], [], 9, []], [0, [33423360], [], 11, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [3, 4, 1], [3, 6, 0, 32768], [3, 8, [0, 1]], [3, 7, 0, 1020], [1, 9, 3, 1], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [3, 11, [-1, 3], 0], [-1, 14, [], [3], [3]]], 129, \\\"cast_11771150955723433936_7@cast@33423360@float32@7cd63eeeeca25f31201903badd13d03f@Ascend910\\\"]\",\n  \"[[30, [33423360], [], 9, []], [10, [33423360], [], 11, [0]], [10, [33423360], [], 11, [1]], [10, [33423360], [], 11, [2]], [30, [33423360], [], 11, [3]], [0, [33423360], [], 9, [4]], [30, [33423360], [], 11, [3]], [0, [33423360], [], 9, [6]], [30, [33423360], [], 11, [2]], [0, [33423360], [], 9, [8]], [30, [33423360], [], 11, [1]], [0, [33423360], [], 9, [10]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 0, 1, [5]], [6, 1, 1], [8, 1, 1], [10, 0, 1, [11]], [12, 1, 1], [14, 1, 1], [16, 0, 1, [17]], [18, 1, 1], [20, 1, 1], [22, 1, 1], [3, 3], [7, 3], [9, 3], [13, 3], [15, 3], [19, 3], [21, 3], [23, 4, 1], [23, 6, 0, 8192], [23, 8, [0, 1]], [23, 7, 0, 4080], [1, 9, 23, 1], [2, 9, 23, 1], [5, 9, 23, 1], [6, 9, 23, 1], [8, 9, 23, 1], [11, 9, 23, 1], [12, 9, 23, 1], [14, 9, 23, 1], [17, 9, 23, 1], [18, 9, 23, 1], [20, 9, 23, 1], [22, 9, 23, 1], [23, 7, 0, 32], [23, 10], [1, 2], [5, 2], [11, 2], [17, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [5, 11, [0, -1], 0], [6, 11, [0, -1], 30], [8, 11, [0, -1], 10], [11, 11, [0, -1], 0], [12, 11, [0, -1], 30], [14, 11, [0, -1], 10], [17, 11, [0, -1], 0], [18, 11, [0, -1], 30], [20, 11, [0, -1], 10], [22, 11, [0, -1], 30], [23, 11, [-1, 3], 0], [-1, 14, [], [23], [23]]], 240, \\\"add_n_217172125246459805_7@add_n@33423360@float16@33423360@float16@de0e86d609539e93cc34880df40b17a7@Ascend910\\\"]\",\n  \"[[30, [33554432], [], 11, []], [0, [33554432], [], 9, [0]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [3, 4, 1], [3, 6, 0, 4096], [3, 8, [0, 1]], [3, 7, 0, 8192], [1, 9, 3, 1], [2, 9, 3, 1], [3, 7, 0, 32], [3, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [3, 11, [-1, 3], 0], [-1, 14, [], [3], [3]]], 141, \\\"cast_12953697661422381438_6@cast@33554432@float16@93dad7898487302fef5c5ba82ebc2f5e@Ascend910\\\"]\",\n  \"[[30, [5120], [], 9, []], [21, [5120], [0], 11, [0]], [30, [16384, 5120], [], 11, [1]], [0, [16384, 5120], [], 9, [2]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [3, 3], [5, 3], [4, 4, 1], [4, 5, 1], [4, 6, 1, 128], [7, 4, 1], [7, 6, 0, 160], [4, 8, [1, 2, 0]], [7, 8, [0, 1]], [7, 7, 0, 32], [1, 9, 4, 0], [2, 9, 4, 0], [4, 9, 7, 1], [6, 9, 7, 1], [7, 7, 0, 32], [7, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [4, 11, [-1, 1], 21], [6, 11, [0, -1], 30], [7, 11, [-1, 3], 0], [1, 13, 0, 16], [2, 13, 0, 8], [-1, 14, [], [7], [7]]], 183, \\\"reduce_sum_d_5342919443904524082_4@reduce_sum_d@16384_5120@float16@fb11a5958cbf70505fc27f629ca3b755@Ascend910\\\"]\",\n  \"[[30, [640], [], 9, []], [21, [640], [0], 11, [0]], [30, [16384, 640], [], 11, [1]], [0, [16384, 640], [], 9, [2]]]\": \"[[[0, 0, 1, [1]], [2, 1, 1], [4, 1, 1], [6, 1, 1], [3, 3], [5, 3], [4, 4, 1], [4, 5, 1], [4, 6, 1, 512], [7, 4, 1], [7, 6, 0, 32], [4, 8, [1, 2, 0]], [7, 8, [0, 1]], [7, 7, 0, 20], [1, 9, 4, 0], [2, 9, 4, 0], [4, 9, 7, 1], [6, 9, 7, 1], [7, 7, 0, 20], [7, 10], [1, 2], [1, 11, [0, -1], 0], [2, 11, [0, -1], 30], [4, 11, [-1, 1], 73], [6, 11, [0, -1], 30], [7, 11, [-1, 3], 0], [1, 13, 0, 16], [2, 13, 0, 8], [-1, 14, [], [7], [7]]], 49, \\\"reduce_sum_d_3905411610153727024_7@reduce_sum_d@16384_640@float16@0f3d657acc90ff685577962774a654a2@Ascend910\\\"]\",\n  \"[[71, [320, 1, 16], [1], 11, []], [12, [320, 16384, 16], [], 11, [0, 5]], [0, [320, 16384, 16], [], 11, [1]], [30, [320, 16384, 16], [], 11, [0, 1, 5]], [0, [320, 16384, 16], [], 9, [3]], [71, [320, 1, 16], [1], 11, []]]\": \"[[[0, 0, 1, [3]], [2, 0, 1, [3]], [4, 1, 1], [6, 1, 1], [[8, 2], 1, 1], [5, 3], [7, 3], [8, 4, 3], [8, 5, 1], [8, 6, 3, 512], [9, 4, 3], [9, 6, 0, 1], [9, 6, 2, 1], [9, 6, 4, 16], [8, 8, [3, 4, 0, 1, 2]], [9, 8, [0, 2, 4, 1, 3, 5]], [9, 7, 2, 1], [1, 9, 8, 0], [3, 9, 8, 0], [4, 9, 8, 0], [6, 9, 8, 0], [8, 9, 9, 3], [9, 15, [0, 1, 2]], [9, 7, 0, 32], [9, 10], [1, 2], [3, 2], [1, 11, [0, -1], 0], [3, 11, [0, -1], 0], [4, 11, [0, -1], 30], [6, 11, [0, -1], 12], [8, 11, [-1, 1], 71], [9, 11, [-1, 3], 0], [1, 13, 1, 8], [3, 13, 1, 16], [4, 13, 1, 8], [6, 13, 1, 8], [8, 13, 1, 8], [-1, 14, [], [[9, 2]], [[9, 2]]]], 434, \\\"layer_norm_beta_gamma_backprop_v2_11053127748651844847_3@layer_norm_beta_gamma_backprop_v2@320_16384_16@float16@320_16384_16@float32@d56eecf58e4e795d64b39ec35264f2b4@Ascend910\\\"]\"\n}"
  },
  {
    "path": "codegeex/mindspore/scripts/layer_norm.py",
    "content": "# Copyright 2019 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nlayer_norm\n\"\"\"\nfrom copy import deepcopy\n\nimport impl.dynamic as dyn\nimport impl.layer_norm_unify as layer_norm_unify\nimport te.lang.cce as tbe\nfrom impl.common_util import constant\nfrom impl.layer_norm_tik import if_tik_support\nfrom impl.layer_norm_tik import layer_normalize\nfrom impl.util import util_select_op_base\nfrom impl.util.platform_adapter import tbe_context\nfrom impl.util.util_select_op_base import SplitInput\nfrom impl.util.util_select_op_base import SplitOutput\nfrom impl.util.util_select_op_base import get_op_cal_info\nfrom tbe.common.platform import SOC_VERSION\nfrom tbe.common.platform.platform_info import get_soc_spec\nfrom tbe.dsl.compute.layer_norm_cube import LayerNormCube\nfrom te import platform as tbe_platform\nfrom te import tvm\nfrom te.utils import para_check\nfrom te.utils import shape_util\nfrom te.utils.error_manager import error_manager_vector\n\n\n# 'pylint: disable = unused-argument\n# 'pylint: disable=too-many-arguments,too-many-locals\ndef get_op_support_info(input_x, input_gamma, input_beta,\n                        output_y, output_mean, output_variance,\n                        begin_norm_axis, begin_params_axis,\n                        epsilon=1e-12, kernel_name=\"layer_norm\",\n                        impl_mode=\"high_performance\"):\n    \"\"\"\n    get_op_support_info\n    \"\"\"\n    format_x = input_x.get(\"format\").upper()\n    shape_x = input_x.get(\"shape\")\n    ori_shape_x = input_x.get(\"ori_shape\")\n    begin_norm_axis = shape_util.axis_check(len(shape_x), begin_norm_axis)\n    begin_params_axis = shape_util.axis_check(len(shape_x), begin_params_axis)\n    axis_split_matrix = []\n\n    if format_x in (\"ND\", \"NCHW\", \"NHWC\", \"NC1HWC0\"):\n        if begin_params_axis == 0:\n            for i in range(begin_norm_axis):\n                split_0 = [SplitInput([0, [i], [-1], [-1]], [1, [i], [-1], [-1]], [2, [i], [-1], [-1]]),\n                           SplitOutput([0, [i]], [1, [i]], [2, [i]])]\n                axis_split_matrix.append(split_0)\n        else:\n            if begin_norm_axis <= begin_params_axis:\n                for i in range(begin_norm_axis):\n                    split_0 = [SplitInput([0, [i], [-1], [-1]]),\n                               SplitOutput([0, [i]], [1, [i]], [2, [i]])]\n                    axis_split_matrix.append(split_0)\n            else:\n                for i in range(begin_params_axis):\n                    split_0 = [SplitInput([0, [i], [-1], [-1]]),\n                               SplitOutput([0, [i]], [1, [i]], [2, [i]])]\n                    axis_split_matrix.append(split_0)\n\n    elif format_x == \"FRACTAL_NZ\":\n        index_list = tuple(index for index, _ in enumerate(ori_shape_x))\n        start_axis = min(begin_norm_axis, begin_params_axis)\n\n        no_split_axis = index_list[start_axis:]\n        no_split_axis = to_frac_z_axis(ori_shape_x, no_split_axis)\n        for i in range(len(shape_x)):\n            if i not in no_split_axis:\n                split_0 = [SplitInput([0, [i], [-1], [-1]]),\n                           SplitOutput([0, [i]], [1, [i]], [2, [i]])]\n                axis_split_matrix.append(split_0)\n\n    else:\n        axis_split_matrix = None\n    axis_reduce_list = None\n    op_cal_info_in_json = get_op_cal_info(axis_split_matrix, axis_reduce_list, 0, 0)\n    return op_cal_info_in_json\n\n\n# 'pylint: disable=locally-disabled,too-many-arguments,unused-argument\n# 'pylint: disable=too-many-locals,too-many-statements,too-many-branches\ndef _division_sixteen(shape, begin_norm_axis):\n    \"\"\"\n    division_sixteen\n    \"\"\"\n    if len(shape) < 2:\n        if shape[-1] == 0:\n            error_detail = \"value of shape_x is illegal\"\n            error_manager_vector.raise_err_input_shape_invalid(\"layer_norm\", \"input_x\",\n                                                               error_detail)\n        return False\n\n    if shape[-1] == 0 or shape[-2] == 0:\n        error_detail = \"value of shape_x is illegal\"\n        error_manager_vector.raise_err_input_shape_invalid(\"layer_norm\", \"input_x\",\n                                                           error_detail)\n\n    is_reduce_last = begin_norm_axis in (-1, len(shape) - 1)\n    # if shape[-2] % constant.C0_SIZE == 0:\n    #    if shape[-1] % constant.C0_SIZE == 0 or (shape[-1] % constant.C0_SIZE != 0 and is_reduce_last):\n    #        return True\n    return False\n\n\n# 'pylint: disable=too-many-statements,too-many-branches\ndef op_select_format(input_x, input_gamma, input_beta,\n                     output_y, output_mean, output_variance,\n                     begin_norm_axis, begin_params_axis,\n                     kernel_name=\"layer_norm\"):\n    \"\"\"\n    select format dynamically\n    \"\"\"\n    shape_x = input_x.get(\"ori_shape\")\n    shape_x = shape_util.scalar2tensor_one(shape_x)\n    shape_gamma = input_gamma.get(\"ori_shape\")\n    shape_gamma = shape_util.scalar2tensor_one(shape_gamma)\n\n    if begin_params_axis == 0:\n        if len(shape_gamma) >= 2 or (not _division_sixteen(shape_x, begin_norm_axis)):\n            input0 = util_select_op_base.gen_param(classify=\"input0\", name=\"x\",\n                                                   datatype=\"float16,float16,float16,float16,\"\n                                                            \"float,float,float,float\",\n                                                   format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            input1 = util_select_op_base.gen_param(classify=\"input1\", name=\"gamma\",\n                                                   datatype=\"float16,float16,float16,float16,float,\"\n                                                            \"float,float,float\",\n                                                   format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            input2 = util_select_op_base.gen_param(classify=\"input2\", name=\"beta\",\n                                                   datatype=\"float16,float16,float16,float16,float,\"\n                                                            \"float,float,float\",\n                                                   format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            output0 = util_select_op_base.gen_param(classify=\"output0\", name=\"y\",\n                                                    datatype=\"float16,float16,float16,float16,float,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            output1 = util_select_op_base.gen_param(classify=\"output1\", name=\"mean\",\n                                                    datatype=\"float16,float16,float16,float16,float,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            output2 = util_select_op_base.gen_param(classify=\"output2\", name=\"variance\",\n                                                    datatype=\"float16,float16,float16,float16,float,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,NHWC,ND\")\n        else:\n            input0 = util_select_op_base.gen_param(classify=\"input0\", name=\"x\",\n                                                   datatype=\"float16,float,float16,float16,float16,\"\n                                                            \"float16,float,float,float,float\",\n                                                   format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NC1HWC0,NHWC,\"\n                                                          \"ND,NCHW,NC1HWC0,NHWC,ND\")\n\n            input1 = util_select_op_base.gen_param(classify=\"input1\", name=\"gamma\",\n                                                   datatype=\"float16,float,float16,float16,float16,\"\n                                                            \"float16,float,float,float,float\",\n                                                   format=\"ND,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,\"\n                                                          \"NHWC,ND\")\n\n            input2 = util_select_op_base.gen_param(classify=\"input2\", name=\"beta\",\n                                                   datatype=\"float16,float,float16,float16,float16,\"\n                                                            \"float16,float,float,float,float\",\n                                                   format=\"ND,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,\"\n                                                          \"NHWC,ND\")\n\n            output0 = util_select_op_base.gen_param(classify=\"output0\", name=\"y\",\n                                                    datatype=\"float16,float,float16,float16,float16,\"\n                                                             \"float16,float,float,float,float\",\n                                                    format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NC1HWC0,NHWC,ND,\"\n                                                           \"NCHW,NC1HWC0,NHWC,ND\")\n\n            output1 = util_select_op_base.gen_param(classify=\"output1\", name=\"mean\",\n                                                    datatype=\"float16,float,float16,float16,float16,\"\n                                                             \"float16,float,float,float,float\",\n                                                    format=\"ND,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,\"\n                                                           \"NHWC,ND\")\n\n            output2 = util_select_op_base.gen_param(classify=\"output2\", name=\"variance\",\n                                                    datatype=\"float16,float,float16,float16,float16,\"\n                                                             \"float16,float,float,float,float\",\n                                                    format=\"ND,ND,NCHW,NC1HWC0,NHWC,ND,NCHW,NC1HWC0,\"\n                                                           \"NHWC,ND\")\n    else:\n        if len(shape_gamma) >= 2 or (not _division_sixteen(shape_x, begin_norm_axis)):\n            input0 = util_select_op_base.gen_param(classify=\"input0\", name=\"x\",\n                                                   datatype=\"float16,float16,float16,\"\n                                                            \"float,float,float\",\n                                                   format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n\n            input1 = util_select_op_base.gen_param(classify=\"input1\", name=\"gamma\",\n                                                   datatype=\"float16,float16,float16,\"\n                                                            \"float,float,float\",\n                                                   format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n\n            input2 = util_select_op_base.gen_param(classify=\"input2\", name=\"beta\",\n                                                   datatype=\"float16,float16,float16,\"\n                                                            \"float,float,float\",\n                                                   format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n\n            output0 = util_select_op_base.gen_param(classify=\"output0\", name=\"y\",\n                                                    datatype=\"float16,float16,float16,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n\n            output1 = util_select_op_base.gen_param(classify=\"output1\", name=\"mean\",\n                                                    datatype=\"float16,float16,float16,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n\n            output2 = util_select_op_base.gen_param(classify=\"output2\", name=\"variance\",\n                                                    datatype=\"float16,float16,float16,\"\n                                                             \"float,float,float\",\n                                                    format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        else:\n            input0 = util_select_op_base.gen_param(classify=\"input0\", name=\"x\",\n                                                   datatype=\"float16,float,float16,float16,\"\n                                                            \"float16,float,float,float\",\n                                                   format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,\"\n                                                          \"ND,NCHW,NHWC,ND\")\n\n            input1 = util_select_op_base.gen_param(classify=\"input1\", name=\"gamma\",\n                                                   datatype=\"float16,float,float16,float16,\"\n                                                            \"float16,float,float,float\",\n                                                   format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                          \"NHWC,ND\")\n\n            input2 = util_select_op_base.gen_param(classify=\"input2\", name=\"beta\",\n                                                   datatype=\"float16,float,float16,float16,\"\n                                                            \"float16,float,float,float\",\n                                                   format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                          \"NHWC,ND\")\n\n            output0 = util_select_op_base.gen_param(classify=\"output0\", name=\"y\",\n                                                    datatype=\"float16,float,float16,float16,\"\n                                                             \"float16,float,float,float\",\n                                                    format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,ND,\"\n                                                           \"NCHW,NHWC,ND\")\n\n            output1 = util_select_op_base.gen_param(classify=\"output1\", name=\"mean\",\n                                                    datatype=\"float16,float,float16,float16,\"\n                                                             \"float16,float,float,float\",\n                                                    format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                           \"NHWC,ND\")\n\n            output2 = util_select_op_base.gen_param(classify=\"output2\", name=\"variance\",\n                                                    datatype=\"float16,float,float16,float16,\"\n                                                             \"float16,float,float,float\",\n                                                    format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                           \"NHWC,ND\")\n\n    param_list = [input0, input1, input2, output0, output1, output2]\n    param_dynamic_in_json = util_select_op_base.get_dynamic_param_in_json(param_list)\n    return param_dynamic_in_json\n\n\ndef to_frac_z_axis(ori_shape, ori_axis):\n    \"\"\"\n    judge the format is fractal NZ\n\n    Parameters\n    ----------\n    ori_shape: list or tuple\n        original shape of input\n    ori_axis: list or tuple\n        original axis of original shape to operate\n\n    Returns\n    -------\n    output: list\n        axis of the fractal Nz shape\n    \"\"\"\n\n    frac_z_axis = list(ori_axis)\n    shape_len = len(ori_shape)\n    axis_count = len(frac_z_axis)\n    axis_negative_1 = shape_len - 1\n    axis_negative_2 = shape_len - 2\n    for i in range(axis_count):\n        axis_index = (frac_z_axis[i] + shape_len) % shape_len\n        if axis_index == axis_negative_1:\n            if frac_z_axis[i] > shape_len - 2:\n                frac_z_axis[i] = axis_index - 1\n                frac_z_axis.append(axis_index + 1)\n            else:\n                frac_z_axis[i] = axis_index - 1\n                frac_z_axis.append(axis_index + 2)\n        elif axis_index == axis_negative_2:\n            frac_z_axis[i] = axis_index + 1\n            frac_z_axis.append(axis_index + 2)\n        else:\n            frac_z_axis[i] = axis_index\n    return frac_z_axis\n\n\ndef _broadcast_nz(tensor, shape):\n    \"\"\"\n    broadcast_nz\n    \"\"\"\n    broadcast_axes = []\n    src_shape = shape_util.shape_to_list(tensor.shape)\n    for i, _ in enumerate(shape):\n        if shape[i] != src_shape[i]:\n            broadcast_axes.append(i)\n    if len(broadcast_axes) == 2 and \\\n            broadcast_axes[1] - broadcast_axes[0] != 1 and \\\n            broadcast_axes[1] + 1 == len(shape):\n        temp_shape = src_shape[:-1] + [shape[-1]]\n        tensor = tbe.broadcast(tensor, temp_shape)\n    tensor = tbe.broadcast(tensor, shape)\n    return tensor\n\n\ndef _check_vector_to_cube(dtype, ori_shape_x, shape_x, begin_norm_axis, impl_mode):\n    \"\"\"\n    judge case using cube to handle reducesum\n    only supported follow case in Ascend910 and Ascend710:\n        ori_shape: ((batch), m, 1024(768)), \"shape\": ((batch), 64(48), m//16, 16, 16), \"dtype\": fp16\n    \"\"\"\n\n    def _check_shape_and_dtype():\n        if dtype != \"float16\":\n            return False\n        if len(ori_shape_x) not in (2, 3) or ori_shape_x[-1] not in (1024, 768, 96, 384, 192, 128, 512, 256):\n            return False\n        if len(shape_x) not in (4, 5) or shape_x[-4] not in (64, 48, 6, 12, 24, 16, 32):\n            return False\n        if \"Ascend910\" not in get_soc_spec(SOC_VERSION) and \"Ascend710\" not in get_soc_spec(SOC_VERSION):\n            return False\n        if begin_norm_axis != (len(ori_shape_x) - 1):\n            return False\n        return True\n\n    return impl_mode == \"high_performance\" and _check_shape_and_dtype()\n\n\n# 'pylint: disable=too-many-locals,too-many-statements,too-many-branches\ndef nz_non_aligned(input_x, input_gamma, input_beta,\n                   output_y, output_mean, output_variance,\n                   begin_norm_axis, begin_params_axis,\n                   ori_shape, epsilon, kernel_name=\"layer_norm\",\n                   impl_mode=\"high_performance\"):\n    \"\"\"\n    DSL description of the layernorm operator's mathematical calculation process for non_aligned scene\n    \"\"\"\n    shape_x = shape_util.shape_to_list(input_x.shape)\n    dtype = input_x.dtype.lower()\n    cast_dtype = \"float16\"\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        cast_dtype = \"float32\"\n        input_x = tbe.cast_to(input_x, \"float32\")\n        input_gamma = tbe.cast_to(input_gamma, \"float32\")\n        input_beta = tbe.cast_to(input_beta, \"float32\")\n    else:\n        input_x = tbe.vadds(input_x, 0)\n\n    # Calculate the scaling ratio of the average\n    reduce_elts = 1.0\n    index_list = tuple(index for index, _ in enumerate(ori_shape))\n    reduce_axis = index_list[begin_norm_axis:]\n    for i in reduce_axis:\n        reduce_elts *= ori_shape[i]\n    reduce_axis = to_frac_z_axis(ori_shape, reduce_axis)\n    mean_cof = reduce_elts ** (-1)\n\n    # DSL description of the mean calculation process\n    with tvm.tag_scope(\"tail_block_pretreatment\"):\n        lambda_func = lambda *indice: tvm.const(0, input_x.dtype)\n        temp = tvm.compute(input_x.shape, lambda_func, name=\"tail_block_pretreatment\")\n\n    input_x = tbe.vadd(input_x, temp)\n    mean_muls = tbe.vmuls(input_x, mean_cof)\n    mean = tbe.sum(mean_muls, axis=reduce_axis, keepdims=True)\n\n    mean_square = tbe.vmul(mean, mean)\n    x_square = tbe.vmul(input_x, input_x)\n    x_square = tbe.vmuls(x_square, mean_cof)\n    x_square_mean = tbe.sum(x_square, axis=reduce_axis, keepdims=True)\n    variance = tbe.vsub(x_square_mean, mean_square)\n\n    # DSL description of the normalize calculation process\n    mean_normalize_broadcast = _broadcast_nz(mean, shape_x)\n    normalize_sub = tbe.vsub(input_x, mean_normalize_broadcast)\n    epsilon = tvm.const(epsilon, dtype=cast_dtype)\n\n    normalize_add = tbe.vadds(variance, epsilon)\n    normalize_log = tbe.vlog(normalize_add)\n    normalize_log_mul = \\\n        tbe.vmuls(normalize_log, tvm.const(-0.5, dtype=cast_dtype))\n    normalize_exp = tbe.vexp(normalize_log_mul)\n    variance_normalize_broadcast = _broadcast_nz(normalize_exp, shape_x)\n    normalize_mul = tbe.vmul(normalize_sub, variance_normalize_broadcast)\n\n    # DSL description of the scale and translate calculation process\n    gamma_broadcast = _broadcast_nz(input_gamma, shape_x)\n    beta_broadcast = _broadcast_nz(input_beta, shape_x)\n    scale_mul = tbe.vmul(gamma_broadcast, normalize_mul)\n    res = tbe.vadd(scale_mul, beta_broadcast)\n\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        mean = tbe.cast_to(mean, \"float16\")\n        variance = tbe.cast_to(variance, \"float16\")\n        res = tbe.cast_to(res, \"float16\")\n\n    return mean, variance, res\n\n\n# 'pylint: disable=too-many-statements,too-many-branches\ndef layer_norm_compute_nz(input_x, input_gamma, input_beta,\n                          output_y, output_mean, output_variance,\n                          begin_norm_axis, begin_params_axis,\n                          ori_shape, epsilon, kernel_name=\"layer_norm\",\n                          impl_mode=\"high_performance\"):\n    \"\"\"\n    DSL description of the layernorm operator's mathematical calculation process\n\n    Parameters\n    ----------\n    input_x: TVM tensor\n        the placeholder of x input data\n    input_gamma: TVM tensor\n        the placeholder of gamma input data\n    input_beta: TVM tensor\n        the placeholder of beta input data\n    output_data: dict\n        shape and dtype of output\n    begin_norm_axis: int\n      The first normalization dimension: normalization will be\n      performed along dimensions `begin_norm_axis : rank(inputs)`\n    begin_params_axis: int\n      The first parameter (beta, gamma) dimension: scale\n      and centering parameters will have dimensions\n      `begin_params_axis : rank(inputs)` and will be broadcast with the\n      normalized inputs accordingly.\n    epsilon: float,\n      Minimum positive number greater than 0\n    kernel_name: str\n        cce kernel name, default value is \"cce_layernorm\"\n\n    Returns\n    -------\n    res_tuple: tuple\n        (mean, variance, result)\n    \"\"\"\n    shape_x = shape_util.shape_to_list(input_x.shape)\n    dtype = input_x.dtype.lower()\n    cast_dtype, cast_fp16_dtype = \"float16\", \"float16\"\n    cast_dtype_precision = dtype\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        cast_dtype = \"float32\"\n        cast_dtype_precision = \"float32\"\n        input_x = tbe.cast_to(input_x, \"float32\")\n        input_gamma = tbe.cast_to(input_gamma, \"float32\")\n        input_beta = tbe.cast_to(input_beta, \"float32\")\n\n    # Calculate the scaling ratio of the average\n    reduce_elts = 1.0\n    index_list = tuple(index for index, _ in enumerate(ori_shape))\n    reduce_axis = index_list[begin_norm_axis:]\n    for i in reduce_axis:\n        reduce_elts *= ori_shape[i]\n    reduce_axis = to_frac_z_axis(ori_shape, reduce_axis)\n    mean_cof = reduce_elts ** (-1)\n    if impl_mode != \"keep_fp16\":\n        # DSL description of the mean calculation process\n        mean_muls = tbe.vmuls(input_x, mean_cof)\n        mean = tbe.sum(mean_muls, axis=reduce_axis, keepdims=True)\n        # DSL description of the variance calculation process\n        mean_variance_broadcast = _broadcast_nz(mean, shape_x)\n        variance_sub = tbe.vsub(input_x, mean_variance_broadcast)\n        variance_mul = tbe.vmul(variance_sub, variance_sub)\n        variance_muls = tbe.vmuls(variance_mul, mean_cof)\n        variance = tbe.sum(variance_muls, axis=reduce_axis, keepdims=True)\n    else:\n        # DSL description of the mean calculation process\n        x_sum = tbe.sum(input_x, axis=reduce_axis, keepdims=True)\n        mean = tbe.vmuls(x_sum, mean_cof)\n        # DSL description of the variance calculation process\n        mean_variance_broadcast = _broadcast_nz(mean, shape_x)\n        variance_sub = tbe.vsub(input_x, mean_variance_broadcast)\n        variance_mul = tbe.vmul(variance_sub, variance_sub)\n        variance_sum = tbe.sum(variance_mul, axis=reduce_axis, keepdims=True)\n        variance = tbe.vmuls(variance_sum, mean_cof)\n\n    # DSL description of the normalize calculation process\n    if impl_mode == \"high_performance\":\n        mean_normalize_broadcast = _broadcast_nz(mean, shape_x)\n        normalize_sub = tbe.vsub(input_x, mean_normalize_broadcast)\n        epsilon = tvm.const(epsilon, dtype=cast_dtype)\n        variance_normalize_broadcast = _broadcast_nz(variance, shape_x)\n        normalize_add = tbe.vadds(variance_normalize_broadcast, epsilon)\n        normalize_log = tbe.vlog(normalize_add)\n        normalize_log_mul = \\\n            tbe.vmuls(normalize_log, tvm.const(-0.5, dtype=cast_dtype))\n        normalize_exp = tbe.vexp(normalize_log_mul)\n        normalize_mul = tbe.vmul(normalize_sub, normalize_exp)\n    elif impl_mode == \"high_precision\":\n        tesor_one = tbe.broadcast(tvm.const\n                                  (1, cast_dtype_precision),\n                                  shape_x)\n        mean_normalize_broadcast = _broadcast_nz(mean, shape_x)\n        normalize_sub = tbe.vsub(input_x, mean_normalize_broadcast)\n        variance_normalize_broadcast = _broadcast_nz(variance, shape_x)\n        epsilon = tvm.const(epsilon, dtype=cast_dtype_precision)\n        normalize_add = tbe.vadds(variance_normalize_broadcast, epsilon)\n        normalize_sqrt = tbe.vsqrt(normalize_add, 0)\n        normalize_rsqrt = tbe.vdiv(tesor_one, normalize_sqrt)\n        normalize_mul = tbe.vmul(normalize_sub, normalize_rsqrt)\n    else:\n        epsilon = tvm.const(epsilon, dtype=cast_fp16_dtype)\n        normalize_add = tbe.vadds(variance, epsilon)\n        normalize_log = tbe.vlog(normalize_add)\n        normalize_log_mul = \\\n            tbe.vmuls(normalize_log, tvm.const(-0.5, dtype=cast_fp16_dtype))\n        normalize_exp = tbe.vexp(normalize_log_mul)\n        variance_normalize_broadcast = _broadcast_nz(normalize_exp, shape_x)\n        normalize_mul = tbe.vmul(variance_sub, variance_normalize_broadcast)\n\n    # DSL description of the scale and translate calculation process\n    if begin_params_axis == 0:\n        scale_mul = tbe.vmul(input_gamma, normalize_mul)\n        res = tbe.vadd(scale_mul, input_beta)\n    else:\n        gamma_broadcast = _broadcast_nz(input_gamma, shape_x)\n        beta_broadcast = _broadcast_nz(input_beta, shape_x)\n        scale_mul = tbe.vmul(gamma_broadcast, normalize_mul)\n        res = tbe.vadd(scale_mul, beta_broadcast)\n\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        mean = tbe.cast_to(mean, \"float16\")\n        variance = tbe.cast_to(variance, \"float16\")\n        res = tbe.cast_to(res, \"float16\")\n\n    return mean, variance, res\n\n\n# 'pylint: disable=too-many-statements,too-many-branches\n@tbe_platform.fusion_manager.fusion_manager.register(\"layer_norm\")\ndef layer_norm_compute(input_x, input_gamma, input_beta,\n                       output_y, output_mean, output_variance,\n                       begin_norm_axis, begin_params_axis,\n                       epsilon, kernel_name=\"layer_norm\",\n                       impl_mode=\"high_performance\"):\n    \"\"\"\n    DSL description of the layernorm operator's mathematical calculation process\n\n    Parameters\n    ----------\n    input_x: TVM tensor\n        the placeholder of x input data\n    input_gamma: TVM tensor\n        the placeholder of gamma input data\n    input_beta: TVM tensor\n        the placeholder of beta input data\n    output_data: dict\n        shape and dtype of output\n    begin_norm_axis: int\n      The first normalization dimension: normalization will be\n      performed along dimensions `begin_norm_axis : rank(inputs)`\n    begin_params_axis: int\n      The first parameter (beta, gamma) dimension: scale\n      and centering parameters will have dimensions\n      `begin_params_axis : rank(inputs)` and will be broadcast with the\n      normalized inputs accordingly.\n    epsilon: float,\n      Minimum positive number greater than 0\n    kernel_name: str\n        cce kernel name, default value is \"cce_layernorm\"\n\n    Returns\n    -------\n    res_tuple: tuple\n        (mean, variance, result)\n    \"\"\"\n    shape_x = shape_util.shape_to_list(input_x.shape)\n    dtype = input_x.dtype.lower()\n    cast_dtype, cast_fp16_dtype = \"float16\", \"float16\"\n    cast_dtype_precision = dtype\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        cast_dtype = \"float32\"\n        cast_dtype_precision = \"float32\"\n        input_x = tbe.cast_to(input_x, \"float32\")\n        input_gamma = tbe.cast_to(input_gamma, \"float32\")\n        input_beta = tbe.cast_to(input_beta, \"float32\")\n\n    # Calculate the scaling ratio of the average\n    index_list = tuple(index for index, _ in enumerate(shape_x))\n    reduce_axis = index_list[begin_norm_axis:]\n\n    reduce_elts = 1.0\n    for i in reduce_axis:\n        reduce_elts *= shape_x[i]\n    mean_cof = reduce_elts ** (-1)\n\n    if impl_mode != \"keep_fp16\":\n        # DSL description of the mean calculation process\n        mean_muls = tbe.vmuls(input_x, mean_cof)\n        mean = tbe.sum(mean_muls, axis=reduce_axis, keepdims=True)\n\n        # DSL description of the variance calculation process\n        mean_variance_broadcast = tbe.broadcast(mean, shape_x)\n        variance_sub = tbe.vsub(input_x, mean_variance_broadcast)\n        variance_mul = tbe.vmul(variance_sub, variance_sub)\n        variance_muls = tbe.vmuls(variance_mul, mean_cof)\n        variance = tbe.sum(variance_muls, axis=reduce_axis, keepdims=True)\n    else:\n        # DSL description of the mean calculation process\n        x_sum = tbe.sum(input_x, axis=reduce_axis, keepdims=True)\n        mean = tbe.vmuls(x_sum, mean_cof)\n        # DSL description of the variance calculation process\n        mean_variance_broadcast = tbe.broadcast(mean, shape_x)\n        variance_sub = tbe.vsub(input_x, mean_variance_broadcast)\n        variance_mul = tbe.vmul(variance_sub, variance_sub)\n        variance_sum = tbe.sum(variance_mul, axis=reduce_axis, keepdims=True)\n        variance = tbe.vmuls(variance_sum, mean_cof)\n\n    # DSL description of the normalize calculation process\n    if impl_mode == \"high_performance\":\n        mean_normalize_broadcast = tbe.broadcast(mean, shape_x)\n        normalize_sub = tbe.vsub(input_x, mean_normalize_broadcast)\n        epsilon = tvm.const(epsilon, dtype=cast_dtype)\n        variance_normalize_broadcast = tbe.broadcast(variance, shape_x)\n        normalize_add = tbe.vadds(variance_normalize_broadcast, epsilon)\n        normalize_log = tbe.vlog(normalize_add)\n        normalize_log_mul = \\\n            tbe.vmuls(normalize_log, tvm.const(-0.5, dtype=cast_dtype))\n        normalize_exp = tbe.vexp(normalize_log_mul)\n        normalize_mul = tbe.vmul(normalize_sub, normalize_exp)\n    elif impl_mode == \"high_precision\":\n        tesor_one = tbe.broadcast(tvm.const\n                                  (1, cast_dtype_precision),\n                                  shape_x)\n        mean_normalize_broadcast = tbe.broadcast(mean, shape_x)\n        normalize_sub = tbe.vsub(input_x, mean_normalize_broadcast)\n        variance_normalize_broadcast = tbe.broadcast(variance, shape_x)\n        epsilon = tvm.const(epsilon, dtype=cast_dtype_precision)\n        normalize_add = tbe.vadds(variance_normalize_broadcast, epsilon)\n        normalize_sqrt = tbe.vsqrt(normalize_add, 0)\n        normalize_rsqrt = tbe.vdiv(tesor_one, normalize_sqrt)\n        normalize_mul = tbe.vmul(normalize_sub, normalize_rsqrt)\n    else:\n        epsilon = tvm.const(epsilon, dtype=cast_fp16_dtype)\n        normalize_add = tbe.vadds(variance, epsilon)\n        normalize_log = tbe.vlog(normalize_add)\n        normalize_log_mul = \\\n            tbe.vmuls(normalize_log, tvm.const(-0.5, dtype=cast_fp16_dtype))\n        normalize_exp = tbe.vexp(normalize_log_mul)\n        variance_normalize_broadcast = tbe.broadcast(normalize_exp, shape_x)\n        normalize_mul = tbe.vmul(variance_sub, variance_normalize_broadcast)\n\n    # DSL description of the scale and translate calculation process\n    if begin_params_axis == 0:\n        scale_mul = tbe.vmul(input_gamma, normalize_mul)\n        res = tbe.vadd(scale_mul, input_beta)\n    else:\n        gamma_broadcast = tbe.broadcast(input_gamma, shape_x)\n        beta_broadcast = tbe.broadcast(input_beta, shape_x)\n        scale_mul = tbe.vmul(gamma_broadcast, normalize_mul)\n        res = tbe.vadd(scale_mul, beta_broadcast)\n\n    if dtype == \"float16\" and \\\n            ((tbe_platform.cce_conf.api_check_support\n                  (\"te.lang.cce.vexp\", \"float32\") and\n              impl_mode == \"high_performance\") or\n             impl_mode == \"high_precision\"):\n        mean = tbe.cast_to(mean, \"float16\")\n        variance = tbe.cast_to(variance, \"float16\")\n        res = tbe.cast_to(res, \"float16\")\n\n    return mean, variance, res\n\n\ndef is_support_nz_non_aligned(ori_shape_x, begin_params_axis, impl_mode):\n    \"\"\"\n    is_support_nz_non_aligned\n    \"\"\"\n    if ori_shape_x[-1] % constant.C0_SIZE != 0:\n        if begin_params_axis != 0:\n            return True\n\n    return False\n\n\n@para_check.check_op_params(para_check.REQUIRED_INPUT, para_check.REQUIRED_INPUT,\n                            para_check.REQUIRED_INPUT, para_check.REQUIRED_OUTPUT,\n                            para_check.REQUIRED_OUTPUT, para_check.REQUIRED_OUTPUT,\n                            para_check.REQUIRED_ATTR_INT, para_check.REQUIRED_ATTR_INT,\n                            para_check.OPTION_ATTR_FLOAT, para_check.KERNEL_NAME,\n                            para_check.OPTION_ATTR_STR)\ndef layer_norm(input_x, input_gamma, input_beta,\n               output_y, output_mean, output_variance,\n               begin_norm_axis, begin_params_axis,\n               epsilon=1e-12, kernel_name=\"layer_norm\",\n               impl_mode=\"high_performance\"):\n    \"\"\"\n    layernorm operator interface implementation\n    calculating: x, gamma, beta\n        mean  = np.mean(x, reduce_axis, keepdims=True)\n        variance = np.mean(np.power((x - mean),2), reduce_axis, keepdims=True)\n        result = gamma*((x - mean) / np.sqrt(variance + 0.001)) + beta\n\n    Parameters\n    ----------\n    input_x : dict\n        shape and dtype of input x, only support float16, float32\n    input_gamma: dict\n        shape and dtype of input gamma, only support float16, float32\n    input_beta: dict\n        shape and dtype of input beta, only support float16, float32\n    output_y: dict\n        shape and dtype of output, only support float16, float32\n    begin_norm_axis: int\n      The first normalization dimension: normalization will be\n      performed along dimensions `begin_norm_axis : rank(inputs)`\n    begin_params_axis: int\n      The first parameter (beta, gamma) dimension: scale\n      and centering parameters will have dimensions\n      `begin_params_axis : rank(inputs)` and will be broadcast with the\n      normalized inputs accordingly.\n    epsilon: float,\n      Minimum positive number greater than 0\n    kernel_name: str\n        cce kernel name, default value is \"layernorm\"\n\n    Returns\n    -------\n    None\n    \"\"\"\n    shape_x = list(input_x.get(\"shape\"))\n    input_gamma_shape = input_gamma.get(\"shape\")\n    input_beta_shape = input_beta.get(\"shape\")\n    ori_shape_x = list(input_x.get(\"ori_shape\"))\n    input_format = input_x.get(\"format\").upper()\n    input_gamma_format = input_gamma.get(\"format\").upper()\n    input_beta_format = input_beta.get(\"format\").upper()\n\n    para_check.check_shape(input_gamma_shape, param_name=\"input_gamma\")\n    para_check.check_shape(input_beta_shape, param_name=\"input_beta\")\n    para_check.check_shape(shape_x, param_name=\"input_x\")\n\n    check_list = (\"float16\", \"float32\")\n    dtype = input_x.get(\"dtype\").lower()\n    dtype_gamma = input_gamma.get(\"dtype\").lower()\n    dtype_beta = input_gamma.get(\"dtype\").lower()\n    para_check.check_dtype(dtype, check_list, param_name=\"input_x\")\n    para_check.check_dtype(dtype_gamma, check_list, param_name=\"input_gamma\")\n    para_check.check_dtype(dtype_beta, check_list, param_name=\"input_gamma\")\n\n    shape_gamma = list(input_gamma.get(\"shape\"))\n    shape_beta = list(input_beta.get(\"shape\"))\n\n    flag_vector2cube = False\n    tik_support = if_tik_support(input_x, input_gamma, input_beta, output_y, output_mean,\n                                 output_variance, begin_norm_axis, begin_params_axis, epsilon)\n    if tik_support:\n        layer_normalize(input_x, input_gamma, input_beta,\n                        output_y, output_mean, output_variance,\n                        begin_norm_axis, begin_params_axis,\n                        epsilon, kernel_name)\n    else:\n        if input_format == \"FRACTAL_NZ\":\n            begin_norm_axis = shape_util.axis_check(len(ori_shape_x), begin_norm_axis)\n            begin_params_axis = shape_util.axis_check(len(ori_shape_x), begin_params_axis)\n\n            flag_vector2cube = _check_vector_to_cube(dtype, ori_shape_x, shape_x, begin_norm_axis, impl_mode)\n            if input_gamma_format == \"FRACTAL_NZ\" or input_beta_format == \"FRACTAL_NZ\":\n                error_detail = \"gamma and beta not support Nz in bert\"\n                error_manager_vector.raise_err_two_input_format_invalid(kernel_name, \"input_gamma\",\n                                                                        \"input_beta\", error_detail)\n            if shape_gamma != shape_beta:\n                error_detail = \"gamma and beta's shape must be same.\"\n                error_manager_vector.raise_err_two_input_shape_invalid(kernel_name, \"input_gamma\",\n                                                                       \"input_beta\", error_detail)\n            if ori_shape_x[begin_params_axis:] != shape_gamma:\n                error_detail = \"x or gamma or begin_params_axis is wrong.\"\n                error_manager_vector.raise_err_two_input_shape_invalid(kernel_name, \"x\",\n                                                                       \"input_gamma\", error_detail)\n            if len(shape_gamma) > 1:\n                error_detail = \"shape of gamma or beta only support 1D in bert\"\n                error_manager_vector.raise_err_input_shape_invalid(kernel_name, \"input_gamma\", error_detail)\n\n            # make shape_x,shape_gamma,shape_beta dim same in vector case\n            if not flag_vector2cube:\n                if begin_params_axis != 0:\n                    for i in range(begin_params_axis):\n                        shape_gamma.insert(i, 1)\n                shape_gamma[-2] = shape_x[-4]\n                shape_gamma[-1] = 1\n                shape_gamma.append(1)\n                shape_gamma.append(shape_x[-1])\n                if begin_params_axis > len(ori_shape_x) - 2:\n                    shape_x[-3:] = [shape_x[-3] * shape_x[-2], shape_x[-1]]\n                    shape_gamma[-3:] = [shape_gamma[-3] * shape_gamma[-2], shape_gamma[-1]]\n                shape_beta = shape_gamma\n        else:\n            begin_norm_axis = shape_util.axis_check(len(shape_x), begin_norm_axis)\n            begin_params_axis = shape_util.axis_check(len(shape_x), begin_params_axis)\n\n            if shape_gamma != shape_beta:\n                error_detail = \"gamma and beta's shape must be same.\"\n                error_manager_vector.raise_err_two_input_shape_invalid(kernel_name, \"input_gamma\",\n                                                                       \"input_beta\", error_detail)\n            no_need_fix_gamma = False\n            no_need_fix_beta = False\n            if shape_x[begin_params_axis:] != shape_gamma:\n                if len(shape_x) == len(shape_gamma):\n                    no_need_fix_gamma = True\n                else:\n                    error_detail = \"x or gamma or begin_params_axis is wrong.\"\n                    error_manager_vector.raise_err_two_input_shape_invalid(kernel_name, \"x\",\n                                                                           \"input_gamma\", error_detail)\n            if shape_x[begin_params_axis:] != shape_beta:\n                if len(shape_x) == len(shape_beta):\n                    no_need_fix_beta = True\n                else:\n                    error_detail = \"x or gamma or begin_params_axis is wrong.\"\n                    error_manager_vector.raise_err_two_input_shape_invalid(kernel_name, \"x\",\n                                                                           \"input_beta\", error_detail)\n            # make shape_x,shape_gamma,shape_beta dim same\n            if begin_params_axis != 0 and not no_need_fix_gamma:\n                for i in range(begin_params_axis):\n                    shape_gamma.insert(i, 1)\n            if begin_params_axis != 0 and not no_need_fix_beta:\n                for i in range(begin_params_axis):\n                    shape_beta.insert(i, 1)\n\n        attr = {\"ori_shape\": ori_shape_x}\n        data_x = tvm.placeholder(shape_x, name=\"x\", dtype=dtype, attrs=attr)\n        data_gamma = tvm.placeholder(shape_gamma, name=\"gamma\", dtype=dtype)\n        data_beta = tvm.placeholder(shape_beta, name=\"beta\", dtype=dtype)\n\n        if input_format == \"FRACTAL_NZ\":\n            dyn_input_x = deepcopy(input_x)\n            dyn_input_x[\"shape\"] = shape_x\n            if flag_vector2cube:\n                layer_norm_cube = LayerNormCube({\"ori_shape\": ori_shape_x,\n                                                 \"epsilon\"  : epsilon})\n                mean, variance, res = \\\n                    layer_norm_cube.layer_norm_cube_compute(data_x, data_gamma, data_beta)\n            elif is_support_nz_non_aligned(ori_shape_x, begin_params_axis, impl_mode):\n                mean, variance, res = \\\n                    nz_non_aligned(data_x, data_gamma, data_beta,\n                                   output_y, output_mean, output_variance,\n                                   begin_norm_axis, begin_params_axis,\n                                   ori_shape_x, epsilon, kernel_name, impl_mode)\n            elif layer_norm_unify.is_special_cases(dyn_input_x, input_gamma, input_beta, begin_norm_axis, impl_mode):\n                __dynamic_template_api(input_x, input_gamma, input_beta, output_y, output_mean, output_variance,\n                                       begin_norm_axis, begin_params_axis, epsilon, kernel_name, impl_mode)\n                return\n\n            else:\n                mean, variance, res = \\\n                    layer_norm_compute_nz(data_x, data_gamma, data_beta,\n                                          output_y, output_mean, output_variance,\n                                          begin_norm_axis, begin_params_axis,\n                                          ori_shape_x, epsilon, kernel_name, impl_mode)\n        else:\n            if layer_norm_unify.is_special_cases(input_x, input_gamma, input_beta, begin_norm_axis, impl_mode):\n                __dynamic_template_api(input_x, input_gamma, input_beta, output_y, output_mean, output_variance,\n                                       begin_norm_axis, begin_params_axis, epsilon, kernel_name, impl_mode)\n                return\n            else:\n                mean, variance, res = \\\n                    layer_norm_compute(data_x, data_gamma, data_beta,\n                                       output_y, output_mean,\n                                       output_variance,\n                                       begin_norm_axis, begin_params_axis,\n                                       epsilon, kernel_name, impl_mode)\n\n        with tvm.target.cce():\n            sch = tbe.auto_schedule([res, mean, variance])\n\n        config = {\"print_ir\"   : False,\n                  \"name\"       : kernel_name,\n                  \"tensor_list\": [data_x, data_gamma,\n                                  data_beta, res, mean, variance]}\n\n        tbe.cce_build_code(sch, config)\n\n\ndef __dynamic_template_api(input_x, input_gamma, input_beta, output_y, output_mean, output_variance,\n                           begin_norm_axis, begin_params_axis, epsilon, kernel_name, impl_mode):\n    # when all reduce axis, or reduce axis non aligned or reduced mte data less one block etc. single-core cases will\n    # transfer dynamic template to use multi-core\n    input_x, input_gamma, input_beta = layer_norm_unify.set_range(input_x, input_gamma, input_beta)\n    context_ops = tbe_context.op_context.get_context()\n    if context_ops is not None:\n        context_ops.set_op_mode(\"static\")\n        context_ops.add_addition(\"is_static\", True)\n        dyn.layer_norm(input_x, input_gamma, input_beta,\n                       output_y, output_mean, output_variance,\n                       begin_norm_axis, begin_params_axis,\n                       epsilon, kernel_name, impl_mode)\n    else:\n        with tbe_context.op_context.OpContext(\"static\"):\n            tbe_context.op_context.get_context().add_addition(\"is_static\", True)\n            dyn.layer_norm(input_x, input_gamma, input_beta,\n                           output_y, output_mean, output_variance,\n                           begin_norm_axis, begin_params_axis,\n                           epsilon, kernel_name, impl_mode)\n"
  },
  {
    "path": "codegeex/mindspore/scripts/layer_norm_x_backprop_v2.py",
    "content": "# Copyright 2019 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nlayer_norm_x_backprop_v2\n\"\"\"\nimport operator\n\nimport impl.layer_norm_x_backprop_v2_unify as layer_norm_x_backprop_v2_unify\nimport te.lang.cce as tbe\nfrom impl.util import util_select_op_base\nfrom impl.util.platform_adapter import tbe_context\nfrom impl.util.util_select_op_base import SplitInput\nfrom impl.util.util_select_op_base import SplitOutput\nfrom impl.util.util_select_op_base import get_op_cal_info\nfrom te import platform as tbe_platform\nfrom te import tvm\nfrom te.utils import para_check\nfrom te.utils import shape_util\nfrom te.utils.error_manager import error_manager_vector\n\n\n# 'pylint: disable=too-many-lines\n# 'pylint: disable = unused-argument,too-many-arguments,too-many-locals,global-variable-undefined\ndef get_op_support_info(input_dy,\n                        input_x,\n                        input_variance,\n                        input_mean,\n                        input_gamma,\n                        output_pd_x,\n                        res_for_gamma,\n                        kernel_name=\"layer_norm_x_backprop_v2\"):\n    \"\"\"\n    get_op_support_info\n    \"\"\"\n    shape_x = input_x.get(\"shape\")\n    shape_mean = input_mean.get(\"shape\")\n    shape_gamma = input_gamma.get(\"shape\")\n    format_dy = input_dy.get(\"format\").upper()\n    if format_dy in (\"ND\", \"NCHW\", \"NHWC\", \"NC1HWC0\"):\n        if len(shape_x) == len(shape_gamma):\n            axis_split_matrix = []\n            flag = -1\n            for i, (xtem, mean) in enumerate(zip(shape_x, shape_mean)):\n                if xtem != mean:\n                    flag = i\n                    break\n            if flag == -1:\n                for i in range(len(shape_x) - 1):\n                    split_0 = [\n                        SplitInput([0, [i], [-1], [-1]], [1, [i], [-1], [-1]], [2, [i], [-1], [-1]],\n                                   [3, [i], [-1], [-1]], [4, [i], [-1], [-1]]),\n                        SplitOutput([0, [i]])\n                    ]\n                    axis_split_matrix.append(split_0)\n            else:\n                for i in range(flag):\n                    split_0 = [\n                        SplitInput([0, [i], [-1], [-1]], [1, [i], [-1], [-1]], [2, [i], [-1], [-1]],\n                                   [3, [i], [-1], [-1]], [4, [i], [-1], [-1]]),\n                        SplitOutput([0, [i]], [1, [i]])\n                    ]\n                    axis_split_matrix.append(split_0)\n        else:\n            axis_split_matrix = None\n\n    else:\n        axis_split_matrix = None\n    axis_reduce_list = None\n    op_cal_info_in_json = get_op_cal_info(axis_split_matrix, axis_reduce_list, 0, 0)\n    return op_cal_info_in_json\n\n\n# 'pylint: disable=invalid-name,too-many-lines,too-many-arguments\n# 'pylint: disable=unused-argument,too-many-locals,locally-disabled\ndef _check_dynamic_format(shape_dy, shape_gamma, c_0):\n    \"\"\"\n    check dynamic format branch\n\n    \"\"\"\n    if len(shape_dy) < 2 or len(shape_gamma) != 1:\n        return True\n    if shape_dy[-1] % c_0 != 0 or shape_dy[-2] % c_0 != 0 \\\n            or shape_gamma[-1] % c_0 != 0:\n        return True\n    return True\n\n\ndef op_select_format(input_dy,\n                     input_x,\n                     input_variance,\n                     input_mean,\n                     input_gamma,\n                     output_pd_x,\n                     res_for_gamma,\n                     kernel_name=\"layer_norm_x_backprop_v2\"):\n    \"\"\"\n    function of selecting dynamic format\n\n    Parameters\n    ----------\n    input_dy : dict\n        shape and dtype of input dy, only support float16, float32\n    input_x: dict\n        shape and dtype of input x, only support float16, float32\n    input_variance: dict\n        shape and dtype of input variance, only support float16, float32\n    input_mean: dict\n        shape and dtype of input mean, only support float16, float32\n    input_gamma: dict\n        shape and dtype of input gamma, only support float16, float32\n    output_pd_x: dict\n        shape and dtype of output, only support float16, float32\n    kernel_name: str\n        cce kernel name, default value is \"layer_norm_x_backprop_v2\"\n\n    Returns\n    -------\n    None\n    \"\"\"\n    shape_dy = input_dy.get(\"ori_shape\")\n    shape_gamma = input_gamma.get(\"ori_shape\")\n    shape_dy = shape_util.scalar2tensor_one(shape_dy)\n    shape_gamma = shape_util.scalar2tensor_one(shape_gamma)\n    c_0 = 16\n\n    if _check_dynamic_format(shape_dy, shape_gamma, c_0):\n        input0 = util_select_op_base.gen_param(classify=\"input0\",\n                                               name=\"dy\",\n                                               datatype=\"float16,float16,float16,float,\"\n                                                        \"float,float\",\n                                               format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        input1 = util_select_op_base.gen_param(classify=\"input1\",\n                                               name=\"x\",\n                                               datatype=\"float16,float16,float16,float,\"\n                                                        \"float,float\",\n                                               format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        input2 = util_select_op_base.gen_param(classify=\"input2\",\n                                               name=\"variance\",\n                                               datatype=\"float16,float16,float16,float,\"\n                                                        \"float,float\",\n                                               format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        input3 = util_select_op_base.gen_param(classify=\"input3\",\n                                               name=\"mean\",\n                                               datatype=\"float16,float16,float16,float,\"\n                                                        \"float,float\",\n                                               format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        input4 = util_select_op_base.gen_param(classify=\"input4\",\n                                               name=\"gamma\",\n                                               datatype=\"float16,float16,float16,float,\"\n                                                        \"float,float\",\n                                               format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        output0 = util_select_op_base.gen_param(classify=\"output0\",\n                                                name=\"pd_x\",\n                                                datatype=\"float16,float16,float16,float,\"\n                                                         \"float,float\",\n                                                format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n        output1 = util_select_op_base.gen_param(classify=\"output1\",\n                                                name=\"res_for_gamma\",\n                                                datatype=\"float,float,float,float,\"\n                                                         \"float,float\",\n                                                format=\"NCHW,NHWC,ND,NCHW,NHWC,ND\")\n    else:\n        input0 = util_select_op_base.gen_param(classify=\"input0\",\n                                               name=\"dy\",\n                                               datatype=\"float16, float,float16,float16,\"\n                                                        \"float16,float,float,float\",\n                                               format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,ND,\"\n                                                      \"NCHW,NHWC,ND\")\n        input1 = util_select_op_base.gen_param(classify=\"input1\",\n                                               name=\"x\",\n                                               datatype=\"float16, float,float16,float16,\"\n                                                        \"float16,float,float,float\",\n                                               format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,ND,\"\n                                                      \"NCHW,NHWC,ND\")\n        input2 = util_select_op_base.gen_param(classify=\"input2\",\n                                               name=\"variance\",\n                                               datatype=\"float16, float,float16,float16,\"\n                                                        \"float16,float,float,float\",\n                                               format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                      \"NHWC,ND\")\n        input3 = util_select_op_base.gen_param(classify=\"input3\",\n                                               name=\"mean\",\n                                               datatype=\"float16, float,float16,float16,\"\n                                                        \"float16,float,float,float\",\n                                               format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                      \"NHWC,ND\")\n        input4 = util_select_op_base.gen_param(classify=\"input4\",\n                                               name=\"gamma\",\n                                               datatype=\"float16, float,float16,float16,\"\n                                                        \"float16,float,float,float\",\n                                               format=\"ND,ND,NCHW,NHWC,ND,NCHW,\"\n                                                      \"NHWC,ND\")\n        output0 = util_select_op_base.gen_param(classify=\"output0\",\n                                                name=\"pd_x\",\n                                                datatype=\"float16, float,float16,float16,\"\n                                                         \"float16,float,float,float\",\n                                                format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,\"\n                                                       \"ND,NCHW,NHWC,ND\")\n        output1 = util_select_op_base.gen_param(classify=\"output1\",\n                                                name=\"res_for_gamma\",\n                                                datatype=\"float, float,float,float,\"\n                                                         \"float,float,float,float\",\n                                                format=\"FRACTAL_NZ,FRACTAL_NZ,NCHW,NHWC,\"\n                                                       \"ND,NCHW,NHWC,ND\")\n\n    param_list = [input0, input1, input2, input3, input4, output0, output1]\n    param_dynamic_in_json = util_select_op_base.get_dynamic_param_in_json(param_list)\n\n    return param_dynamic_in_json\n\n\ndef _check_params(params_map):\n    \"\"\"\n    check parameters including shape_dy, shape_x, shape_var,\n    shape_mean, shape_gamma, dtype and kernel_name\n\n    Parameters\n    ----------\n    params_map: dict\n        {\"shape_dy\": shape_dy, \"shape_x\": shape_x, \"shape_var\": shape_variance,\n        \"shape_mean\": shape_mean, \"shape_gamma\": shape_gamma,\n        \"dtype\": dtype, \"kernel_name\": kernel_name}\n\n    Returns\n    -------\n    None\n    \"\"\"\n\n    check_list = (\"float16\", \"float32\")\n    para_check.check_dtype(params_map.get(\"dtype\"), check_list, param_name=\"input_dy\")\n\n    _check_shape(params_map)\n\n\ndef _check_shape(params_map):\n    \"\"\"\n    check parameters including shape_dy, shape_x, shape_var,\n    shape_mean and shape_gamma\n\n    Parameters\n    ----------\n    params_map: dict\n        {\"shape_dy\": shape_dy, \"shape_x\": shape_x, \"shape_var\": shape_variance,\n         \"shape_mean\": shape_mean, \"shape_gamma\": shape_gamma,\n         \"dtype\": dtype, \"kernel_name\": kernel_name}\n\n    Returns\n    -------\n    None\n    \"\"\"\n    if operator.ne(tuple(params_map.get(\"shape_dy\")), tuple(params_map.get(\"shape_x\"))):\n        error_detail = \"shape of input_dy and input_x should be same\"\n        error_manager_vector.raise_err_two_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_dy\", \"input_x\",\n                                                               error_detail)\n\n    if operator.ne(tuple(params_map.get(\"shape_var\")), tuple(params_map.get(\"shape_mean\"))):\n        error_detail = \"shape of input_variance and input_mean should be same\"\n        error_manager_vector.raise_err_two_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_variance\",\n                                                               \"input_mean\", error_detail)\n\n    shape_x = params_map.get(\"shape_x\")\n    shape_mean = params_map.get(\"shape_mean\")\n    shape_gamma = params_map.get(\"shape_gamma\")\n\n    para_check.check_shape(shape_x, param_name=\"input_x\")\n    para_check.check_shape(shape_mean, param_name=\"input_mean\")\n    para_check.check_shape(shape_gamma, param_name=\"input_gamma\")\n\n    _check_shape_mean(shape_x, shape_mean)\n    _check_shape_gamma(shape_x, shape_gamma)\n\n\ndef _check_shape_mean(shape_x, shape_mean):\n    \"\"\"\n    check if parameter shape_mean meets the requirements of function\n\n    Parameters\n    ----------\n    shape_x: list or tuple\n        shape of x\n    shape_mean: list or tuple\n        shape of mean\n\n    Returns\n    -------\n    None\n    \"\"\"\n    if len(shape_x) != len(shape_mean):\n        error_detail = \"length of shape_x and shape_mean should be same\"\n        error_manager_vector.raise_err_two_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_x\", \"input_mean\",\n                                                               error_detail)\n\n    if shape_mean[-1] != 1:\n        error_detail = \"value of shape_mean's last dim must be 1\"\n        error_manager_vector.raise_err_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_mean\", error_detail)\n\n    flag = -1\n    for i, (xtem, mean) in enumerate(zip(shape_x, shape_mean)):\n        if xtem != mean:\n            flag = i\n            break\n\n    if flag != -1:\n        for i, mean in enumerate(shape_mean):\n            if i < flag:\n                continue\n            if mean != 1:\n                error_detail = \"value of shape_mean must be 1\"\n                error_manager_vector.raise_err_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_mean\",\n                                                                   error_detail)\n\n\ndef _check_shape_gamma(shape_x, shape_gamma):\n    \"\"\"\n    check if parameter shape_gamma meets the requirements of function\n\n    Parameters\n    ----------\n    shape_x: list or tuple\n        shape of x\n    shape_gamma: list or tuple\n        shape of gamma\n\n    Returns\n    -------\n    None\n    \"\"\"\n    if len(shape_gamma) > len(shape_x):\n        error_detail = \"length of shape_gamma can not be longer than shape_x\"\n        error_manager_vector.raise_err_two_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_gamma\", \"input_x\",\n                                                               error_detail)\n\n    for xtem, gamma in zip(reversed(shape_x), reversed(shape_gamma)):\n        if xtem != gamma:\n            error_detail = \"value of shape_gamma is wrong\"\n            error_manager_vector.raise_err_input_shape_invalid(\"layer_norm_x_backprop_v2\", \"input_gamma\", error_detail)\n\n\ndef _broadcast_nz(tensor, shape):\n    broadcast_axes = []\n    src_shape = shape_util.shape_to_list(tensor.shape)\n    for i, _ in enumerate(shape):\n        if shape[i] != src_shape[i]:\n            broadcast_axes.append(i)\n    if len(broadcast_axes) == 2 and \\\n            broadcast_axes[1] - broadcast_axes[0] != 1 and \\\n            broadcast_axes[1] + 1 == len(shape):\n        temp_shape = src_shape[:-1] + [shape[-1]]\n        tensor = tbe.broadcast(tensor, temp_shape)\n    tensor = tbe.broadcast(tensor, shape)\n    return tensor\n\n\ndef _update_gamma_shape(shape_x, shape_gamma):\n    \"\"\"\n    update shape_gamma for subsequent calculation\n\n    Parameters\n    ----------\n    shape_x: list or tuple\n        shape of x\n    shape_gamma: list or tuple\n        shape of gamma\n\n    Returns\n    -------\n    shape_gamma_new: tuple\n        new shape_gamma after update\n    params_axis: tuple\n        the list of axis for gamma reduce_sum\n    \"\"\"\n    params_axis_tmp = []\n    if len(shape_x) != len(shape_gamma):\n        sub = len(shape_x) - len(shape_gamma)\n        shape_gamma = list(shape_gamma)\n        for i in range(sub):\n            shape_gamma.insert(0, 1)\n            params_axis_tmp.append(i)\n\n    shape_gamma_new = tuple(shape_gamma)\n    params_axis = tuple(params_axis_tmp)\n\n    return shape_gamma_new, params_axis\n\n\ndef _get_data_gm(shapes, dtype):\n    \"\"\"\n    get placeholders of data_dy, data_x, data_variance, data_mean and data_gamma\n\n    Parameters\n    ----------\n    shapes: dict\n        {\"shape_dy\": shape_dy, \"shape_x\": shape_x, \"shape_var\": shape_variance,\n         \"shape_mean\": shape_mean, \"shape_gamma\": shape_gamma}\n    dtype: str\n        the data type\n\n    Returns\n    -------\n    data_gm: tuple\n        (data_dy, data_x, data_variance, data_mean, data_gamma)\n    \"\"\"\n    data_dy = tvm.placeholder(shapes.get(\"shape_dy\"), name=\"data_dy\", dtype=dtype)\n    data_x = tvm.placeholder(shapes.get(\"shape_x\"), name=\"data_x\", dtype=dtype)\n    data_variance = tvm.placeholder(shapes.get(\"shape_var\"), name=\"data_variance\", dtype=dtype)\n    data_mean = tvm.placeholder(shapes.get(\"shape_mean\"), name=\"data_mean\", dtype=dtype)\n    data_gamma = tvm.placeholder(shapes.get(\"shape_gamma\"), name=\"data_gamma\", dtype=dtype)\n\n    data_gm = (data_dy, data_x, data_variance, data_mean, data_gamma)\n\n    return data_gm\n\n\ndef _get_params(shape_x, shape_mean, shape_gamma):\n    \"\"\"\n    compute parameters including param_axis, reduce_axis and mean_num\n\n    Parameters\n    ----------\n    shape_x: list or tuple\n        shape of x\n    shape_mean: list or tuple\n        shape of mean\n    shape_gamma: list or tuple\n        shape of gamma\n\n    Returns\n    -------\n    params: dict\n        {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis,\n        \"mean_num\": mean_num}\n    \"\"\"\n    param_axis = _update_gamma_shape(shape_x, shape_gamma)[1]\n\n    reduce_axis_tmp = []\n    flag = -1\n    for i, (xtem, mean) in enumerate(zip(shape_x, shape_mean)):\n        if xtem != mean:\n            flag = i\n            break\n    if flag != -1:\n        for i in range(flag, len(shape_x)):\n            reduce_axis_tmp.append(i)\n    else:\n        reduce_axis_tmp.append(len(shape_x) - 1)\n    reduce_axis = tuple(reduce_axis_tmp)\n\n    mean_num = 1.0\n    for i in reduce_axis:\n        mean_num *= shape_x[i]\n\n    params = {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis, \"mean_num\": mean_num}\n\n    return params\n\n\ndef _get_pd_xl(data, shape_x):\n    \"\"\"\n    compute pd_xl according to data_dy, data_gamma and shape_x\n\n    Parameters\n    ----------\n    data: dict\n        placeholders after cast\n    shape_x: list or tuple\n        shape of x\n\n    Returns\n    -------\n    pd_xl: tvm.tensor\n        data_dy*data_gamma\n    \"\"\"\n    data_gamma_cast = tbe.broadcast(data.get(\"data_gamma\"), shape_x)\n    pd_xl = tbe.vmul(data_gamma_cast, data.get(\"data_dy\"))\n\n    return pd_xl\n\n\ndef _get_pd_var_front(data, cast_dtype):\n    \"\"\"\n    compute front part of pd_var according to data_variance\n\n    Parameters\n    ----------\n    data: dict\n        placeholders after cast\n    cast_dtype: str\n        if api_check_support float32, then equal to float32 else float16\n\n    Returns\n    -------\n    pd_var_1: tvm.tensor\n        np.power((data_variance + EPSLON), (-1.5))\n    var_elta_2: tvm.tensor\n        np.power((data_variance + EPSLON), (-0.5))\n    \"\"\"\n    var_elta = tbe.vadds(data.get(\"data_variance\"), tvm.const(EPSLON, dtype=cast_dtype))\n    var_elta_log = tbe.vlog(var_elta)\n    var_elta_mul = tbe.vmuls(var_elta_log, tvm.const(-0.5, dtype=cast_dtype))\n    var_elta_2 = tbe.vexp(var_elta_mul)\n    pdvar1_mul = tbe.vmul(var_elta_2, var_elta_2)\n    pd_var_1 = tbe.vmul(pdvar1_mul, var_elta_2)\n\n    return pd_var_1, var_elta_2\n\n\ndef _get_pd_var(data, params, shape_x, pd_xl, cast_dtype):\n    \"\"\"\n    compute pd_var according to data_x, data_mean, reduce_axis and pd_xl\n\n    Parameters\n    ----------\n    data: dict\n        placeholders after cast\n    params: dict\n        {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis,\n        \"mean_num\": mean_num}\n    shape_x: list or tuple\n        shape of x\n    pd_xl: tvm.tensor\n        data_dy*data_gamma\n    cast_dtype: str\n        if api_check_support float32, then equal to float32 else float16\n\n    Returns\n    -------\n    pd_var: tvm.tensor\n        np.sum(((-0.5)*pd_xl*(data_x - data_mean)\n        *np.power((data_variance + EPSLON), (-1.5))), reduce_axis,\n        keepdims=True)\n    var_elta_2: tvm.tensor\n        np.power((data_variance + EPSLON), (-0.5))\n    sub_x_mean: tvm.tensor\n        data_x - data_mean\n    \"\"\"\n    pd_var_1, var_elta_2 = _get_pd_var_front(data, cast_dtype)\n\n    data_mean_cast = tbe.broadcast(data.get(\"data_mean\"), shape_x)\n    sub_x_mean = tbe.vsub(data.get(\"data_x\"), data_mean_cast)\n\n    pdvar_mul1 = tbe.vmul(sub_x_mean, pd_xl)\n    pdvar_sum = tbe.sum(pdvar_mul1, params.get(\"reduce_axis\"), keepdims=True)\n    pdvar_mul3 = tbe.vmul(pdvar_sum, pd_var_1)\n    pd_var = tbe.vmuls(pdvar_mul3, tvm.const(-0.5, dtype=cast_dtype))\n\n    return pd_var, var_elta_2, sub_x_mean\n\n\ndef _get_pd_mean(params, pd_xl, pd_var, var_elta_2, sub_x_mean, cast_dtype):\n    \"\"\"\n    compute pd_mean according to reduce_axis, pd_xl, pd_var, var_elta_2\n    and sub_x_mean\n\n    Parameters\n    ----------\n    params: dict\n        {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis,\n        \"mean_num\": mean_num}\n    pd_xl: tvm.tensor\n        data_dy*data_gamma\n    pd_var: tvm.tensor\n        np.sum(((-0.5)*pd_xl*(data_x - data_mean)\n        *np.power((data_variance + EPSLON), (-1.5))), reduce_axis,\n        keepdims=True)\n    var_elta_2: tvm.tensor\n        np.power((data_variance + EPSLON), (-0.5))\n    sub_x_mean: tvm.tensor\n        data_x - data_mean\n    cast_dtype: str\n        if api_check_support float32, then equal to float32 else float16\n\n    Returns\n    -------\n    pd_mean: tvm.tensor\n        np.sum(((-1.0)*pd_xl\n        *np.power((data_variance + EPSLON), (-0.5))), reduce_axis,\n        keepdims=True)\n        + pd_var*(1.0/m)*np.sum(((-2.0)*(data_x - data_mean)),\n        reduce_axis, keepdims=True)\n    \"\"\"\n    pdmean1_sum = tbe.sum(pd_xl, params.get(\"reduce_axis\"), keepdims=True)\n    pdmean1_mul = tbe.vmul(pdmean1_sum, var_elta_2)\n    pd_mean_1 = tbe.vmuls(pdmean1_mul, tvm.const(-1.0, dtype=cast_dtype))\n\n    return pd_mean_1\n\n\ndef _get_pd_x(data, params, shape_x, dtype, cast_dtype):\n    \"\"\"\n    compute pd_x, res_for_gamma according to data, params and shape_x\n\n    `pd_x     = pd_xl * np.power((data_variance + EPSLON), (-0.5))`\n               `+ pd_var * (2.0 / m) * (data_x - data_mean) + pd_mean * (1.0 / m)`\n    `res_for_gamma = (data_x - data_mean) * np.power((data_variance + EPSLON), (-0.5))`\n\n    Parameters\n    ----------\n    data: dict\n        placeholders after cast\n    params: dict\n        {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis,\n        \"mean_num\": mean_num}\n    shape_x: list or tuple\n        shape of x\n    dtype: str\n        the data type\n    cast_dtype: str\n        if api_check_support float32, then equal to float32 else float16\n\n    Returns\n    -------\n    pd_x: tvm.tensor\n        partial derivation of x\n    res_for_gamma: tvm.tensor\n        `(data_x - data_mean)*np.power((data_variance + EPSLON), (-0.5))`\n    \"\"\"\n    pd_xl = _get_pd_xl(data, shape_x)\n\n    pd_var, var_elta_2, sub_x_mean = _get_pd_var(data, params, shape_x, pd_xl, cast_dtype)\n\n    pd_mean = _get_pd_mean(params, pd_xl, pd_var, var_elta_2, sub_x_mean, cast_dtype)\n\n    var_elta_2_cast = tbe.broadcast(var_elta_2, shape_x)\n    pd_x_1 = tbe.vmul(var_elta_2_cast, pd_xl)\n    res_for_gamma = tbe.vmul(var_elta_2_cast, sub_x_mean)\n\n    pd_var = tbe.vmuls(pd_var, tvm.const((2 * (params.get(\"mean_num\") ** (-1))), dtype=cast_dtype))\n    pdx2_broad = tbe.broadcast(pd_var, shape_x)\n    pd_x_2 = tbe.vmul(pdx2_broad, sub_x_mean)\n    pd_x_3 = tbe.vmuls(pd_mean, tvm.const((params.get(\"mean_num\") ** (-1)), dtype=cast_dtype))\n\n    pdx_broad = tbe.broadcast(pd_x_3, shape_x)\n    pdx_add = tbe.vadd(pd_x_1, pd_x_2)\n    pd_x_ub = tbe.vadd(pdx_add, pdx_broad)\n\n    if dtype == \"float16\" and cast_dtype == \"float32\":\n        pd_x = tbe.cast_to(pd_x_ub, dtype)\n    else:\n        return pd_x_ub, res_for_gamma\n\n    return pd_x, res_for_gamma\n\n\ndef _get_res(data, params, shape_x, dtype, cast_dtype):\n    \"\"\"\n    compute pd_x, pd_gamma, pd_beta according to data, params and shape_x\n\n    Parameters\n    ----------\n    data: dict\n        placeholders after cast\n    params: dict\n        {\"param_axis\": param_axis, \"reduce_axis\": reduce_axis,\n        \"mean_num\": mean_num}\n    shape_x: list or tuple\n        shape of x\n    dtype: str\n        the data type\n    cast_dtype: str\n        if api_check_support float32, then equal to float32 else float16\n\n    Returns\n    -------\n    pd_x: tvm.tensor\n        partial derivation of x\n    pd_gamma: tvm.tensor\n        partial derivation of gamma\n    pd_beta: tvm.tensor\n        partial derivation of beta\n    \"\"\"\n    pd_x, res_for_gamma = _get_pd_x(data, params, shape_x, dtype, cast_dtype)\n\n    return pd_x, res_for_gamma\n\n\ndef _get_pds(data_dy, data_x, data_variance, data_mean, data_gamma, shape_gamma_ori):\n    \"\"\"\n    get params and data, compute pd_x, pd_gamma, pd_beta.\n\n    Parameters\n    ----------\n    data_dy: TVM tensor\n        the placeholder of dy input data\n    data_x: TVM tensor\n        the placeholder of x input data\n    data_variance: TVM tensor\n        the placeholder of variance input data\n    data_mean: TVM tensor\n        the placeholder of mean input data\n    data_gamma: TVM tensor\n        the placeholder of gamma input data\n    shape_gamma_ori: list or tuple\n        original shape of gamma\n\n    Returns\n    -------\n    pd_x: tvm.tensor\n        partial derivation of x\n    pd_gamma: tvm.tensor\n        partial derivation of gamma\n    pd_beta: tvm.tensor\n        partial derivation of beta\n    \"\"\"\n    dtype = data_dy.dtype.lower()\n    shape_x = shape_util.shape_to_list(data_x.shape)\n    shape_mean = shape_util.shape_to_list(data_mean.shape)\n\n    has_improve_precision = False\n    cast_dtype = dtype\n    if dtype == \"float16\" and tbe_platform.cce_conf.api_check_support(\"te.lang.cce.vexp\", \"float32\"):\n        has_improve_precision = True\n        cast_dtype = \"float32\"\n    params = _get_params(shape_x, shape_mean, shape_gamma_ori)\n\n    if has_improve_precision:\n        data_dy = tbe.cast_to(data_dy, \"float32\")\n        data_x = tbe.cast_to(data_x, \"float32\")\n        data_variance = tbe.cast_to(data_variance, \"float32\")\n        data_mean = tbe.cast_to(data_mean, \"float32\")\n        data_gamma = tbe.cast_to(data_gamma, \"float32\")\n\n    data = {\n        \"data_dy\"      : data_dy,\n        \"data_x\"       : data_x,\n        \"data_variance\": data_variance,\n        \"data_mean\"    : data_mean,\n        \"data_gamma\"   : data_gamma\n    }\n\n    pd_x, res_for_gamma = _get_res(data, params, shape_x, dtype, cast_dtype)\n\n    return pd_x, res_for_gamma\n\n\n@tbe_platform.fusion_manager.fusion_manager.register(\"layer_norm_x_backprop_v2\")\ndef layer_norm_x_backprop_v2_compute(input_dy,\n                                     input_x,\n                                     input_variance,\n                                     input_mean,\n                                     input_gamma,\n                                     output_pd_x,\n                                     kernel_name=\"layer_norm_x_backprop_v2\"):\n    \"\"\"\n    DSL description of the layernorm_grad operator's mathematical\n    calculation process\n\n    Parameters\n    ----------\n    input_dy : dict\n        shape and dtype of input dy, only support float16, float32\n    input_x: dict\n        shape and dtype of input x, only support float16, float32\n    input_variance: dict\n        shape and dtype of input variance, only support float16, float32\n    input_mean: dict\n        shape and dtype of input mean, only support float16, float32\n    input_gamma: dict\n        shape and dtype of input gamma, only support float16, float32\n    output_pd_x: dict\n        shape and dtype of output, only support float16, float32\n    kernel_name: str\n        cce kernel name, default value is \"layer_norm_x_backprop_v2\"\n\n    Returns\n    -------\n    res_tuple: tuple\n        (pd_x, pd_gamma, pd_beta)\n    \"\"\"\n    pd_x, res_for_gamma = _get_pds(input_dy, input_x, input_variance, input_mean, input_gamma, input_gamma.shape)\n    res_list = [pd_x, res_for_gamma]\n\n    return res_list\n\n\ndef update_shape_nz(shape_x, shape_var, shape_gamma):\n    \"\"\"\n    function of updating Nz shape\n\n    \"\"\"\n    # ND shape of x >= two dim\n    # Nz shape of x >= four dim\n    len_x = len(shape_x)\n    nz_begin = len_x - 4\n    shape_x_nz = []\n    for i in range(0, nz_begin):\n        shape_x_nz.append(shape_x[i])\n    shape_x_nz.append(shape_x[nz_begin])\n    shape_x_nz.append(shape_x[nz_begin + 1] * shape_x[nz_begin + 2])\n    shape_x_nz.append(shape_x[nz_begin + 2])\n\n    # ND shape of var >= two dim\n    shape_var_nz = []\n    len_var = len(shape_var)\n    var_nz_begin = len_var - 2\n    for i in range(0, var_nz_begin):\n        shape_var_nz.append(shape_var[i])\n    shape_var_nz.append(1)\n    shape_var_nz.append(shape_var[var_nz_begin])\n    shape_var_nz.append(1)\n\n    # ND shape of gamma is one dim\n    shape_gamma_nz = []\n    for i in range(0, nz_begin):\n        shape_gamma_nz.append(1)\n    shape_gamma_nz.append(shape_x[nz_begin])\n    shape_gamma_nz.append(1)\n    shape_gamma_nz.append(shape_x[nz_begin + 2])\n\n    reduce_nz_axis = []\n    param_nz_axis = []\n    for i, (xtem, var) in enumerate(zip(shape_x_nz, shape_var_nz)):\n        if xtem != var:\n            reduce_nz_axis.append(i)\n\n    for i, (xtem, gamma) in enumerate(zip(shape_x_nz, shape_gamma_nz)):\n        if xtem != gamma or (xtem == 1 and gamma == 1):\n            param_nz_axis.append(i)\n\n    mean_nz_num = 1.0\n    for i in reduce_nz_axis:\n        mean_nz_num *= shape_x_nz[i]\n\n    param_nz = {\n        \"shape_x_nz\"    : shape_x_nz,\n        \"shape_var_nz\"  : shape_var_nz,\n        \"shape_gamma_nz\": shape_gamma_nz,\n        \"reduce_axis\"   : reduce_nz_axis,\n        \"param_axis\"    : param_nz_axis,\n        \"mean_num\"      : mean_nz_num\n    }\n\n    return param_nz\n\n\ndef _get_data_nz(param_nz, dtype):\n    \"\"\"\n    get placeholders of data_dy, data_x, data_variance, data_mean and data_gamma\n\n    \"\"\"\n    data_dy = tvm.placeholder(param_nz.get(\"shape_x_nz\"), name=\"data_dy\", dtype=dtype)\n    data_x = tvm.placeholder(param_nz.get(\"shape_x_nz\"), name=\"data_x\", dtype=dtype)\n    data_variance = tvm.placeholder(param_nz.get(\"shape_var_nz\"), name=\"data_variance\", dtype=dtype)\n    data_mean = tvm.placeholder(param_nz.get(\"shape_var_nz\"), name=\"data_mean\", dtype=dtype)\n    data_gamma = tvm.placeholder(param_nz.get(\"shape_gamma_nz\"), name=\"data_gamma\", dtype=dtype)\n\n    data_gm = (data_dy, data_x, data_variance, data_mean, data_gamma)\n\n    return data_gm\n\n\ndef _get_pd_xl_nz(data, param_nz):\n    \"\"\"\n    compute pd_xl according to data_dy, data_gamma and shape_x\n\n    \"\"\"\n    data_gamma_cast = tbe.broadcast(data.get(\"data_gamma\"), param_nz.get(\"shape_x_nz\"))\n    pd_xl = tbe.vmul(data_gamma_cast, data.get(\"data_dy\"))\n\n    return pd_xl\n\n\ndef _get_pd_var_front_nz(data, cast_dtype):\n    \"\"\"\n    compute front part of pd_var according to data_variance\n\n    \"\"\"\n    var_elta = tbe.vadds(data.get(\"data_variance\"), tvm.const(EPSLON, dtype=cast_dtype))\n    var_elta_log = tbe.vlog(var_elta)\n    var_elta_mul = tbe.vmuls(var_elta_log, tvm.const(-0.5, dtype=cast_dtype))\n    var_elta_2 = tbe.vexp(var_elta_mul)\n    pdvar1_mul = tbe.vmul(var_elta_2, var_elta_2)\n    pd_var_1 = tbe.vmul(pdvar1_mul, var_elta_2)\n\n    return pd_var_1, var_elta_2\n\n\ndef _get_pd_var_nz(data, param_nz, pd_xl, cast_dtype):\n    \"\"\"\n    compute pd_var according to data_x, data_mean, reduce_axis and pd_xl\n\n    \"\"\"\n    pd_var_1, var_elta_2 = _get_pd_var_front_nz(data, cast_dtype)\n\n    data_mean_cast = tbe.broadcast(data.get(\"data_mean\"), param_nz.get(\"shape_x_nz\"))\n    sub_x_mean = tbe.vsub(data.get(\"data_x\"), data_mean_cast)\n\n    pdvar_mul1 = tbe.vmul(sub_x_mean, pd_xl)\n    pdvar_sum = tbe.sum(pdvar_mul1, param_nz.get(\"reduce_axis\"), keepdims=True)\n    pdvar_mul3 = tbe.vmul(pdvar_sum, pd_var_1)\n    pd_var = tbe.vmuls(pdvar_mul3, tvm.const(-0.5, dtype=cast_dtype))\n\n    return pd_var, var_elta_2, sub_x_mean\n\n\ndef _get_pd_mean_nz(param_nz, pd_xl, pd_var, var_elta_2, sub_x_mean, cast_dtype):\n    \"\"\"\n    compute pd_mean according to reduce_axis, pd_xl, pd_var,\n    var_elta_2 and sub_x_mean\n\n    \"\"\"\n    pdmean1_sum = tbe.sum(pd_xl, param_nz.get(\"reduce_axis\"), keepdims=True)\n    pdmean1_mul = tbe.vmul(pdmean1_sum, var_elta_2)\n    pd_mean_1 = tbe.vmuls(pdmean1_mul, tvm.const(-1.0, dtype=cast_dtype))\n\n    return pd_mean_1\n\n\ndef _get_pd_x_nz(data, param_nz, dtype, cast_dtype):\n    \"\"\"\n    compute pd_x according to data, params and shape_x\n\n    \"\"\"\n    pd_xl = _get_pd_xl_nz(data, param_nz)\n\n    pd_var, var_elta_2, sub_x_mean = _get_pd_var_nz(data, param_nz, pd_xl, cast_dtype)\n\n    pd_mean = _get_pd_mean_nz(param_nz, pd_xl, pd_var, var_elta_2, sub_x_mean, cast_dtype)\n\n    var_elta_2_cast = _broadcast_nz(var_elta_2, param_nz.get(\"shape_x_nz\"))\n    pd_x_1 = tbe.vmul(var_elta_2_cast, pd_xl)\n    res_for_gamma = tbe.vmul(var_elta_2_cast, sub_x_mean)\n    pd_var = tbe.vmuls(pd_var, tvm.const((2 * (param_nz.get(\"mean_num\") ** (-1))), dtype=cast_dtype))\n    pdx2_broad = _broadcast_nz(pd_var, param_nz.get(\"shape_x_nz\"))\n    pd_x_2 = tbe.vmul(pdx2_broad, sub_x_mean)\n    pd_x_3 = tbe.vmuls(pd_mean, tvm.const((param_nz.get(\"mean_num\") ** (-1)), dtype=cast_dtype))\n\n    pdx_broad = _broadcast_nz(pd_x_3, param_nz.get(\"shape_x_nz\"))\n    pdx_add = tbe.vadd(pd_x_1, pd_x_2)\n    pd_x_ub = tbe.vadd(pdx_add, pdx_broad)\n\n    if dtype == \"float16\" and cast_dtype == \"float32\":\n        pd_x = tbe.cast_to(pd_x_ub, dtype)\n    else:\n        return pd_x_ub, res_for_gamma\n\n    return pd_x, res_for_gamma\n\n\ndef _get_res_nz(data, param_nz, dtype, cast_dtype):\n    \"\"\"\n    compute pd_x, pd_gamma, pd_beta according to data, params and shape_x\n\n    \"\"\"\n    pd_x, res_for_gamma = _get_pd_x_nz(data, param_nz, dtype, cast_dtype)\n\n    return pd_x, res_for_gamma\n\n\ndef _get_pds_nz(data_dy, data_x, data_variance, data_mean, data_gamma, param_nz):\n    \"\"\"\n    get params and data, compute pd_x, pd_gamma, pd_beta.\n\n    \"\"\"\n    dtype = data_dy.dtype.lower()\n\n    has_improve_precision = False\n    cast_dtype = dtype\n    if dtype == \"float16\" and tbe_platform.cce_conf.api_check_support(\"te.lang.cce.vexp\", \"float32\"):\n        has_improve_precision = True\n        cast_dtype = \"float32\"\n\n    if has_improve_precision:\n        data_dy = tbe.cast_to(data_dy, \"float32\")\n        data_x = tbe.cast_to(data_x, \"float32\")\n        data_variance = tbe.cast_to(data_variance, \"float32\")\n        data_mean = tbe.cast_to(data_mean, \"float32\")\n        data_gamma = tbe.cast_to(data_gamma, \"float32\")\n\n    data = {\n        \"data_dy\"      : data_dy,\n        \"data_x\"       : data_x,\n        \"data_variance\": data_variance,\n        \"data_mean\"    : data_mean,\n        \"data_gamma\"   : data_gamma\n    }\n\n    pd_x, res_for_gamma = _get_res_nz(data, param_nz, dtype, cast_dtype)\n\n    return pd_x, res_for_gamma\n\n\ndef layer_norm_x_back_nz_compute(data_dy, data_x, data_variance, data_mean, data_gamma, param_nz):\n    \"\"\"\n    DSL description of the layernorm_grad operator's mathematical\n    calculation process\n\n    Parameters\n    ----------\n    data_dy: TVM tensor\n        the placeholder of dy input data\n    data_x: TVM tensor\n        the placeholder of x input data\n    data_variance: TVM tensor\n        the placeholder of variance input data\n    data_mean: TVM tensor\n        the placeholder of mean input data\n    data_gamma: TVM tensor\n        the placeholder of gamma input data\n    shape_gamma_ori: list or tuple\n        original shape of gamma\n\n    Returns\n    -------\n    res_tuple: tuple\n        (pd_x, res_for_gamma)\n    \"\"\"\n    pd_x, res_for_gamma = _get_pds_nz(data_dy, data_x, data_variance, data_mean, data_gamma, param_nz)\n\n    return [pd_x, res_for_gamma]\n\n\n@para_check.check_op_params(para_check.REQUIRED_INPUT, para_check.REQUIRED_INPUT, para_check.REQUIRED_INPUT,\n                            para_check.REQUIRED_INPUT, para_check.REQUIRED_INPUT, para_check.REQUIRED_OUTPUT,\n                            para_check.REQUIRED_OUTPUT, para_check.KERNEL_NAME)\ndef layer_norm_x_backprop_v2(input_dy,\n                             input_x,\n                             input_variance,\n                             input_mean,\n                             input_gamma,\n                             output_pd_x,\n                             res_for_gamma,\n                             kernel_name=\"layer_norm_x_backprop_v2\"):\n    \"\"\"\n    algorithm: layernorm_grad\n    calculating: gradient of layernorm\n                 compute partial derivation of x, gamma and beta\n        pd_xl    = data_dy*data_gamma\n        pd_var   = np.sum(((-0.5)*pd_xl*(data_x - data_mean)\n                   *np.power((data_variance + EPSLON), (-1.5))),\n                   reduce_axis, keepdims=True)\n        pd_mean  = np.sum(((-1.0)*pd_xl\n                   *np.power((data_variance + EPSLON), (-0.5))),\n                   reduce_axis, keepdims=True)\n                   + pd_var*(1.0/m)\n                   *np.sum(((-2.0)*(data_x - data_mean)),\n                   reduce_axis, keepdims=True)\n        pd_x     = pd_xl*np.power((data_variance + EPSLON), (-0.5))\n                   + pd_var*(2.0/m)*(data_x - data_mean) + pd_mean*(1.0/m)\n        pd_gamma = np.sum((data_dy*(data_x - data_mean)\n                   *np.power((data_variance + EPSLON), (-0.5))),\n                   param_axis, keepdims=True)\n        pd_beta  = np.sum(data_dy, param_axis, keepdims=True)\n\n    Parameters\n    ----------\n    input_dy : dict\n        shape and dtype of input dy, only support float16, float32\n    input_x: dict\n        shape and dtype of input x, only support float16, float32\n    input_variance: dict\n        shape and dtype of input variance, only support float16, float32\n    input_mean: dict\n        shape and dtype of input mean, only support float16, float32\n    input_gamma: dict\n        shape and dtype of input gamma, only support float16, float32\n    output_y: dict\n        shape and dtype of output, only support float16, float32\n    res_for_gamma: dict\n        shape and dtype of output, only support float16, float32\n    kernel_name: str\n        cce kernel name, default value is \"layer_norm_x_backprop_v2\"\n\n    Returns\n    -------\n    None\n    \"\"\"\n    dtype = input_dy.get(\"dtype\").lower()\n    shape_dy = input_dy.get(\"shape\")\n    shape_x = input_x.get(\"shape\")\n    shape_variance = input_variance.get(\"shape\")\n    shape_mean = input_mean.get(\"shape\")\n    shape_gamma = input_gamma.get(\"shape\")\n    format_dy = input_dy.get(\"format\")\n    global EPSLON\n    EPSLON = 1e-5 if dtype == \"float16\" else 1e-12\n    if layer_norm_x_backprop_v2_unify.is_special_cases(shape_dy, shape_variance, shape_gamma):\n        context = tbe_context.op_context.get_context()\n        if context is not None:\n            context.set_op_mode(\"static\")\n            context.add_addition(\"is_static\", True)\n            layer_norm_x_backprop_v2_unify.layer_norm_x_backprop_v2(input_dy, input_x, input_variance, input_mean,\n                                                                    input_gamma, output_pd_x, res_for_gamma,\n                                                                    kernel_name)\n        else:\n            with tbe_context.op_context.OpContext(\"static\"):\n                tbe_context.op_context.get_context().add_addition(\"is_static\", True)\n                layer_norm_x_backprop_v2_unify.layer_norm_x_backprop_v2(input_dy, input_x, input_variance, input_mean,\n                                                                        input_gamma, output_pd_x, res_for_gamma,\n                                                                        kernel_name)\n        return\n    else:\n        if format_dy.upper() == \"FRACTAL_NZ\":\n            param_nz = update_shape_nz(shape_x, shape_variance, shape_gamma)\n            data_dy = tvm.placeholder(param_nz.get(\"shape_x_nz\"), name=\"data_dy\", dtype=dtype)\n            data_x = tvm.placeholder(param_nz.get(\"shape_x_nz\"), name=\"data_x\", dtype=dtype)\n            data_variance = tvm.placeholder(param_nz.get(\"shape_var_nz\"), name=\"data_variance\", dtype=dtype)\n            data_mean = tvm.placeholder(param_nz.get(\"shape_var_nz\"), name=\"data_mean\", dtype=dtype)\n            data_gamma = tvm.placeholder(param_nz.get(\"shape_gamma_nz\"), name=\"data_gamma\", dtype=dtype)\n\n            res_list = layer_norm_x_back_nz_compute(data_dy, data_x, data_variance, data_mean, data_gamma, param_nz)\n\n            tensor_list = [data_dy, data_x, data_variance, data_mean, data_gamma] + res_list\n\n            with tvm.target.cce():\n                sch = tbe.auto_schedule(res_list)\n\n            config = {\"print_ir\": False, \"name\": kernel_name, \"tensor_list\": tensor_list}\n\n            tbe.cce_build_code(sch, config)\n        else:\n            _check_params({\n                \"shape_dy\"   : shape_dy,\n                \"shape_x\"    : shape_x,\n                \"shape_var\"  : shape_variance,\n                \"shape_mean\" : shape_mean,\n                \"shape_gamma\": shape_gamma,\n                \"dtype\"      : dtype,\n                \"kernel_name\": kernel_name\n            })\n\n            shape_gamma = _update_gamma_shape(shape_x, shape_gamma)[0]\n\n            data_gm = _get_data_gm(\n                {\n                    \"shape_dy\"   : shape_dy,\n                    \"shape_x\"    : shape_x,\n                    \"shape_var\"  : shape_variance,\n                    \"shape_mean\" : shape_mean,\n                    \"shape_gamma\": shape_gamma\n                }, dtype)\n\n            res_list = layer_norm_x_backprop_v2_compute(data_gm[0], data_gm[1], data_gm[2], data_gm[3], data_gm[4],\n                                                        output_pd_x)\n            with tvm.target.cce():\n                sch = tbe.auto_schedule(res_list)\n\n            tensor_list = list(data_gm) + list(res_list)\n\n            config = {\"print_ir\": False, \"name\": kernel_name, \"tensor_list\": tensor_list}\n\n            tbe.cce_build_code(sch, config)\n"
  },
  {
    "path": "codegeex/mindspore/scripts/ma-pre-start.sh",
    "content": "#!/bin/bash\n\nsource ~/.bashrc\necho \"Start to intall the run package\"\nWORK_DIR=start_1.7\nRUN_DIR=run\nmindspore_file=mindspore_ascend-1.7.0-cp37-cp37m-linux_aarch64.whl\nLOCAL_DIR=$(cd \"$(dirname \"$0\")\";pwd)\necho $LOCAL_DIR\n\necho \"===current dir=\"\nls ./${WORK_DIR}/${RUN_DIR}\n\npip install ./${WORK_DIR}/${mindspore_file} -i http://100.125.33.126:8888/repository/pypi/simple --trusted-host=100.125.33.126\nsudo chmod +755 -R /usr/local/Ascend/nnae\nsudo rm -rf /usr/local/Ascend/nnae\n\nsudo chmod +x ./${WORK_DIR}/${RUN_DIR}/*.run\nsudo bash ./${WORK_DIR}/${RUN_DIR}/Ascend* --full --quiet\n\nexport HCCL_CONNECT_TIMEOUT=1800 # 通信建链最长等待时间，单位s\n\necho \"======/usr/local/Ascend======\"\nls -al /usr/local/Ascend\necho \"======/usr/local/Ascend/ascend-toolkit/======\"\nls -al /usr/local/Ascend/ascend-toolkit/\necho \"======/usr/local/Ascend/ascend-toolkit/latest======\"\nls -al /usr/local/Ascend/ascend-toolkit/latest\necho \"======/usr/local/Ascend/driver/lib64========\"\nls -al /usr/local/Ascend/driver/lib64\necho \"======/usr/local/Ascend/driver/lib64/common=======\"\nls -al /usr/local/Ascend/driver/lib64/common\necho \"=======/usr/local/Ascend/driver/lib64/driver=======\"\nls -al /usr/local/Ascend/driver/lib64/driver\necho \"============/usr/local/Ascend/ascend-toolkit/5.1.RC1=============\"\nls -al /usr/local/Ascend/ascend-toolkit/5.1.RC1\nsudo mkdir /usr/local/Ascend/nnae\nsudo chmod +755 -R /usr/local/Ascend/nnae\n#sudo mkdir /usr/local/Ascend/nnae/latest\n#sudo chmod +755 -R /usr/local/Ascend/nnae/latest\nsudo ln -s /usr/local/Ascend/ascend-toolkit/5.1.RC1 /usr/local/Ascend/nnae/latest\necho \"======/usr/local/Ascend/nnae======\"\nls -al /usr/local/Ascend/nnae\necho \"======/usr/local/Ascend/nnae/latest======\"\nls -al /usr/local/Ascend/nnae/latest\necho \"======/usr/local/Ascend/nnae/latest/lib64/libhccl.so======\"\nls -al /usr/local/Ascend/nnae/latest/lib64/libhccl.so\n\n# sudo cp -fp ${LOCAL_DIR}/${WORK_DIR}/libhccl.so /usr/local/Ascend/nnae/latest/lib64/libhccl.so\necho \"======/usr/local/Ascend/nnae/latest/lib64/libhccl.so======\"\nls -al /usr/local/Ascend/nnae/latest/lib64/libhccl.so\n\necho \"======/usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py======\"\nls -al /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py\n\necho \"======/usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py======\"\nls -al /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm_x_backprop_v2.py\n\n\nsudo cp -fp ${LOCAL_DIR}/${WORK_DIR}/layer_norm.py /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py\nsudo cp -fp ${LOCAL_DIR}/${WORK_DIR}/layer_norm_x_backprop_v2.py /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm_x_backprop_v2.py\n\nchmod +777 /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm_x_backprop_v2.py\nchmod +777 /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py\n\necho \"======/usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py====new==\"\nls -al /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py\n\necho \"======/usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm.py====new==\"\nls -al /usr/local/Ascend/nnae/latest/opp/op_impl/built-in/ai_core/tbe/impl/layer_norm_x_backprop_v2.py\n\nls -al ${LOCAL_DIR}/${WORK_DIR}/custom_tune_bank_new\n\nexport LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/common:/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH\nexport LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/lib64:/usr/local/Ascend/ascend-toolkit/latest/compiler/lib64/plugin/opskernel:/usr/local/Ascend/ascend-toolkit/latest/compiler/lib64/plugin/nnengine:$LD_LIBRARY_PATH\nexport PATH=/usr/local/Ascend/ascend-toolkit/latest/bin:/usr/local/Ascend/ascend-toolkit/latest/compiler/ccec_compiler/bin:$PATH\nexport ASCEND_AICPU_PATH=/usr/local/Ascend/ascend-toolkit/latest\nexport ASCEND_OPP_PATH=/usr/local/Ascend/ascend-toolkit/latest/opp\nexport TOOLCHAIN_HOME=/usr/local/Ascend/ascend-toolkit/latest/toolkit\nexport ASCEND_HOME_PATH=/usr/local/Ascend/ascend-toolkit/latest:$ASCEND_HOME_PATH\n\necho \"-------------------uninstall te topi and hccl--------------------------\"\nsudo pip uninstall te -y\nsudo pip uninstall topi -y\nsudo pip uninstall hccl -y\necho \"-------------------install te topi and hccl--------------------------\"\npip install /usr/local/Ascend/ascend-toolkit/latest/lib64/topi-0.4.0-py3-none-any.whl \npip install /usr/local/Ascend/ascend-toolkit/latest/lib64/te-0.4.0-py3-none-any.whl \npip install /usr/local/Ascend/ascend-toolkit/latest/lib64/hccl-0.1.0-py3-none-any.whl \npip install /usr/local/Ascend/ascend-toolkit/latest/tools/hccl_parser-0.1-py3-none-any.whl\n\n\nexport GLOG_v=3 # mindspore日志开关，1：Info, 2:Warning, 3:Error\nexport ASCEND_GLOBAL_LOG_LEVEL=3 # 底层软件的日志级别开关 1：Info, 2:Warning, 3:Error\nexport ASCEND_GLOBAL_EVENT_ENABLE=1 # 底层软件的日志event日志开关 0：disable, 1:enable\nexport ASCEND_SLOG_PRINT_TO_STDOUT=0 # 是否把底层日志重定向到打屏，0：disable, 1:enable\n\nexport ENABLE_TUNE_BANK=True\nexport TUNE_BANK_PATH=${LOCAL_DIR}/${WORK_DIR}/custom_tune_bank_new\n\nenv\n\nmkdir -p /cache/ckpts\nmkdir -p /home/work/sfs/cache/${BATCH_JOB_ID}/1\nmkdir -p /home/work/sfs/cache/${BATCH_JOB_ID}/2\n\nsudo chmod +777 -R /cache/ckpts\nsudo chmod +777 -R /home/work/sfs/cache/${BATCH_JOB_ID}\n\nexport GROUP_INFO_FILE=/home/work/sfs/cache/${BATCH_JOB_ID}/group_info_file.pb\n"
  },
  {
    "path": "codegeex/mindspore/scripts/run_modelarts.py",
    "content": "import argparse\nimport os\nimport time\nfrom pathlib import Path\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"--work_dir\", type=str, required=True)\nparser.add_argument(\"--script\", type=str, required=True)\nparser.add_argument(\"--data_url\", type=str, default=None)\nparser.add_argument(\"--train_url\", type=str, default=None)\n\nargs = parser.parse_args()\n\nlog_path = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"), f'device{os.environ.get(\"RANK_ID\")}')\ntb_path = os.path.join(args.work_dir, \"runs\", os.environ.get(\"JOB_ID\"))\n\nPath(log_path).mkdir(parents=True, exist_ok=True)\nPath(tb_path).mkdir(parents=True, exist_ok=True)\n\nlog_path_prefix_1 = os.path.join(args.work_dir, \"logs\")\n\nos.environ[\"LOG_PATH\"] = tb_path\n\nprint(\"=================RANK_TABLE_FILE: \", os.environ[\"RANK_TABLE_FILE\"], flush=True)\nprint(\"=================ms import done\", flush=True)\ntime.sleep(10)\nos.system(\n    \"cp /home/work/rank_table/jobstart_hccl.json /home/work/sfs/xx; sudo chmod +777 /home/work/rank_table/jobstart_hccl.json\")\nret = os.system(f\"cd {log_path} && bash {args.script} 2>&1 | tee output.log\")\nif os.environ.get(\"RANK_ID\") == 0:\n    log_dir = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"))\n    os.system(f\"sudo chmod +777 -R {tb_path}\")\n    os.system(f\"sudo chmod +777 -R {log_dir}\")\nprint(\"==========ret code is: \", ret, flush=True)\nif ret != 0:\n    raise RuntimeError(\"ret code is :\" + str(ret))\n"
  },
  {
    "path": "codegeex/mindspore/scripts/run_modelarts_gen_finetune.py",
    "content": "import argparse\nimport os\nimport time\nfrom pathlib import Path\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"--work_dir\", type=str, required=True)\nparser.add_argument(\"--script\", type=str, required=True)\nparser.add_argument(\"--data_url\", type=str, default=None)\nparser.add_argument(\"--train_url\", type=str, default=None)\nparser.add_argument(\"--language\", type=str, default=None)\n\nargs = parser.parse_args()\n\nlog_path = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"), f'device{os.environ.get(\"RANK_ID\")}')\ntb_path = os.path.join(args.work_dir, \"runs\", os.environ.get(\"JOB_ID\"))\n\nPath(log_path).mkdir(parents=True, exist_ok=True)\nPath(tb_path).mkdir(parents=True, exist_ok=True)\n\nlog_path_prefix_1 = os.path.join(args.work_dir, \"logs\")\n\nos.environ[\"LOG_PATH\"] = tb_path\nif args.language is not None:\n    os.environ[\"LANGUAGE\"] = args.language\nelse:\n    os.environ[\"LANGUAGE\"] = \"Null\"\n\nprint(\"=================RANK_TABLE_FILE: \", os.environ[\"RANK_TABLE_FILE\"], flush=True)\nprint(\"=================ms import done\", flush=True)\ntime.sleep(10)\nos.system(\n    \"cp /home/work/rank_table/jobstart_hccl.json /home/work/sfs/xx; sudo chmod +777 /home/work/rank_table/jobstart_hccl.json\")\nret = os.system(f\"cd {log_path} && bash {args.script} 2>&1 | tee output.log\")\nif os.environ.get(\"RANK_ID\") == 0:\n    log_dir = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"))\n    os.system(f\"sudo chmod +777 -R {tb_path}\")\n    os.system(f\"sudo chmod +777 -R {log_dir}\")\nprint(\"==========ret code is: \", ret, flush=True)\nif ret != 0:\n    raise RuntimeError(\"ret code is :\" + str(ret))\n"
  },
  {
    "path": "codegeex/mindspore/scripts/run_modelarts_gen_humaneval_x.py",
    "content": "import argparse\nimport os\nimport time\nfrom pathlib import Path\n\nparser = argparse.ArgumentParser()\nparser.add_argument(\"--work_dir\", type=str, required=True)\nparser.add_argument(\"--script\", type=str, required=True)\nparser.add_argument(\"--data_url\", type=str, default=None)\nparser.add_argument(\"--train_url\", type=str, default=None)\nparser.add_argument(\"--part\", type=str, default=None)\n\nargs = parser.parse_args()\n\nlog_path = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"), f'device{os.environ.get(\"RANK_ID\")}')\ntb_path = os.path.join(args.work_dir, \"runs\", os.environ.get(\"JOB_ID\"))\n\nPath(log_path).mkdir(parents=True, exist_ok=True)\nPath(tb_path).mkdir(parents=True, exist_ok=True)\n\nlog_path_prefix_1 = os.path.join(args.work_dir, \"logs\")\n\nos.environ[\"LOG_PATH\"] = tb_path\nif args.part is not None:\n    os.environ[\"PART\"] = args.part\nelse:\n    os.environ[\"PART\"] = \"-1\"\n\nprint(\"=================RANK_TABLE_FILE: \", os.environ[\"RANK_TABLE_FILE\"], flush=True)\nprint(\"=================ms import done\", flush=True)\ntime.sleep(10)\nos.system(\n    \"cp /home/work/rank_table/jobstart_hccl.json /home/work/sfs/xx; sudo chmod +777 /home/work/rank_table/jobstart_hccl.json\")\nret = os.system(f\"cd {log_path} && bash {args.script} 2>&1 | tee output.log\")\nif os.environ.get(\"RANK_ID\") == 0:\n    log_dir = os.path.join(args.work_dir, \"logs\", os.environ.get(\"JOB_ID\"))\n    os.system(f\"sudo chmod +777 -R {tb_path}\")\n    os.system(f\"sudo chmod +777 -R {log_dir}\")\nprint(\"==========ret code is: \", ret, flush=True)\nif ret != 0:\n    raise RuntimeError(\"ret code is :\" + str(ret))\n"
  },
  {
    "path": "codegeex/mindspore/src/__init__.py",
    "content": ""
  },
  {
    "path": "codegeex/mindspore/src/adam.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"AdamWeightDecay, a customized Adam for pangu alpha. Input: gradient.\"\"\"\nimport numpy as np\nfrom mindspore._checkparam import Rel\nfrom mindspore._checkparam import Validator as validator\nfrom mindspore.common import dtype as mstype\nfrom mindspore.common.initializer import initializer\nfrom mindspore.common.parameter import Parameter, ParameterTuple\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.nn.optim.optimizer import Optimizer\nfrom mindspore.ops import composite as C\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\n\n_adam_opt = C.MultitypeFuncGraph(\"adam_opt\")\n_scaler_one = Tensor(1, mstype.int32)\n_scaler_ten = Tensor(10, mstype.float32)\n_cpu_div = P.RealDiv().add_prim_attr(\"primitive_target\", \"CPU\")\n\n\n@_adam_opt.register(\"Function\", \"Tensor\", \"Tensor\", \"Tensor\", \"Tensor\", \"Tensor\", \"Number\", \"Tensor\", \"Tensor\",\n                    \"Tensor\", \"Tensor\", \"Bool\", \"Bool\")\ndef _update_run_kernel(opt, clip_value, beta1, beta2, eps, lr, weight_decay,\n                       param, m, v, gradient, decay_flags, optim_filter):\n    \"\"\"\n    Update parameters by AdamWeightDecay op.\n    \"\"\"\n    success = True\n    if optim_filter:\n        if decay_flags:\n            next_param = opt(param, m, v, lr, beta1, beta2, eps, weight_decay,\n                             _cpu_div(P.Cast()(gradient, mstype.float16), clip_value))\n        else:\n            next_param = opt(param, m, v, lr, beta1, beta2, eps, 0.0,\n                             _cpu_div(P.Cast()(gradient, mstype.float16), clip_value))\n        return F.depend(success, next_param)\n    return success\n\n\ndef _check_param_value(beta1, beta2, eps, prim_name):\n    \"\"\"Check the type of inputs.\"\"\"\n    validator.check_value_type(\"beta1\", beta1, [float], prim_name)\n    validator.check_value_type(\"beta2\", beta2, [float], prim_name)\n    validator.check_value_type(\"eps\", eps, [float], prim_name)\n    validator.check_float_range(beta1, 0.0, 1.0, Rel.INC_NEITHER, \"beta1\", prim_name)\n    validator.check_float_range(beta2, 0.0, 1.0, Rel.INC_NEITHER, \"beta2\", prim_name)\n    validator.check_positive_float(eps, \"eps\", prim_name)\n\n\nclass AdamWeightDecayOp(Optimizer):\n    \"\"\"\n    Implements the Adam algorithm to fix the weight decay. It is a complete operator, not a combination of other ops.\n\n    Note:\n        When separating parameter groups, the weight decay in each group will be applied on the parameters if the\n        weight decay is positive. When not separating parameter groups, the `weight_decay` in the API will be applied\n        on the parameters without 'beta' or 'gamma' in their names if `weight_decay` is positive.\n\n        To improve parameter groups performance, the customized order of parameters can be supported.\n\n    Args:\n        params (Union[list[Parameter], list[dict]]): When the `params` is a list of `Parameter` which will be updated,\n            the element in `params` must be class `Parameter`. When the `params` is a list of `dict`, the \"params\",\n            \"lr\", \"weight_decay\" and \"order_params\" are the keys can be parsed.\n\n            - params: Required. The value must be a list of `Parameter`.\n\n            - lr: Optional. If \"lr\" is in the keys, the value of the corresponding learning rate will be used.\n              If not, the `learning_rate` in the API will be used.\n\n            - weight_decay: Optional. If \"weight_decay\" is in the keys, the value of the corresponding weight decay\n              will be used. If not, the `weight_decay` in the API will be used.\n\n            - order_params: Optional. If \"order_params\" is in the keys, the value must be the order of parameters and\n              the order will be followed in the optimizer. There are no other keys in the `dict` and the parameters\n              which in the 'order_params' must be in one of group parameters.\n\n        learning_rate (Union[float, Tensor, Iterable, LearningRateSchedule]): A value or a graph for the learning rate.\n            When the learning_rate is an Iterable or a Tensor in a 1D dimension, use the dynamic learning rate, then\n            the i-th step will take the i-th value as the learning rate. When the learning_rate is LearningRateSchedule,\n            use dynamic learning rate, the i-th learning rate will be calculated during the process of training\n            according to the formula of LearningRateSchedule. When the learning_rate is a float or a Tensor in a zero\n            dimension, use fixed learning rate. Other cases are not supported. The float learning rate must be\n            equal to or greater than 0. If the type of `learning_rate` is int, it will be converted to float.\n            Default: 1e-3.\n        beta1 (float): The exponential decay rate for the 1st moment estimations. Default: 0.9.\n            Should be in range (0.0, 1.0).\n        beta2 (float): The exponential decay rate for the 2nd moment estimations. Default: 0.999.\n            Should be in range (0.0, 1.0).\n        eps (float): Term added to the denominator to improve numerical stability. Default: 1e-6.\n            Should be greater than 0.\n        weight_decay (float): Weight decay (L2 penalty). It must be equal to or greater than 0. Default: 0.0.\n\n    Inputs:\n        - **gradients** (tuple[Tensor]) - The gradients of `params`, the shape is the same as `params`.\n\n    Outputs:\n        tuple[bool], all elements are True.\n\n    Supported Platforms:\n        ``CPU``\n\n    Examples:\n        >>> net = Net()\n        >>> #1) All parameters use the same learning rate and weight decay\n        >>> optim = AdamWeightDecayOp(params=net.trainable_params())\n        >>>\n        >>> #2) Use parameter groups and set different values\n        >>> conv_params = list(filter(lambda x: 'conv' in x.name, net.trainable_params()))\n        >>> no_conv_params = list(filter(lambda x: 'conv' not in x.name, net.trainable_params()))\n        >>> group_params = [{'params': conv_params, 'weight_decay': 0.01},\n        ...                 {'params': no_conv_params, 'lr': 0.01},\n        ...                 {'order_params': net.trainable_params()}]\n        >>> optim = AdamWeightDecayOp(group_params, learning_rate=0.1, weight_decay=0.0)\n        >>> # The conv_params's parameters will use default learning rate of 0.1 and weight decay of 0.01.\n        >>> # The no_conv_params's parameters will use learning rate of 0.01 and default weight decay of 0.0.\n        >>> # The final parameters order in which the optimizer will be followed is the value of 'order_params'.\n        >>>\n        >>> loss = nn.SoftmaxCrossEntropyWithLogits()\n        >>> model = Model(net, loss_fn=loss, optimizer=optim)\n   \"\"\"\n\n    def __init__(self, params, learning_rate=1e-3, beta1=0.9, beta2=0.999, eps=1e-6, weight_decay=0.0,\n                 clip_norm=1.0, param_init_type=mstype.float32):\n        super(AdamWeightDecayOp, self).__init__(learning_rate, params, weight_decay)\n        _check_param_value(beta1, beta2, eps, self.cls_name)\n        self.beta1 = Tensor(np.array([beta1]).astype(np.float32))\n        self.beta2 = Tensor(np.array([beta2]).astype(np.float32))\n        self.eps = Tensor(np.array([eps]).astype(np.float32))\n        self.clip_norm = Tensor([clip_norm], mstype.float32)\n        self.enable_init_fp16 = (param_init_type == mstype.float16)\n        if self.enable_init_fp16:\n            self.moments1 = self.clone_param32(prefix=\"adam_m\", init='zeros')\n            self.moments2 = self.clone_param32(prefix=\"adam_v\", init='zeros')\n            self.opt = P.FusedCastAdamWeightDecay()\n        else:\n            self.moments1 = self.parameters.clone(prefix=\"adam_m\", init='zeros')\n            self.moments2 = self.parameters.clone(prefix=\"adam_v\", init='zeros')\n            self.opt = P.AdamWeightDecay()\n        self.hyper_map = C.HyperMap()\n        self.opt.add_prim_attr(\"primitive_target\", \"CPU\")\n\n    def construct(self, gradients, clip_value):\n        \"\"\"AdamWeightDecayOp\"\"\"\n        lr = self.get_lr()\n        cond = P.GreaterEqual()(clip_value, self.clip_norm)\n        global_norm = F.select(cond, clip_value, self.clip_norm)\n        global_norm = P.Cast()(global_norm, mstype.float16)\n        if self.is_group:\n            if self.is_group_lr:\n                optim_result = self.map_reverse(F.partial(_adam_opt, self.opt, global_norm,\n                                                          self.beta1, self.beta2, self.eps),\n                                                lr, self.weight_decay, self.parameters, self.moments1, self.moments2,\n                                                gradients, self.decay_flags, self.optim_filter)\n            else:\n                optim_result = self.map_reverse(F.partial(_adam_opt, self.opt, global_norm,\n                                                          self.beta1, self.beta2, self.eps, lr),\n                                                self.weight_decay, self.parameters, self.moments1, self.moments2,\n                                                gradients, self.decay_flags, self.optim_filter)\n        else:\n            optim_result = self.map_reverse(F.partial(_adam_opt, self.opt, global_norm,\n                                                      self.beta1, self.beta2, self.eps, lr,\n                                                      self.weight_decay), self.parameters, self.moments1, self.moments2,\n                                            gradients, self.decay_flags, self.optim_filter)\n        if self.use_parallel:\n            self.broadcast_params(optim_result)\n        return optim_result\n\n    def clone_param32(self, prefix, init=None):\n        \"\"\"\n        Clone the parameters in ParameterTuple element-wisely to generate a new ParameterTuple with float32 data type.\n        Inputs:\n            prefix (str): The prefix name of the parameters.\n            init (Union[Tensor, str, numbers.Number]): Initialize the shape and dtype of the parameters.\n                The definition of `init` is the same as in `Parameter` API. If `init` is 'same', the\n                parameters in the new parameter tuple are the same as those in the original parameter tuple.\n                Default: 'same'.\n        Returns:\n            Tuple, the new Parameter tuple.\n        \"\"\"\n        new = []\n        for old_param in self.parameters:\n            param_init = init\n            if init is None:\n                param_init = old_param.init\n            new_state = Parameter(initializer(param_init, shape=old_param.shape, dtype=mstype.float32))\n            new_state.param_info = old_param.param_info.clone()\n            new_state.is_init = False\n            new_state.is_param_ps = old_param.is_param_ps\n            new_state.init_in_server = old_param.init_in_server\n            new_state.cache_enable = old_param.cache_enable\n            new_state.requires_aggr = old_param.requires_aggr\n            if old_param.cache_shape:\n                new_state.cache_shape = old_param.cache_shape\n            new_state.name = prefix + '.' + new_state.name\n            new.append(new_state)\n        return ParameterTuple(new)\n"
  },
  {
    "path": "codegeex/mindspore/src/callbacks.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nCallbacks\n\"\"\"\n\nimport math\nimport os\nimport time\nfrom multiprocessing import Process\n\nimport moxing as mox\nfrom mindspore import context\nfrom mindspore.communication.management import get_rank\nfrom mindspore.context import ParallelMode\nfrom mindspore.train.callback import Callback\n\n\nclass LossCallBack(Callback):\n    \"\"\"\n    Monitor the loss in training.\n    If the loss in NAN or INF terminating training.\n    \"\"\"\n\n    def __init__(\n            self,\n            name,\n            dataset_size=-1,\n            local_rank=0,\n            rank_size=1,\n            has_trained_epoch=0,\n            has_trained_step=0,\n            micro_size=1,\n            sink_size=2,\n            tb_writer=None,\n    ):\n        super(LossCallBack, self).__init__()\n        self._dataset_size = dataset_size\n        self.local_rank = local_rank\n        self.rank_size = rank_size\n        self.has_trained_epoch = has_trained_epoch\n        self.has_trained_step = has_trained_step\n        self.micro_size = micro_size\n        self.sink_size = sink_size\n\n        self.summary_writer = tb_writer\n        print(\"load has trained epoch :{} and step: {}\".format(has_trained_epoch, has_trained_step), flush=True)\n\n    def step_end(self, run_context):\n        \"\"\"\n        Print loss after each step\n        \"\"\"\n        cb_params = run_context.original_args()\n        if self._dataset_size > 0 and self.local_rank % 8 == 0:\n            percent, epoch_num = math.modf(cb_params.cur_step_num /\n                                           self._dataset_size)\n            if percent == 0:\n                epoch_num -= 1\n            date = time.asctime(time.localtime(time.time()))\n            loss_value = cb_params.net_outputs[0].asnumpy() / self.micro_size\n\n            if self.summary_writer is not None:\n                print(f\"writing: {loss_value.item()}, {cb_params.net_outputs[2].asnumpy()}\")\n                self.summary_writer.add_scalar(\n                    tag=\"training_loss\",\n                    scalar_value=loss_value.item(),\n                    global_step=cb_params.cur_step_num\n                                + int(self.has_trained_step),\n                )\n                self.summary_writer.add_scalar(\n                    tag=\"loss_scale\",\n                    scalar_value=cb_params.net_outputs[2].asnumpy(),\n                    global_step=cb_params.cur_step_num\n                                + int(self.has_trained_step),\n                )\n            print(\n                f\"time: {date} local_rank: {int(self.local_rank)}, epoch: {int(epoch_num) + int(self.has_trained_epoch)}, step: {cb_params.cur_step_num + int(self.has_trained_step)}, output is {loss_value}, overflow is {cb_params.net_outputs[1].asnumpy()}, scale is {cb_params.net_outputs[2].asnumpy()}\")\n\n\nclass EvalCallBack(Callback):\n    \"\"\"\n    Monitor the ppl loss in evaluating.\n    Note:\n        If per_print_times is 0, do NOT print loss.\n\n    Args:\n        print_per_step (int): Print loss every times. Default: 1.\n    \"\"\"\n\n    def __init__(self, model, eval_dataset, ppl_metric, validation_loss, print_per_step=250, has_trained_step=0,\n                 local_rank=0, rank_size=1, tb_writer=None, lang=None):\n        super(EvalCallBack, self).__init__()\n        if not isinstance(print_per_step, int) or print_per_step < 0:\n            raise ValueError(\"print_per_step must be int and >= 0.\")\n        self.print_per_step = print_per_step\n        self.model = model\n        self.eval_dataset = eval_dataset\n        self.pplMetric = ppl_metric\n        self.validation_loss = validation_loss\n        self.has_trained_step = has_trained_step\n        self.local_rank = local_rank\n        self.rank_size = rank_size\n        self.pplMetric.clear()\n        self.validation_loss.clear()\n        self.parallel_mode = context.get_auto_parallel_context(\"parallel_mode\")\n        self.strategy_ckpt_save_file = context.get_auto_parallel_context(\"strategy_ckpt_save_file\")\n        self.strategy_ckpt_load_file = context.get_auto_parallel_context(\"strategy_ckpt_load_file\")\n        self.summary_writer = tb_writer\n        self.lang = lang\n\n    def step_end(self, run_context):\n        \"\"\"\n        step end\n        \"\"\"\n        cb_params = run_context.original_args()\n        current_step = cb_params.cur_step_num + self.has_trained_step\n        if current_step % self.print_per_step != 0:\n            return\n        self.pplMetric.clear()\n        self.validation_loss.clear()\n        if self.parallel_mode in (ParallelMode.SEMI_AUTO_PARALLEL, ParallelMode.AUTO_PARALLEL):\n            context.set_auto_parallel_context(strategy_ckpt_save_file=\"\",\n                                              strategy_ckpt_load_file=self.strategy_ckpt_save_file)\n        rank_id = 0\n        if self.parallel_mode in (ParallelMode.SEMI_AUTO_PARALLEL,\n                                  ParallelMode.AUTO_PARALLEL, ParallelMode.DATA_PARALLEL):\n            rank_id = get_rank()\n        print(\"validation begin\")\n        start_time = time.time()\n        out = self.model.eval(self.eval_dataset)\n        end_time = time.time()\n        eval_time = int(end_time - start_time)\n\n        time_str = time.strftime(\"%Y-%m-%d %H:%M%S\", time.localtime())\n        out_str = f\"{time_str} == Language {self.lang}; Rank {rank_id} Eval: {out}; eval_time: {eval_time}s\"\n        print(out_str)\n        if self.summary_writer is not None:\n            print(f\"writing: {out}\")\n            tag = \"validation_loss\" if self.lang is None else f\"validaton_loss/{self.lang}\"\n            self.summary_writer.add_scalar(\n                tag=tag,\n                scalar_value=out['ppl'],\n                global_step=cb_params.cur_step_num + int(self.has_trained_step),\n            )\n        context.set_auto_parallel_context(strategy_ckpt_save_file=self.strategy_ckpt_save_file,\n                                          strategy_ckpt_load_file=self.strategy_ckpt_load_file)\n\n\nclass SaveCheckpointCallback(Callback):\n    def __init__(self, cache_dir, bucket, local_rank=0, has_trained_epoch=0, has_trained_step=0, syn_times=100):\n        self.cache_dir = os.path.join(cache_dir, f\"rank_{local_rank}\")\n        self.local_rank = local_rank\n        self.has_trained_epoch = has_trained_epoch\n        self.has_trained_step = has_trained_step\n\n        self.bucket = os.path.join(bucket, f\"rank_{local_rank}\")\n        self.syn_times = syn_times\n\n        if not mox.file.exists(self.bucket):\n            print(\"Creating checkpoint bucket dir {}\".format(self.bucket))\n            mox.file.make_dirs(self.bucket)\n\n    def step_end(self, run_context):\n        cb_params = run_context.original_args()\n        cur_step = cb_params.cur_step_num + self.has_trained_step\n        if cur_step % self.syn_times == 0:\n            print(\"Copying checkpoint to the buckets start\", flush=True)\n            self.syn_files()\n            print(\"Copying checkpoint to the buckets ends\", flush=True)\n\n    def syn_files(self):\n        process = Process(target=mox.file.copy_parallel, args=(self.cache_dir, self.bucket), name=\"checkpoint_sync\")\n        process.start()\n"
  },
  {
    "path": "codegeex/mindspore/src/code_tokenizer.py",
    "content": "from typing import *\n\nimport numpy as np\nfrom transformers import AutoTokenizer\nfrom transformers.models.gpt2 import GPT2TokenizerFast\n\n\ndef encode_whitespaces(text, start_extra_id: int, max_len: int):\n    \"\"\" Encode whitespaces to extra tokens in GPT-J.\n\n    >>> encode_whitespaces('a\\\\n  b\\\\n   c', 10, 10)\n    'a\\\\n<|extratoken_10|>b\\\\n<|extratoken_11|>c'\n    \"\"\"\n\n    def push_acc_space(acc_len: int, text: str):\n        if acc_len == 0:\n            return text\n        if acc_len == 1:\n            return text + ' '\n        assert acc_len <= max_len, f'Max whitespace run length {max_len}, but found {acc_len}'\n        extra_id = start_extra_id - 2 + acc_len\n        extra_token = f'<|extratoken_{extra_id}|>'\n        return text + extra_token\n\n    acc_len = 0\n    res = ''\n    for ch in text:\n        if ch == ' ':\n            acc_len += 1\n            if acc_len == max_len:\n                res = push_acc_space(acc_len, res)\n                acc_len = 0\n        else:\n            res = push_acc_space(acc_len, res)\n            acc_len = 0\n            res = res + ch\n\n    res = push_acc_space(acc_len, res)\n\n    return res\n\n\ndef decode_whitespaces(text: str, start_extra_id: int, max_len: int):\n    \"\"\" Decode the whitespace-encoded strings produced by encode_whitespace.\n\n    >>> text = 'a\\\\n  b\\\\n   c'\n    >>> s, l = 10, 10\n    >>> text == decode_whitespaces(encode_whitespaces(text, s, l), s, l)\n    True\n    \"\"\"\n    for l in range(2, max_len + 1):\n        token_id = start_extra_id - 2 + l\n        token = f'<|extratoken_{token_id}|>'\n        text = text.replace(token, ' ' * l)\n    return text\n\n\nclass Code13BDictionary(object):\n    def __init__(\n            self,\n            dict_file: str,\n            extra_token_ids: List[str] = None,\n            pad_to_vocab_size: int = -1,\n    ):\n        self._idx = dict()\n        self._count = dict()\n        self._num_symbols = 0\n        self._symbols = []\n\n        self._add_symbol(\"<s>\", 0)\n        self._add_symbol(\"<pad>\", 0)\n        self._add_symbol(\"</s>\", 0)\n        self._add_symbol(\"<unk>\", 0)\n        self._load_dict(dict_file)\n\n        if extra_token_ids is None:\n            extra_token_ids = [\n                str(x) for x in range(50257, 50400)\n            ]  # follows GPT-J settings\n\n        for token_id in extra_token_ids:\n            self._add_symbol(token_id, 0)\n\n        if pad_to_vocab_size > 0:\n            self._pad_to_vocab_size(pad_to_vocab_size)\n\n    def _pad_to_vocab_size(self, vocab_size: int):\n        num_pad = vocab_size - len(self)\n        if num_pad <= 0:\n            return\n        for i in range(1, num_pad + 1):\n            self._add_symbol(\"vocab_pad_token{}\".format(i), 0)\n\n    def _load_dict(self, dict_file: str):\n        with open(dict_file, \"r\") as f:\n            for line in f:\n                line = line.strip()\n                if line == \"\" or line.startswith(\"#\"):\n                    continue\n                sym, count = line.split()\n                self._add_symbol(sym, int(count))\n\n    def _add_symbol(self, sym: str, count: int):\n        self._idx[sym] = self._num_symbols\n        self._count[sym] = count\n        self._symbols.append(sym)\n        self._num_symbols += 1\n\n    def __len__(self):\n        return self._num_symbols\n\n    def index(self, sym: str):\n        return self._idx[sym]\n\n    def string(self, idx: int):\n        return self._symbols[idx]\n\n    def map_token(self, token: Union[int, str]):\n        if isinstance(token, int):\n            token = str(token)\n        return self.index(token)\n\n    def map_tokens(self, tokens):\n        return [self.map_token(token) for token in tokens]\n\n    def decode_tokens(self, tokens):\n        decoded = [self.string(token) for token in tokens]\n        return [int(x) for x in decoded if not x.startswith(\"vocab_pad_token\")]\n\n\nclass CodeTokenizer(object):\n    def __init__(\n            self,\n            tokenizer: GPT2TokenizerFast = None,\n            start_extra_id: int = 10,\n            max_len: int = 10,\n            mode='13b',\n            dict_file: str = None,\n    ):\n        self.tokenizer = tokenizer if tokenizer is not None else AutoTokenizer.from_pretrained(\"EleutherAI/gpt-j-6B\")\n        if mode not in ['6b', '13b']:\n            raise ValueError(f\"Invalid mode {mode}, choose from ['6b', '13b']\")\n        self.start_extra_id = start_extra_id\n        self.max_len = max_len\n        self.mode = mode\n        self.code_dict = Code13BDictionary(dict_file, pad_to_vocab_size=51200) if self.mode == '13b' else None\n        self.eos_token_id = self.tokenizer.eos_token_id\n\n    def encode_code(self, code: str):\n        if self.mode == '6b':\n            code = encode_whitespaces(code, self.start_extra_id, self.max_len)\n            input_ids = self.tokenizer(code).input_ids\n\n        elif self.mode == '13b':\n            code = encode_whitespaces(code, self.start_extra_id, self.max_len)\n            input_ids = self.code_dict.map_tokens(self.tokenizer.encode(code))\n            input_ids = np.array(input_ids, dtype=np.int64).reshape(1, -1)\n\n        return input_ids\n\n    def decode_code(self, input_ids):\n        if self.mode == '6b':\n            texts = self.tokenizer.batch_decode(input_ids)\n            output_code = [decode_whitespaces(text, self.start_extra_id, self.max_len) for text in texts]\n\n        elif self.mode == '13b':\n            input_ids = [self.code_dict.decode_tokens(input_ids.tolist()[0])]\n            texts = self.tokenizer.batch_decode(input_ids)\n            output_code = [decode_whitespaces(text, self.start_extra_id, self.max_len) for text in texts]\n\n        return output_code\n"
  },
  {
    "path": "codegeex/mindspore/src/dataset.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nCreate dataset for training and evaluating\n\"\"\"\n\nimport os\nfrom copy import deepcopy\n\nimport mindspore.common.dtype as mstype\nimport mindspore.dataset as ds\nimport mindspore.dataset.transforms.c_transforms as C\nimport numpy as np\n\nfrom .sat_dataset import (\n    LMDBDataset,\n    PadDataset,\n    ConcatDataset,\n    SubsetDataset,\n)\n\n\ndef get_input_data_batch_slice_map(input_ids, eod_id, rank, dis, eod_reset):\n    \"\"\"\n    Generate position_id and attention_mask according to input_ids considering eod reset\n    Inputs:\n        input_ids: the input token ids\n        eod_id: the id for <EOD>\n        rank: the current rank\n        dis: the slice value for each rank\n        eod_reset: whether to open eod reset or not\n    returns:\n        input_ids: the input token ids\n        position_id: the position ids cosidering eod reset\n        attention_mask: the attention mask considering eod reset\n    \"\"\"\n    # rank = int(rank)\n    # input_ids = input_ids[rank * dis : (rank + 1) * dis]\n    if np.any(input_ids > 60000):\n        raise ValueError(\"==exceed error\")\n    # print(\"===input_ids tpye: \", input_ids.dtype, flush=True) \n    if not eod_reset:\n        return input_ids\n    seq_length = input_ids.shape[1] - 1\n    # Initialize position_ids and attention_mask\n    batch_input_ids = deepcopy(input_ids)\n    batch_position_ids = np.ones((dis, seq_length))\n    batch_attention_mask = np.ones((dis, seq_length, seq_length))\n\n    # Loop through batches\n    for bs_i in range(len(input_ids)):\n        # Get normal position_ids and attention_mask\n        local_ids = input_ids[bs_i]\n        batch_attention_mask[bs_i] = np.tril(np.ones(shape=(seq_length, seq_length)))\n        batch_position_ids[bs_i] = np.arange(seq_length)\n        # Find eod_of_document\n        eod_index = batch_position_ids[bs_i, local_ids[:-1] == eod_id].astype(np.int32)\n        prev_index = 0\n        for i in range(eod_index.size):\n            # Reset position_ids and attention_mask considering EOD\n            index = eod_index[i]\n            batch_attention_mask[bs_i, (index + 1):, :(index + 1)] = 0\n            batch_position_ids[bs_i, (index + 1):] -= (index + 1 - prev_index)\n            prev_index = index + 1\n    return batch_input_ids, batch_position_ids, batch_attention_mask\n\n\ndef create_dataset(batch_size, data_path, args_opt, device_num=1, rank=0, drop=True, full_batch=False,\n                   data_start_index=0,\n                   eod_reset=False, eod_id=50256, column_name='input_ids', epoch=1, num_samples=None,\n                   train_and_eval=False, val_ratio=0):\n    \"\"\"\n    Create dataset\n    Inputs:\n        batch_size: batch size\n        data_path: path of your MindRecord files\n        device_num: total device number\n        rank: current rank id\n        drop: whether drop remainder\n        eod_reset: whether enable position reset and attention mask reset\n        eod_id: the id for <EOD>\n        column_name: the column name of the mindrecord file. Default is input_ids\n        epoch: The repeat times of the dataset\n    Returns:\n        dataset_restore: the dataset for training or evaluating\n    \"\"\"\n    ds.config.set_seed(1)\n    # Control the size of data queue in the consideration of the memory\n    ds.config.set_prefetch_size(1)\n\n    if full_batch:\n        # no need to slice from the inputs\n        rank = 0\n        dis = batch_size\n    else:\n        # Each card slice a small batch from the full batch\n        dis = int(batch_size / device_num)\n        if batch_size % device_num != 0:\n            raise ValueError(\n                f\"batch size {batch_size} should be a multiple of device number {device_num}.\"\n                \" You should change the args: per_batch_size.\"\n            )\n\n    skip_num = args_opt.has_trained_steps * dis\n    # skip_num = 0\n    num_parallel_workers = 4\n    train_data = get_code_data_train(data_path, args_opt, skip_num=(skip_num // num_parallel_workers))\n    if train_and_eval:\n        val_data = get_code_data_eval(\"/home/work/sfs/xx/data_valid\",\n                                      args_opt)  # TODO: set as current validation set path\n    else:\n        val_data = None\n\n    dataset_train = ds.GeneratorDataset(train_data, column_names=[column_name], num_samples=num_samples,\n                                        num_shards=device_num, shard_id=rank, shuffle=True,\n                                        num_parallel_workers=num_parallel_workers)\n    if train_and_eval:\n        dataset_val = ds.GeneratorDataset(val_data, column_names=[column_name], num_samples=num_samples,\n                                          num_shards=device_num, shard_id=rank, shuffle=True,\n                                          num_parallel_workers=num_parallel_workers)\n    else:\n        dataset_val = None\n    type_cast_op = C.TypeCast(mstype.int32)\n    type_cast_op_float = C.TypeCast(mstype.float16)\n\n    map_func = (lambda input_ids: get_input_data_batch_slice_map(input_ids, eod_id, rank, dis, eod_reset))\n    # If eod_reset enabled, another two inputs will be generated through input_ids\n    dataset_train = dataset_train.skip(skip_num)\n    if eod_reset:\n        dataset_train = dataset_train.batch(dis, drop_remainder=drop)\n        dataset_train = dataset_train.map(operations=map_func, input_columns=[column_name],\n                                          output_columns=[column_name, \"position_id\", \"attention_mask\"],\n                                          column_order=[column_name, \"position_id\", \"attention_mask\"])\n        dataset_train = dataset_train.map(input_columns=\"position_id\", operations=type_cast_op)\n        dataset_train = dataset_train.map(input_columns=\"attention_mask\", operations=type_cast_op_float)\n    else:\n        dataset_train = dataset_train.map(input_columns=[column_name], operations=type_cast_op)\n        dataset_train = dataset_train.batch(batch_size, drop_remainder=drop)\n        dataset_train = dataset_train.map(operations=map_func, input_columns=[column_name],\n                                          output_columns=[column_name])\n    dataset_train = dataset_train.map(input_columns=column_name, operations=type_cast_op)\n    dataset_train = dataset_train.repeat(epoch)\n\n    if dataset_val is not None:\n        if eod_reset:\n            dataset_val = dataset_val.batch(dis, drop_remainder=drop)\n            dataset_val = dataset_val.map(operations=map_func, input_columns=[column_name],\n                                          output_columns=[column_name, \"position_id\", \"attention_mask\"],\n                                          column_order=[column_name, \"position_id\", \"attention_mask\"])\n            dataset_val = dataset_val.map(input_columns=\"position_id\", operations=type_cast_op)\n            dataset_val = dataset_val.map(input_columns=\"attention_mask\", operations=type_cast_op_float)\n        else:\n            dataset_val = dataset_val.map(input_columns=[column_name], operations=type_cast_op)\n            dataset_val = dataset_val.batch(batch_size, drop_remainder=drop)\n            dataset_val = dataset_val.map(operations=map_func, input_columns=[column_name],\n                                          output_columns=[column_name])\n        dataset_val = dataset_val.map(input_columns=column_name, operations=type_cast_op)\n    return dataset_train, dataset_val\n\n\ndef get_code_data_train(code_data_path, args_opt, process_fn=None, scale=1, skip_num=0):\n    datasets = []\n    paths = []\n\n    for dir in sorted(os.listdir(code_data_path)):\n        sub_dirs = os.listdir(os.path.join(code_data_path, dir))\n        for sub_dir in sub_dirs:\n            if os.path.exists(os.path.join(code_data_path, dir, sub_dir, 'data.mdb')) and os.path.exists(\n                    os.path.join(code_data_path, dir, sub_dir, 'lock.mdb')):\n                paths.append(os.path.join(code_data_path, dir, sub_dir))\n\n    for full_path in paths:\n        if os.path.isdir(full_path):\n            print(f\"Loading code data {full_path}\")\n            data = LMDBDataset(\n                full_path,\n                process_fn=process_fn,\n            )\n            data = PadDataset(\n                data,\n                args_opt.seq_length,\n                args_opt.eod_id,\n            )\n            datasets.append(data)\n    datasets = ConcatDataset(datasets, skip_num=skip_num)\n    return datasets\n\n\ndef get_code_data_eval(code_data_path, args_opt, process_fn=None, scale=1):\n    datasets = []\n    paths = []\n\n    for dir in sorted(os.listdir(code_data_path)):\n        sub_dirs = os.listdir(os.path.join(code_data_path, dir))\n        for sub_dir in sub_dirs:\n            if os.path.exists(os.path.join(code_data_path, dir, sub_dir, 'data.mdb')) and os.path.exists(\n                    os.path.join(code_data_path, dir, sub_dir, 'lock.mdb')):\n                paths.append(os.path.join(code_data_path, dir, sub_dir))\n\n    for full_path in paths:\n        if os.path.isdir(full_path):\n            print(f\"Loading code data {full_path}\")\n            data = LMDBDataset(\n                full_path,\n                process_fn=process_fn,\n            )\n            data = PadDataset(\n                data,\n                args_opt.seq_length,\n                args_opt.eod_id,\n            )\n            data = SubsetDataset(\n                data,\n                0,\n                len(data) // 10,\n            )\n            datasets.append(data)\n    datasets = ConcatDataset(datasets)\n    print(f\"==valid dataset has {len(datasets)} items\")\n    return datasets\n"
  },
  {
    "path": "codegeex/mindspore/src/dataset_finetune.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nCreate dataset for training and evaluating\n\"\"\"\n\nimport os\nfrom copy import deepcopy\n\nimport mindspore.common.dtype as mstype\nimport mindspore.dataset as ds\nimport mindspore.dataset.transforms.c_transforms as C\nimport numpy as np\n\nfrom .sat_dataset import (\n    LMDBDataset,\n    ConcatDataset,\n)\n\n\ndef get_input_data_batch_slice_map(input_ids, loss_mask, eod_id, rank, dis, eod_reset):\n    \"\"\"\n    Generate position_id and attention_mask according to input_ids considering eod reset\n    Inputs:\n        input_ids: the input token ids\n        loss_mask: the loss mask\n        eod_id: the id for <EOD>\n        rank: the current rank\n        dis: the slice value for each rank\n        eod_reset: whether to open eod reset or not\n    returns:\n        input_ids: the input token ids\n        position_id: the position ids cosidering eod reset\n        attention_mask: the attention mask considering eod reset\n        loss_mask: the loss mask considering prompt and eod reset\n    \"\"\"\n    # rank = int(rank)\n    # input_ids = input_ids[rank * dis : (rank + 1) * dis]\n    if np.any(input_ids > 60000):\n        raise ValueError(\"==exceed error\")\n    # print(\"===input_ids tpye: \", input_ids.dtype, flush=True) \n    if not eod_reset:\n        return input_ids\n    seq_length = input_ids.shape[1] - 1\n    # Initialize position_ids and attention_mask\n    batch_input_ids = deepcopy(input_ids)\n    batch_position_ids = np.ones((dis, seq_length))\n    batch_attention_mask = np.ones((dis, seq_length, seq_length))\n    batch_loss_mask = deepcopy(loss_mask)\n\n    # Loop through batches\n    for bs_i in range(len(batch_input_ids)):\n        # Get normal position_ids and attention_mask\n        local_ids = batch_input_ids[bs_i]\n        batch_attention_mask[bs_i] = np.tril(np.ones(shape=(seq_length, seq_length)))\n        batch_position_ids[bs_i] = np.arange(seq_length)\n        # Find eod_of_document\n        eod_index = batch_position_ids[bs_i, local_ids[:-1] == eod_id].astype(np.int32)\n        prev_index = 0\n        for i in range(eod_index.size):\n            # Reset position_ids and attention_mask considering EOD\n            index = eod_index[i]\n            batch_attention_mask[bs_i, (index + 1):, :(index + 1)] = 0\n            batch_position_ids[bs_i, (index + 1):] -= (index + 1 - prev_index)\n            prev_index = index + 1\n    # print(f\"===batch_loss_mask: {batch_loss_mask}, shape: {batch_loss_mask.shape}, nonzero: {batch_loss_mask.nonzero()}\")\n    return batch_input_ids, batch_loss_mask, batch_position_ids, batch_attention_mask\n\n\ndef create_dataset(batch_size, data_path, args_opt, device_num=1, rank=0, drop=True, full_batch=False,\n                   data_start_index=0,\n                   eod_reset=False, eod_id=50256, epoch=1, num_samples=None, train_and_eval=False, val_ratio=0):\n    \"\"\"\n    Create dataset\n    Inputs:\n        batch_size: batch size\n        data_path: path of your MindRecord files\n        device_num: total device number\n        rank: current rank id\n        drop: whether drop remainder\n        eod_reset: whether enable position reset and attention mask reset\n        eod_id: the id for <EOD>\n        column_name: the column name of the mindrecord file. Default is input_ids\n        epoch: The repeat times of the dataset\n    Returns:\n        dataset_restore: the dataset for training or evaluating\n    \"\"\"\n    ds.config.set_seed(1)\n    # Control the size of data queue in the consideration of the memory\n    ds.config.set_prefetch_size(1)\n\n    if full_batch:\n        # no need to slice from the inputs\n        rank = 0\n        dis = batch_size\n    else:\n        # Each card slice a small batch from the full batch\n        dis = int(batch_size / device_num)\n        if batch_size % device_num != 0:\n            raise ValueError(\n                f\"batch size {batch_size} should be a multiple of device number {device_num}.\"\n                \" You should change the args: per_batch_size.\"\n            )\n\n    # skip_num = args_opt.has_trained_steps * dis\n    # skip_num = 0\n    num_parallel_workers = 4\n    train_data = get_code_data(data_path, 'train', args_opt)\n    if train_and_eval:\n        val_data = get_code_data(data_path, 'val', args_opt)\n    else:\n        val_data = None\n\n    dataset_train = ds.GeneratorDataset(train_data, column_names=['input_ids', 'loss_mask'], num_samples=num_samples,\n                                        num_shards=device_num, shard_id=rank, shuffle=True,\n                                        num_parallel_workers=num_parallel_workers)\n    if train_and_eval:\n        dataset_val = ds.GeneratorDataset(val_data, column_names=['input_ids', 'loss_mask'], num_samples=num_samples,\n                                          num_shards=device_num, shard_id=rank, shuffle=True,\n                                          num_parallel_workers=num_parallel_workers)\n    else:\n        dataset_val = None\n    type_cast_op = C.TypeCast(mstype.int32)\n    type_cast_op_float = C.TypeCast(mstype.float16)\n    type_cast_op_float2 = C.TypeCast(mstype.float32)\n\n    map_func = (\n        lambda input_ids, loss_mask: get_input_data_batch_slice_map(input_ids, loss_mask, eod_id, rank, dis, eod_reset))\n    # If eod_reset enabled, another two inputs will be generated through input_ids\n    # dataset_train = dataset_train.skip(skip_num)\n    dataset_train = dataset_train.batch(dis, drop_remainder=drop)\n    dataset_train = dataset_train.map(operations=map_func, input_columns=[\"input_ids\", \"loss_mask\"],\n                                      output_columns=[\"input_ids\", \"loss_mask\", \"position_id\", \"attention_mask\"],\n                                      column_order=[\"input_ids\", \"loss_mask\", \"position_id\", \"attention_mask\"])\n    dataset_train = dataset_train.map(input_columns=\"position_id\", operations=type_cast_op)\n    dataset_train = dataset_train.map(input_columns=\"attention_mask\", operations=type_cast_op_float)\n    dataset_train = dataset_train.map(input_columns=\"loss_mask\", operations=type_cast_op_float2)\n    dataset_train = dataset_train.map(input_columns=\"input_ids\", operations=type_cast_op)\n    dataset_train = dataset_train.repeat(epoch)\n\n    if dataset_val is not None:\n        dataset_val = dataset_val.batch(dis, drop_remainder=drop)\n        dataset_val = dataset_val.map(operations=map_func, input_columns=[\"input_ids\", \"loss_mask\"],\n                                      output_columns=[\"input_ids\", \"loss_mask\", \"position_id\", \"attention_mask\"],\n                                      column_order=[\"input_ids\", \"loss_mask\", \"position_id\", \"attention_mask\"])\n        dataset_val = dataset_val.map(input_columns=\"position_id\", operations=type_cast_op)\n        dataset_val = dataset_val.map(input_columns=\"attention_mask\", operations=type_cast_op_float)\n        dataset_val = dataset_val.map(input_columns=\"loss_mask\", operations=type_cast_op_float2)\n        dataset_val = dataset_val.map(input_columns=\"input_ids\", operations=type_cast_op)\n    return dataset_train, dataset_val\n\n\ndef get_code_data(code_data_path, split, args_opt, process_fn=None, skip_num=0):\n    datasets = []\n    for dir in os.listdir(code_data_path):\n        sub_dir = os.path.join(code_data_path, dir, split)\n        print(f\"Loading code data {sub_dir}\")\n        data = LMDBDataset(\n            sub_dir,\n            process_fn=process_fn,\n        )\n        datasets.append(data)\n    data = ConcatDataset(datasets)\n    return data\n"
  },
  {
    "path": "codegeex/mindspore/src/generate.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\n\"\"\"\nTopK for text generation\n\"\"\"\n\nimport mindspore.common.dtype as mstype\nimport numpy as np\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.ops import operations as P\n\n\ndef topk_fun(logits, topk=5):\n    \"\"\"Get topk\"\"\"\n    target_column = logits[0].tolist()\n    sorted_array = [(k, v) for k, v in enumerate(target_column)]\n    sorted_array.sort(key=lambda x: x[1], reverse=True)\n    topk_array = sorted_array[:topk]\n    index, value = zip(*topk_array)\n    index = np.array([index])\n    value = np.array([value])\n    return value, index\n\n\ndef sampler(log_probs_revised, top_p, top_k_num, use_pynative=False):\n    \"\"\"Convert the log_probs to probability\"\"\"\n    if use_pynative:\n        logits = P.Pow()(np.e, Tensor(log_probs_revised, mstype.float32))\n    else:\n        logits = np.power(np.e, np.array(log_probs_revised, np.float32))\n\n        # If top_p is less than 1.0, use top_p sampling\n    if top_p < 1.0:\n        # Only consider the 5000 largest logits to reduce computation\n        if use_pynative:\n            sorted_logits, index = P.TopK(sorted=True)(logits, 5000)\n            index = index.asnumpy()\n            sorted_logits = sorted_logits.asnumpy()\n        else:\n            sorted_logits, index = topk_fun(logits, 5000)\n\n        index = index[0]\n        sorted_p = sorted_logits / sum(sorted_logits)\n        cumsum_p = np.cumsum(sorted_p, axis=1)\n        sorted_logits = sorted_logits[0]\n        cumsum_p = cumsum_p[0]\n        top_p_num = sum(cumsum_p < top_p) + 1\n\n        # Get the corresponding probs and indices\n        probs = sorted_logits[:top_p_num]\n        p_args = index[:top_p_num]\n        p = probs / sum(probs)\n        # if top_p is set to 1.0, use top_k sampling\n    else:\n        # Get the corresponding probs and indices\n        if use_pynative:\n            probs, p_args = P.TopK(sorted=True)(logits, top_k_num)\n            probs = probs.asnumpy()\n            p_args = p_args.asnumpy()\n        else:\n            probs, p_args = topk_fun(logits, top_k_num)\n        probs = probs[0]\n        p_args = p_args[0]\n        # Avoid rounding error\n        # if sum(probs) == 0:\n        #     probs = np.array([1 / top_k_num for _ in range(top_k_num)])\n        p = probs / sum(probs)\n    return p, p_args\n\n\ndef generate(model, origin_inputs, config, verbose=False):\n    \"\"\"\n    Text generation\n\n    Inputs:\n        model: the model for inferencing\n        origin_inputs: the original inputs based on which the model will continue writing\n        config: inference configurations\n\n    Returns:\n        outputs: the ids for the generated text\n    \"\"\"\n    # Get configurations for inference\n    frequency_penalty = config.frequency_penalty\n    presence_penalty = config.presence_penalty\n    top_p = config.top_p\n    top_k_num = config.top_k_num\n    temperature = config.temperature\n    max_generate_length = config.max_generate_length\n    seq_length = config.seq_length\n    end_token = config.end_token\n    use_pynative = config.use_pynative_op\n    vocab_embedding_vocab_size = (config.vocab_size // 1024 + 1) * 1024\n\n    _, valid_length = origin_inputs.shape\n    if verbose:\n        print(\"Original input shape\", origin_inputs.shape)\n\n    # If target length exceeds seq_length, use seq_length instead\n    target_length = valid_length + max_generate_length\n    target_length = seq_length if target_length > seq_length else target_length\n\n    # A list of the frequency of each token\n    frequency_list = np.array([[0 for _ in range(vocab_embedding_vocab_size)]])\n    pad_length = seq_length - origin_inputs.shape[-1]\n    # Pad original inputs to seq_length\n    print(\"Original shape:\", origin_inputs.shape)\n    input_ids = np.pad(origin_inputs, ((0, 0), (0, pad_length)),\n                       'constant', constant_values=(end_token, end_token))\n    # print(\"input_ids is \", input_ids)\n\n    # A single loop generates one token, loop until reaching target seq_length or generating eod token\n    while valid_length < target_length:\n        inputs = Tensor(input_ids, mstype.int32)\n\n        # Indicate the exact token position\n        current_index = valid_length - 1 if valid_length - 1 > 0 else 0\n        current_index = Tensor([current_index], mstype.int32)\n        # Call a single inference\n        log_probs = model.predict(inputs, current_index)\n        # Get the revised log_probs considering frequency and presence penalty to eliminate duplicate in generated results\n        log_probs = log_probs.asnumpy().reshape(1, -1)\n        log_probs_revised = log_probs - frequency_list * \\\n                            frequency_penalty - (frequency_list > 0) * presence_penalty\n        log_probs_revised /= temperature\n\n        p, p_args = sampler(log_probs_revised, top_p, top_k_num, use_pynative)\n        # Random select a token as final output for this round\n        target_index = np.random.choice(len(p), p=p)\n\n        if verbose:\n            print(\"=== log_probs_revised is\", log_probs_revised)\n            print(\"=== p:\", p, \"shape:\", p.shape)\n            print(\"=== p_args:\", p_args, \"shape\", p_args.shape)\n            print(f\"=== Length {valid_length}, target index {target_index}, chosen token {p_args[target_index]}.\")\n\n        # Stop judgment\n        if p_args[target_index] == end_token or valid_length == target_length - 1:\n            outputs = input_ids\n            if verbose:\n                print(\n                    f\"=== generation end, last token: {p_args[target_index]}\")\n            break\n\n        # update frequency list\n        target = p_args[target_index]\n        frequency_list[0][target] = frequency_list[0][target] + 1\n        # Modify input_ids with newly generated token\n        input_ids[0][valid_length] = p_args[target_index]\n        valid_length += 1\n    # Return valid outputs out of padded outputs\n    length = np.sum(outputs != end_token)\n    outputs = outputs[0][:length]\n    return outputs\n\n\ndef generate_increment(model, origin_inputs, config, verbose=False):\n    \"\"\"\n    Text generation for incremental inference\n\n    Inputs:\n        model: the model for inferencing\n        origin_inputs: the original inputs based on which the model will continue writing\n        config: inference configurations\n\n    Returns:\n        outputs: the ids for the generated text\n    \"\"\"\n    # Get configurations for inference\n    frequency_penalty = config.frequency_penalty\n    presence_penalty = config.presence_penalty\n    top_p = config.top_p\n    top_k_num = config.top_k_num\n    temperature = config.temperature\n    max_generate_length = config.max_generate_length\n    seq_length = config.seq_length\n    end_token = config.end_token\n    use_pynative = config.use_pynative_op\n    vocab_embedding_vocab_size = (config.vocab_size // 1024 + 1) * 1024\n\n    _, valid_length = origin_inputs.shape\n    # Init outputs with original inputs\n    outputs = [origin_inputs[0][i] for i in range(valid_length)]\n    # If target length exceeds seq_length, use seq_length instead\n    target_length = valid_length + max_generate_length\n    target_length = seq_length if target_length > seq_length else target_length\n\n    # A list of the frequency of each token\n    frequency_list = np.array([[0 for _ in range(vocab_embedding_vocab_size)]])\n    pad_length = seq_length - origin_inputs.shape[-1]\n    # Pad original inputs to seq_length\n    input_ids = np.pad(origin_inputs, ((0, 0), (0, pad_length)),\n                       'constant', constant_values=(end_token, end_token))\n    print(\"input_ids is \", input_ids)\n\n    # Indicate the exact token position\n    current_index = valid_length - 1 if valid_length - 1 > 0 else 0\n    batch_valid_length = Tensor(np.array([current_index]), mstype.int32)\n    current_index = Tensor(np.array([current_index]), mstype.int32)\n    # For first graph, not_init should be false\n    init_true = Tensor([True], mstype.bool_)\n    init_false = Tensor([False], mstype.bool_)\n    init = init_false\n    # Claim the first graph\n    model.predict_network.add_flags_recursive(is_first_iteration=True)\n    # Call a single inference with input size of (bs, seq_length)\n    logits = model.predict(Tensor(input_ids, mstype.int32),\n                           current_index, init, batch_valid_length)\n\n    # Claim the second graph and set not_init to true\n    init = init_true\n    model.predict_network.add_flags_recursive(is_first_iteration=False)\n\n    # A single loop generates one token, loop until reaching target seq_length or generating eod token\n    while valid_length < target_length:\n        # Reshape the output logits\n        logits = logits.asnumpy()\n        log_probs = logits.reshape(1, vocab_embedding_vocab_size)\n\n        # Get the revised log_probs considering frequency and presence penalty to eliminate duplicate in generated results\n        log_probs_revised = log_probs - frequency_list * \\\n                            frequency_penalty - (frequency_list > 0) * presence_penalty\n        log_probs_revised /= temperature\n\n        p, p_args = sampler(log_probs_revised, top_p, top_k_num, use_pynative)\n        # Random select a token as final output for this round\n        target_index = np.random.choice(len(p), p=p)\n\n        if verbose:\n            print(\"=== log_probs_revised is\", log_probs_revised)\n            print(\"=== p:\", p, \"shape:\", p.shape)\n            print(\"=== p_args:\", p_args, \"shape\", p_args.shape)\n            print(f\"=== Length {valid_length}, target index {target_index}, chosen token {p_args[target_index]}.\")\n\n        # Stop judgment\n        if p_args[target_index] == end_token or valid_length == target_length - 1:\n            break\n\n        # Update frequency list\n        target = p_args[target_index]\n        frequency_list[0][target] = frequency_list[0][target] + 1\n        valid_length += 1\n\n        batch_valid_length = Tensor(np.array([valid_length - 1]), mstype.int32)\n        current_index = Tensor(np.array([0]), mstype.int32)\n        input_id = Tensor([[target]], mstype.int32)\n\n        # Update outputs with current generated token\n        outputs.append(int(target))\n\n        # Call a single inference with input size of (bs, 1)\n        logits = model.predict(input_id, current_index,\n                               init, batch_valid_length)\n    # Return valid outputs out of padded outputs\n    return np.array(outputs)\n"
  },
  {
    "path": "codegeex/mindspore/src/generate_finetune.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\n\"\"\"\nTopK for text generation\n\"\"\"\n\nfrom copy import deepcopy\n\nimport mindspore.common.dtype as mstype\nimport numpy as np\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.ops import operations as P\n\n\ndef topk_fun(logits, topk=5):\n    \"\"\"Get topk\"\"\"\n    value = np.flip(np.sort(logits), axis=-1)[..., :topk]\n    index = np.flip(np.argsort(logits), axis=-1)[..., :topk]\n    return value, index\n\n\ndef sampler(log_probs_revised, top_p, top_k_num, use_pynative=False, bad_words_index=[]):\n    for i, bad_words in enumerate(bad_words_index):\n        for bad_word in bad_words:\n            log_probs_revised[i, bad_word] = -10000\n    \"\"\"Convert the log_probs to probability\"\"\"\n    if use_pynative:\n        logits = P.Pow()(np.e, Tensor(log_probs_revised, mstype.float32))\n    else:\n        logits = np.power(np.e, np.array(log_probs_revised, np.float32))\n\n        # If top_p is less than 1.0, use top_p sampling\n    if top_p < 1.0:\n        # Only consider the 5000 largest logits to reduce computation\n        if use_pynative:\n            sorted_logits, index = P.TopK(sorted=True)(logits, 5000)\n            index = index.asnumpy()\n            sorted_logits = sorted_logits.asnumpy()\n        else:\n            sorted_logits, index = topk_fun(logits, 5000)\n\n        sorted_p = sorted_logits / sorted_logits.sum(axis=1).reshape(-1, 1)\n        cumsum_p = np.cumsum(sorted_p, axis=1)\n        top_p_num = (cumsum_p < top_p).sum(axis=1) + 1\n\n        # Get the corresponding probs and indices\n        probs = sorted_logits\n        for i, top_p in enumerate(top_p_num):\n            probs[i][top_p:] = 0\n        p_args = index\n        p = probs / probs.sum(axis=1).reshape(-1, 1)\n        # if top_p is set to 1.0, use top_k sampling\n    else:\n        # Get the corresponding probs and indices\n        if use_pynative:\n            probs, p_args = P.TopK(sorted=True)(logits, top_k_num)\n            probs = probs.asnumpy()\n            p_args = p_args.asnumpy()\n        else:\n            probs, p_args = topk_fun(logits, top_k_num)\n        p = probs / probs.sum(axis=1).reshape(-1, 1)\n    return p, p_args\n\n\ndef generate_increment(model, origin_inputs, origin_length, config, tokenizer, verbose=False):\n    \"\"\"\n    Text generation for incremental inference\n\n    Inputs:\n        model: the model for inferencing\n        origin_inputs: the original inputs based on which the model will continue writing\n        config: inference configurations\n\n    Returns:\n        outputs: the ids for the generated text\n    \"\"\"\n    # Get configurations for inference\n    frequency_penalty = config.frequency_penalty\n    presence_penalty = config.presence_penalty\n    top_p = config.top_p\n    top_k_num = config.top_k_num\n    temperature = config.temperature\n    max_generate_length = config.max_generate_length\n    seq_length = config.seq_length\n    end_token = config.end_token\n    use_pynative = config.use_pynative_op\n    vocab_embedding_vocab_size = (config.vocab_size // 1024 + 1) * 1024\n\n    batch_size, valid_length = origin_inputs.shape\n    # Init outputs with original inputs\n    outputs = [[origin_inputs[i][j] for j in range(valid_length)] for i in range(batch_size)]\n    output_codes = [[] for _ in range(batch_size)]\n    # If target length exceeds seq_length, use seq_length instead\n    target_lengths = [min(seq_length, l + max_generate_length) for l in origin_length]\n    valid_lengths = deepcopy(origin_length)\n    gen_end = [(l == -1) for l in origin_length]\n\n    # A list of the frequency of each token\n    frequency_list = np.zeros((batch_size, vocab_embedding_vocab_size))\n    pad_length = seq_length - origin_inputs.shape[-1]\n    # Pad original inputs to seq_length\n    input_ids = np.pad(origin_inputs, ((0, 0), (0, pad_length)),\n                       'constant', constant_values=(end_token, end_token))\n    if verbose:\n        print(\"input_ids is \", input_ids)\n\n    # Indicate the exact token position\n    current_indexes = [max(l - 1, 0) for l in valid_lengths]\n    # batch_valid_length = Tensor(np.array([current_index for _ in range(batch_size)]), mstype.int32)\n    batch_valid_length = Tensor(np.array(current_indexes), mstype.int32)\n    current_indexes = Tensor(np.array([current_indexes[i] + i * seq_length for i in range(batch_size)]), mstype.int32)\n    # For first graph, not_init should be false\n    init_true = Tensor([True], mstype.bool_)\n    init_false = Tensor([False], mstype.bool_)\n    init = init_false\n    # Claim the first graph\n    model.predict_network.add_flags_recursive(is_first_iteration=True)\n    # Call a single inference with input size of (bs, seq_length)\n    logits = model.predict(Tensor(input_ids, mstype.int32),\n                           current_indexes, init, batch_valid_length)\n\n    # Claim the second graph and set not_init to true\n    init = init_true\n    model.predict_network.add_flags_recursive(is_first_iteration=False)\n\n    comments_index = [2, ]  # '#': 2, ' #': 1303\n    newline_index = [198, ]  # '\\n': 198\n    # A single loop generates one token, loop until reaching target seq_length or generating eod token\n    while not all(gen_end):\n        # Reshape the output logits\n        logits = logits.asnumpy()\n        log_probs = logits.reshape(batch_size, vocab_embedding_vocab_size)\n\n        # Get the revised log_probs considering frequency and presence penalty to eliminate duplicate in generated results\n        log_probs_revised = log_probs - frequency_list * frequency_penalty - (frequency_list > 0) * presence_penalty\n        log_probs_revised /= temperature\n\n        bad_words_index = [[] for _ in range(batch_size)]\n\n        p, p_args = sampler(log_probs_revised, top_p, top_k_num, use_pynative, bad_words_index=bad_words_index)\n        # Random select a token as final output for this round\n        target_index = np.zeros(batch_size, dtype=np.int64)\n        for i in range(batch_size):\n            target_index[i] = np.random.choice(len(p[i]), p=p[i])\n\n        if verbose:\n            print(\"=== p:\", p, \"shape:\", p.shape)\n            print(\"=== p_args:\", p_args, \"shape\", p_args.shape)\n            print(\n                f\"=== Length {valid_lengths}, target index {target_index}, chosen token {p_args[np.arange(batch_size), target_index]}, generation end status {gen_end}.\")\n\n        # Update frequency list\n        target = p_args[np.arange(batch_size), target_index]\n        frequency_list[np.arange(batch_size), target] = frequency_list[np.arange(batch_size), target] + 1\n\n        batch_valid_length = Tensor(np.array(valid_lengths), mstype.int32)\n        current_indexes = Tensor(np.arange(batch_size, dtype=np.int32), mstype.int32)\n        input_id = Tensor([target], mstype.int32).reshape(-1, 1)\n        # Update outputs with current generated token\n        for i in range(batch_size):\n            if not gen_end[i]:\n                if int(target[i]) == 50256:\n                    gen_end[i] = True\n                else:\n                    output_codes[i].append(int(target[i]))\n                    outputs[i].append(int(target[i]))\n                    valid_lengths[i] += 1\n                if valid_lengths[i] >= target_lengths[i]:\n                    gen_end[i] = True\n\n        # Call a single inference with input size of (bs, 1)\n        logits = model.predict(input_id, current_indexes,\n                               init, batch_valid_length)\n    return tokenizer.decode_code(output_codes)\n"
  },
  {
    "path": "codegeex/mindspore/src/generate_greedy.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\n\"\"\"\nTopK for text generation\n\"\"\"\n\nfrom copy import deepcopy\n\nimport mindspore.common.dtype as mstype\nimport numpy as np\nfrom mindspore.common.tensor import Tensor\n\n\ndef topk_fun(logits, topk=5):\n    \"\"\"Get topk\"\"\"\n    value = np.flip(np.sort(logits), axis=-1)[..., :topk]\n    index = np.flip(np.argsort(logits), axis=-1)[..., :topk]\n    return value, index\n\n\ndef sampler(log_probs_revised, top_p, top_k_num, use_pynative=False, bad_words_index=[]):\n    for i, bad_words in enumerate(bad_words_index):\n        for bad_word in bad_words:\n            log_probs_revised[i, bad_word] = -10000\n    \"\"\"Convert the log_probs to probability\"\"\"\n    if use_pynative:\n        log_probs_revised = log_probs_revised.asnumpy()\n\n    return log_probs_revised.argmax(axis=1)\n\n\ndef generate_increment(model, origin_inputs, origin_length, config, tokenizer, verbose=False):\n    \"\"\"\n    Text generation for incremental inference\n\n    Inputs:\n        model: the model for inferencing\n        origin_inputs: the original inputs based on which the model will continue writing\n        config: inference configurations\n\n    Returns:\n        outputs: the ids for the generated text\n    \"\"\"\n    # Get configurations for inference\n    frequency_penalty = config.frequency_penalty\n    presence_penalty = config.presence_penalty\n    top_p = config.top_p\n    top_k_num = config.top_k_num\n    temperature = config.temperature\n    max_generate_length = config.max_generate_length\n    seq_length = config.seq_length\n    end_token = config.end_token\n    use_pynative = config.use_pynative_op\n    vocab_embedding_vocab_size = (config.vocab_size // 1024 + 1) * 1024\n\n    batch_size, valid_length = origin_inputs.shape\n    # Init outputs with original inputs\n    outputs = [[origin_inputs[i][j] for j in range(valid_length)] for i in range(batch_size)]\n    output_codes = [[] for _ in range(batch_size)]\n    # If target length exceeds seq_length, use seq_length instead\n    target_lengths = [min(seq_length, l + max_generate_length) for l in origin_length]\n    valid_lengths = deepcopy(origin_length)\n    gen_end = [(l == -1) for l in origin_length]\n\n    # A list of the frequency of each token\n    frequency_list = np.zeros((batch_size, vocab_embedding_vocab_size))\n    pad_length = seq_length - origin_inputs.shape[-1]\n    # Pad original inputs to seq_length\n    input_ids = np.pad(origin_inputs, ((0, 0), (0, pad_length)),\n                       'constant', constant_values=(end_token, end_token))\n    if verbose:\n        print(\"input_ids is \", input_ids)\n\n    # Indicate the exact token position\n    current_indexes = [max(l - 1, 0) for l in valid_lengths]\n    # batch_valid_length = Tensor(np.array([current_index for _ in range(batch_size)]), mstype.int32)\n    batch_valid_length = Tensor(np.array(current_indexes), mstype.int32)\n    current_indexes = Tensor(np.array([current_indexes[i] + i * seq_length for i in range(batch_size)]), mstype.int32)\n    # For first graph, not_init should be false\n    init_true = Tensor([True], mstype.bool_)\n    init_false = Tensor([False], mstype.bool_)\n    init = init_false\n    # Claim the first graph\n    model.predict_network.add_flags_recursive(is_first_iteration=True)\n    # Call a single inference with input size of (bs, seq_length)\n    logits = model.predict(Tensor(input_ids, mstype.int32),\n                           current_indexes, init, batch_valid_length)\n\n    # Claim the second graph and set not_init to true\n    init = init_true\n    model.predict_network.add_flags_recursive(is_first_iteration=False)\n\n    comments_index = [2, ]  # '#': 2, ' #': 1303\n    newline_index = [198, ]  # '\\n': 198\n    # A single loop generates one token, loop until reaching target seq_length or generating eod token\n    while not all(gen_end):\n        # Reshape the output logits\n        logits = logits.asnumpy()\n        log_probs = logits.reshape(batch_size, vocab_embedding_vocab_size)\n\n        # Get the revised log_probs considering frequency and presence penalty to eliminate duplicate in generated results\n        log_probs_revised = log_probs - frequency_list * frequency_penalty - (frequency_list > 0) * presence_penalty\n\n        bad_words_index = [[] for _ in range(batch_size)]\n\n        target_index = sampler(log_probs_revised, top_p, top_k_num, use_pynative, bad_words_index=bad_words_index)\n\n        if verbose:\n            print(f\"=== Length {valid_lengths}, target index {target_index}, generation end status {gen_end}.\")\n\n        # Update frequency list\n        target = target_index\n        frequency_list[np.arange(batch_size), target] = frequency_list[np.arange(batch_size), target] + 1\n\n        batch_valid_length = Tensor(np.array(valid_lengths), mstype.int32)\n        current_indexes = Tensor(np.arange(batch_size, dtype=np.int32), mstype.int32)\n        input_id = Tensor([target], mstype.int32).reshape(-1, 1)\n        # Update outputs with current generated token\n        for i in range(batch_size):\n            if not gen_end[i]:\n                if int(target[i]) == 50256:\n                    gen_end[i] = True\n                else:\n                    output_codes[i].append(int(target[i]))\n                    outputs[i].append(int(target[i]))\n                    valid_lengths[i] += 1\n                if valid_lengths[i] >= target_lengths[i]:\n                    gen_end[i] = True\n\n        # Call a single inference with input size of (bs, 1)\n        logits = model.predict(input_id, current_indexes,\n                               init, batch_valid_length)\n    return tokenizer.decode_code(output_codes)\n"
  },
  {
    "path": "codegeex/mindspore/src/generate_humaneval.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\n\"\"\"\nTopK for text generation\n\"\"\"\nimport mindspore.common.dtype as mstype\nimport numpy as np\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.ops import operations as P\n\n\ndef is_code_generation_finished(text: str):\n    \"\"\"\n    Checks whether the generated code text is finished.\n    \"\"\"\n    # end_words = ['\\ndef', '\\nclass', '\\nif', '\\n#', '\\nprint', '<|endoftext|>']\n    end_words = ['\\n}']\n    for w in end_words:\n        if w in text:\n            return True\n    return False\n\n\ndef cleanup_text(text: str):\n    \"\"\"\n    Cleans up the generated code text.\n    \"\"\"\n    # end_words = ['\\ndef', '\\nclass', '\\nif', '\\n#', '\\nprint', '<|endoftext|>']\n    end_words = ['\\n}']\n    for w in end_words:\n        if text.endswith(w):\n            text = text[:-len(w)]\n    return text\n\n\ndef truncate_text(text: str):\n    \"\"\"\n    Cleans up the generated code text.\n    \"\"\"\n    # end_words = ['\\ndef', '\\nclass', '\\nif', '\\n#', '\\nprint', '<|endoftext|>']\n    end_words = ['\\n}']\n    for w in end_words:\n        idx = text.find(w)\n        if idx != -1:\n            text = text[:idx] + w\n            # text = text[:idx]\n    return text\n\n\ndef topk_fun(logits, topk=5):\n    \"\"\"Get topk\"\"\"\n    # target_column = logits[0].tolist()\n    # sorted_array = [(k, v) for k, v in enumerate(target_column)]\n    # sorted_array.sort(key=lambda x: x[1], reverse=True)\n    # topk_array = sorted_array[:topk]\n    # index, value = zip(*topk_array)\n    # index = np.array([index])\n    # value = np.array([value])\n    value = np.flip(np.sort(logits), axis=-1)[..., :topk]\n    index = np.flip(np.argsort(logits), axis=-1)[..., :topk]\n    return value, index\n\n\ndef sampler(log_probs_revised, top_p, top_k_num, use_pynative=False, bad_words_index=[]):\n    for i, bad_words in enumerate(bad_words_index):\n        for bad_word in bad_words:\n            log_probs_revised[i, bad_word] = -10000\n    \"\"\"Convert the log_probs to probability\"\"\"\n    if use_pynative:\n        logits = P.Pow()(np.e, Tensor(log_probs_revised, mstype.float32))\n    else:\n        logits = np.power(np.e, np.array(log_probs_revised, np.float32))\n\n        # If top_p is less than 1.0, use top_p sampling\n    if top_p < 1.0:\n        # Only consider the 5000 largest logits to reduce computation\n        if use_pynative:\n            sorted_logits, index = P.TopK(sorted=True)(logits, 5000)\n            index = index.asnumpy()\n            sorted_logits = sorted_logits.asnumpy()\n        else:\n            sorted_logits, index = topk_fun(logits, 5000)\n\n        sorted_p = sorted_logits / sorted_logits.sum(axis=1).reshape(-1, 1)\n        cumsum_p = np.cumsum(sorted_p, axis=1)\n        # index = index[0]\n        # sorted_logits = sorted_logits[0]\n        # cumsum_p = cumsum_p[0] \n        top_p_num = (cumsum_p < top_p).sum(axis=1) + 1\n\n        # Get the corresponding probs and indices\n        probs = sorted_logits\n        for i, top_p in enumerate(top_p_num):\n            probs[i][top_p:] = 0\n        # probs = sorted_logits[:top_p_num]\n        p_args = index\n        # p_args = index[:top_p_num]\n        p = probs / probs.sum(axis=1).reshape(-1, 1)\n        # if top_p is set to 1.0, use top_k sampling\n    else:\n        # Get the corresponding probs and indices\n        if use_pynative:\n            probs, p_args = P.TopK(sorted=True)(logits, top_k_num)\n            probs = probs.asnumpy()\n            p_args = p_args.asnumpy()\n        else:\n            probs, p_args = topk_fun(logits, top_k_num)\n        # probs = probs[0]\n        # p_args = p_args[0]\n        # Avoid rounding error\n        # if sum(probs) == 0:\n        #     probs = np.array([1 / top_k_num for _ in range(top_k_num)])\n        p = probs / probs.sum(axis=1).reshape(-1, 1)\n    return p, p_args\n\n\ndef generate_increment(model, origin_inputs, config, tokenizer, verbose=False):\n    \"\"\"\n    Text generation for incremental inference\n\n    Inputs:\n        model: the model for inferencing\n        origin_inputs: the original inputs based on which the model will continue writing\n        config: inference configurations\n\n    Returns:\n        outputs: the ids for the generated text\n    \"\"\"\n    # Get configurations for inference\n    frequency_penalty = config.frequency_penalty\n    presence_penalty = config.presence_penalty\n    top_p = config.top_p\n    top_k_num = config.top_k_num\n    temperature = config.temperature\n    max_generate_length = config.max_generate_length\n    seq_length = config.seq_length\n    end_token = config.end_token\n    use_pynative = config.use_pynative_op\n    vocab_embedding_vocab_size = (config.vocab_size // 1024 + 1) * 1024\n\n    batch_size, valid_length = origin_inputs.shape\n    # Init outputs with original inputs\n    # outputs = deepcopy(origin_inputs)\n    outputs = [[origin_inputs[i][j] for j in range(valid_length)] for i in range(batch_size)]\n    output_codes = [\"\" for _ in range(batch_size)]\n    # If target length exceeds seq_length, use seq_length instead\n    target_length = valid_length + max_generate_length\n    if verbose:\n        print(\"target_length was \", valid_length, \" + \", max_generate_length, \" = \", target_length)\n    target_length = seq_length if target_length > seq_length else target_length\n    if verbose:\n        print(\"target_length is \", target_length)\n    gen_end = [False for _ in range(batch_size)]\n    allow_comments_next = [True for _ in range(batch_size)]\n    allow_comments = [True for _ in range(batch_size)]\n\n    # A list of the frequency of each token\n    frequency_list = np.zeros((batch_size, vocab_embedding_vocab_size))\n    pad_length = seq_length - origin_inputs.shape[-1]\n    # Pad original inputs to seq_length\n    input_ids = np.pad(origin_inputs, ((0, 0), (0, pad_length)),\n                       'constant', constant_values=(end_token, end_token))\n    if verbose:\n        print(\"input_ids is \", input_ids)\n\n    # Indicate the exact token position\n    current_index = valid_length - 1 if valid_length - 1 > 0 else 0\n    batch_valid_length = Tensor(np.array([current_index for _ in range(batch_size)]), mstype.int32)\n    current_index = Tensor(np.array([current_index + i * seq_length for i in range(batch_size)]), mstype.int32)\n    # For first graph, not_init should be false\n    init_true = Tensor([True], mstype.bool_)\n    init_false = Tensor([False], mstype.bool_)\n    init = init_false\n    # Claim the first graph\n    model.predict_network.add_flags_recursive(is_first_iteration=True)\n    # Call a single inference with input size of (bs, seq_length)\n    logits = model.predict(Tensor(input_ids, mstype.int32),\n                           current_index, init, batch_valid_length)\n\n    # Claim the second graph and set not_init to true\n    init = init_true\n    model.predict_network.add_flags_recursive(is_first_iteration=False)\n\n    comments_index = [2, ]  # '#': 2, ' #': 1303\n    newline_index = [198, ]  # '\\n': 198\n    # A single loop generates one token, loop until reaching target seq_length or generating eod token\n    while valid_length < target_length:\n        if all(gen_end):\n            break\n        # Reshape the output logits\n        logits = logits.asnumpy()\n        log_probs = logits.reshape(batch_size, vocab_embedding_vocab_size)\n\n        # Get the revised log_probs considering frequency and presence penalty to eliminate duplicate in generated results\n        log_probs_revised = log_probs - frequency_list * \\\n                            frequency_penalty - (frequency_list > 0) * presence_penalty\n        log_probs_revised /= temperature\n\n        bad_words_index = [[] for _ in range(batch_size)]\n        # for i in range(batch_size):\n        #     if not allow_comments[i]:\n        #         bad_words_index[i] += comments_index\n\n        p, p_args = sampler(log_probs_revised, top_p, top_k_num, use_pynative, bad_words_index=bad_words_index)\n        # Random select a token as final output for this round\n        target_index = np.zeros(batch_size, dtype=np.int64)\n        for i in range(batch_size):\n            target_index[i] = np.random.choice(len(p[i]), p=p[i])\n\n        if verbose:\n            # print(\"=== log_probs_revised is\", log_probs_revised)\n            print(\"=== p:\", p, \"shape:\", p.shape)\n            print(\"=== p_args:\", p_args, \"shape\", p_args.shape)\n            print(\n                f\"=== Length {valid_length}, target index {target_index}, chosen token {p_args[np.arange(batch_size), target_index]}, generation end status {gen_end}.\")\n\n        # Update frequency list\n        target = p_args[np.arange(batch_size), target_index]\n        frequency_list[np.arange(batch_size), target] = frequency_list[np.arange(batch_size), target] + 1\n\n        batch_valid_length = Tensor(np.array([valid_length for _ in range(batch_size)]), mstype.int32)\n        current_index = Tensor(np.arange(batch_size, dtype=np.int32), mstype.int32)\n        input_id = Tensor([target], mstype.int32).reshape(-1, 1)\n        for i in range(batch_size):\n            if not gen_end[i]:\n                output_codes[i] += tokenizer.decode_code([int(target[i])])[0]\n                if is_code_generation_finished(output_codes[i]):\n                    gen_end[i] = True\n                    output_codes[i] = truncate_text(output_codes[i])\n                if output_codes[i].endswith('#'):\n                    allow_comments_next[i] = False\n                elif output_codes[i].endswith('\\n'):\n                    allow_comments[i] = allow_comments_next[i]\n                    allow_comments_next[i] = True\n            outputs[i].append(int(target[i]))\n\n        # Call a single inference with input size of (bs, 1)\n        logits = model.predict(input_id, current_index,\n                               init, batch_valid_length)\n        valid_length += 1\n    return output_codes\n"
  },
  {
    "path": "codegeex/mindspore/src/metrics.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nEval metrics\n\"\"\"\n\nimport math\n\nfrom mindspore import context\nfrom mindspore.communication.management import get_rank, get_group_size\nfrom mindspore.nn.metrics import Metric\n\n\nclass PPLMetric(Metric):\n    \"\"\"\n    Ppl metric\n    \"\"\"\n\n    def __init__(self, data_length):\n        super(PPLMetric, self).__init__()\n        self.clear()\n        self.data_length = data_length\n        pipeline_stages = context.get_auto_parallel_context(\"pipeline_stages\")\n        per_stage_device_num = get_group_size() // pipeline_stages\n        stage_id = get_rank() // per_stage_device_num\n        self.is_last_stage = (stage_id == pipeline_stages - 1)\n\n    def clear(self):\n        \"\"\"Clear the internal evaluation result.\"\"\"\n        self.PPL = []\n        self.tokens_count = 0\n\n    def update(self, *inputs):  # inputs\n        \"\"\"Update list of ppl\"\"\"\n        if not self.is_last_stage:\n            return\n        logits = inputs[0].asnumpy().flatten().tolist()  # logits\n        self.PPL.append(logits[0] * self.data_length)\n        self.tokens_count += 1\n\n    def eval(self):\n        if not self.is_last_stage:\n            return 0\n        if self.tokens_count == 0:\n            print(\"Warning: tokens_count is 0\")\n            return 0\n        val_loss = sum(self.PPL) / (self.tokens_count * self.data_length)\n        ppl = math.exp(min(20, val_loss))\n        # print(\"====\" * 20 + \" ppl  end\")\n        # print(\"====\" * 20 + \" ppl: {}\".format(ppl))\n        # return ppl\n        return val_loss\n\n\nclass ValidationLoss(Metric):\n    def __init__(self, data_length):\n        super(ValidationLoss, self).__init__()\n        self.clear()\n        self.data_length = data_length\n        pipeline_stages = context.get_auto_parallel_context(\"pipeline_stages\")\n        per_stage_device_num = get_group_size() // pipeline_stages\n        stage_id = get_rank() // per_stage_device_num\n        self.is_last_stage = (stage_id == pipeline_stages - 1)\n\n    def clear(self):\n        \"\"\"Clear the internal evaluation result.\"\"\"\n        self.metric = []\n        self.tokens_count = 0\n\n    def update(self, *inputs):  # inputs\n        \"\"\"Update list of ppl\"\"\"\n        # logits = inputs[0].asnumpy()\n        # if self.rank % 8 == 0:\n        #     print(\"====\" * 2 + \" logits: {}\".format(logits), flush=True)\n        # self.metric.append(logits)\n        if not self.is_last_stage:\n            return\n        logits = inputs[0].asnumpy().flatten().tolist()  # logits\n        self.metric.append(logits[0] * self.data_length)\n        self.tokens_count += 1\n\n    def eval(self):\n        if not self.is_last_stage == 0:\n            return 0\n        val_loss = sum(self.metric) / (self.tokens_count * self.data_length)\n        return val_loss\n"
  },
  {
    "path": "codegeex/mindspore/src/pangu_alpha.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"PanguAlpha model\"\"\"\nimport copy\nimport os\n\nimport mindspore.common.dtype as mstype\nimport mindspore.nn as nn\nimport numpy as np\nfrom mindspore import Tensor, Parameter\nfrom mindspore.common.initializer import initializer\nfrom mindspore.nn import Cell\n# from mindspore.parallel.nn.layers import _LayerNorm\nfrom mindspore.nn.transformer.layers import _Dropout, _LayerNorm\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\nfrom mindspore.parallel.nn import MoEConfig\nfrom mindspore.parallel.nn.transformer import (\n    VocabEmbedding,\n    TransformerEncoder,\n    TransformerEncoderLayer,\n    AttentionMask,\n)\n\n\nclass EmbeddingLayer(nn.Cell):\n    r\"\"\"Embedding layer of the PanGUAlpha Model\"\"\"\n\n    def __init__(self, config):\n        super(EmbeddingLayer, self).__init__()\n        # Only for the pipeline mode, the embedding needs to be row sliced.\n        dp = config.parallel_config.embedding_dp_mp_config.data_parallel\n        mp = config.parallel_config.embedding_dp_mp_config.model_parallel\n        self.word_embedding = VocabEmbedding(\n            vocab_size=(config.vocab_size // 1024 + 1) * 1024,\n            embedding_size=config.hidden_size,\n            param_init=initializer(\n                \"normal\",\n                [(config.vocab_size // 1024 + 1) * 1024, config.hidden_size],\n                # dtype=config.param_init_type,\n                dtype=mstype.float32,\n            ),\n            parallel_config=config.parallel_config.embedding_dp_mp_config,\n        )\n        self.word_embedding.gather.shard(((mp, 1), (dp, 1)))\n        # self.word_embedding.embedding_table.parallel_optimizer = True\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        copied_parallel_config.vocab_emb_dp = True\n        self.position_embedding = VocabEmbedding(\n            vocab_size=config.seq_length,\n            embedding_size=config.hidden_size,\n            param_init=initializer(\n                \"normal\",\n                [config.seq_length, config.hidden_size],\n                # dtype=config.param_init_type,\n                dtype=mstype.float32,\n            ),\n            parallel_config=copied_parallel_config.embedding_dp_mp_config,\n        )\n        self.split = P.Split(1, 2).shard(\n            ((config.parallel_config.data_parallel, 1, 1),)\n        )\n        self.print = P.Print()\n        self.add = P.Add().shard(\n            (\n                (config.parallel_config.data_parallel, 1, 1),\n                (config.parallel_config.data_parallel, 1, 1),\n            )\n        )\n        # self.dropout = nn.Dropout(1 - config.dropout_rate)\n        self.dropout = _Dropout(1 - config.dropout_rate)\n        self.dropout.shard(((config.parallel_config.data_parallel, 1, 1),))\n        # self.dropout.dropout.shard(\n        #    ((config.parallel_config.data_parallel, 1, 1),)\n        # )\n        self.is_first_iteration = True\n        self.use_past = config.use_past\n        self.batch_size = config.batch_size\n\n    def construct(\n            self, input_ids, input_position, init_reset, batch_valid_length\n    ):\n        word_embedding, word_table = self.word_embedding(input_ids)\n        if self.use_past and not self.is_first_iteration:\n            _, seq_length = F.shape(input_ids)\n            # self.print(\"==batch_valid_length is: \", batch_valid_length, \", transform into: \", self.batch_size, \"*\", seq_length)\n            input_position = batch_valid_length.view(self.batch_size, seq_length)\n        position_embedding, _ = self.position_embedding(input_position)\n        embed = self.add(word_embedding, position_embedding)\n        embed = self.dropout(embed)\n        return embed, word_table\n\n    def get_word_embedding_weight(self):\n        return self.word_embedding.embedding_table\n\n\nclass QueryLayer(TransformerEncoderLayer):\n    r\"\"\"Query Layer at the final layer.\"\"\"\n\n    def __init__(\n            self,\n            batch_size,\n            hidden_size,\n            ffn_hidden_size,\n            num_heads,\n            seq_length,\n            attention_dropout_rate=0.1,\n            hidden_dropout_rate=0.1,\n            post_layernorm_residual=False,\n            param_init_type=mstype.float32,\n            hidden_act=\"fast_gelu\",\n            use_past=False,\n            parallel_config=None,\n            softmax_compute_type=mstype.float32,\n    ):\n        super(QueryLayer, self).__init__(\n            batch_size=batch_size,\n            hidden_size=hidden_size,\n            ffn_hidden_size=ffn_hidden_size,\n            num_heads=num_heads,\n            seq_length=seq_length,\n            attention_dropout_rate=attention_dropout_rate,\n            hidden_dropout_rate=hidden_dropout_rate,\n            post_layernorm_residual=post_layernorm_residual,\n            param_init_type=param_init_type,\n            hidden_act=hidden_act,\n            use_past=use_past,\n            parallel_config=parallel_config.dp_mp_config,\n            softmax_compute_type=softmax_compute_type,\n        )\n\n    def construct(\n            self,\n            x,\n            query_vector,\n            input_mask,\n            init_reset=True,\n            batch_valid_length=None,\n    ):\n        r\"\"\"\n        The forward process of the block.\n        \"\"\"\n        # [bs * seq_length, embedding_size]\n        input_x = self.layernorm1(x)\n        input_x = F.cast(input_x, self.dtype)\n\n        # indicate whether reset saved states\n        key_reset = None\n        value_reset = None\n\n        if self.use_past:\n            # reset states, init_reset True for reuse and False for reset\n            key_reset = self.assign(\n                self.key_past,\n                self.mul(self.key_past, F.cast(init_reset, self.dtype)),\n            )\n            value_reset = self.assign(\n                self.value_past,\n                self.mul(self.value_past, F.cast(init_reset, self.dtype)),\n            )\n            # add dependency for desired execution order\n            input_x = F.depend(input_x, key_reset)\n            input_x = F.depend(input_x, value_reset)\n\n        attention, layer_present = self.attention(\n            query_vector,\n            input_x,\n            input_x,\n            input_mask,\n            self.key_past,\n            self.value_past,\n            batch_valid_length,\n        )\n        # For post-layernorm the inputs for residual path are output of self-attention and output of layernorm\n        if self.post_layernorm_residual:\n            x = self.add(input_x, attention)\n        # For pre-layernorm the inputs for residual path are output of self-attention and input of this layer\n        else:\n            x = self.add(x, attention)\n\n        output_x = self.layernorm2(x)\n        output_x = F.cast(output_x, self.dtype)\n        mlp_logit = self.output(output_x)\n\n        value_update = None\n        key_update = None\n        if self.use_past:\n            # current key and value\n            key_present, value_present = layer_present\n            # update key and value calculated this step\n            key_update = self.assign(self.key_past, key_present)\n            value_update = self.assign(self.value_past, value_present)\n            # add dependency for desired execution order\n            key_update = F.depend(key_update, key_reset)\n            value_update = F.depend(value_update, value_reset)\n\n        # add dependency for desired execution order\n        mlp_logit = F.depend(mlp_logit, value_update)\n        mlp_logit = F.depend(mlp_logit, key_update)\n\n        if self.post_layernorm_residual:\n            output = self.add(output_x, mlp_logit)\n        else:\n            output = self.add(x, mlp_logit)\n        return output, layer_present\n\n\nclass PanGuHead(Cell):\n    \"\"\"\n    Head to get the logits of each token in the vocab\n    Args:\n        config(): the config of network\n    Inputs:\n        state: the output of the backbone\n        embedding_table: the embedding table of the vocabulary\n    Returns:\n        logits: Tensor, the logits of the corresponding inputs\n    \"\"\"\n\n    def __init__(\n            self, hidden_size, compute_type=mstype.float16, parallel_config=None\n    ):\n        super(PanGuHead, self).__init__()\n        if parallel_config.vocab_emb_dp:\n            self.matmul = P.MatMul(transpose_b=True).shard(\n                ((parallel_config.data_parallel, 1), (1, 1))\n            )\n        else:\n            print(\"====vocab_emb_dp is false\", flush=True)\n            self.matmul = P.MatMul(transpose_b=True).shard(\n                (\n                    (parallel_config.data_parallel, 1),\n                    (parallel_config.model_parallel, 1),\n                )\n            )\n        self.hidden_size = hidden_size\n        self.dtype = compute_type\n        self.cast = P.Cast()\n\n    def construct(self, state, embed):\n        state = P.Reshape()(state, (-1, self.hidden_size))\n        # output logits over vocabulary [bs*seq_length, vocab_size]\n        logits = self.matmul(\n            self.cast(state, self.dtype), self.cast(embed, self.dtype)\n        )\n        return logits\n\n\ndef set_parallel_configure_for_layer(\n        network, layer_id, offset, parallel_config, layers\n):\n    r\"\"\"\n        Default setting for the pipeline is: `(layer_id + offset) // (layers / pipeline_stage)`.\n\n\n        Args:\n            network(Cell) - Represents the transformer block\n            layer_id(int) - Means the layer index for the current module, counts from zero.\n            offset(int) - Means the layer_index needs a offset, if there are other modules in the net.\n            layers(int) - The total layers used for the model.\n    \"\"\"\n    # Used for the pipeline's stages setting\n    # As the final layer is not included here, so we need to manually add here.\n    # original:  if set two stages, layers on two stages will be [15, 16+1]\n    # with 1 added, the layers on two stages will be [16, 15 +1]\n    pp_dis = max(int((layers + 1) / parallel_config.pipeline_stage), 1)\n    # the pipeline stage must be in [0, parallel_config.pipeline_stage - 1]\n    pp_id = min((layer_id + offset) // pp_dis, parallel_config.pipeline_stage - 1)\n    network.pipeline_stage = pp_id\n    print(f\"pipeline stage id is {pp_id}\", flush=True)\n\n    # Used for optimizer's fusion tag\n    dis = max(int((layers + 1) / parallel_config.gradient_aggregation_group), 1)\n    if parallel_config.pipeline_stage > 1:\n        # we give the fusion in pipeline mode a fixed value, otherwise the performance may become worse.\n        network.set_comm_fusion(2)\n    else:\n        network.set_comm_fusion(int((layer_id + offset) / dis) + 1)\n    # Used for enabling recomputation of the block\n    if parallel_config.recompute:\n        network.recompute(recompute_slice_activation=True)\n\n\nclass PanguAlpha_Model(Cell):\n    r\"\"\"The base backbone of the PanGuAlpha model\"\"\"\n\n    def __init__(self, config):\n        super(PanguAlpha_Model, self).__init__()\n        self.is_pipeline = config.parallel_config.pipeline_stage > 1\n        self.embedding = EmbeddingLayer(config)\n        self.config = config\n        self.layernorm = _LayerNorm((config.hidden_size,)).to_float(\n            mstype.float32\n        )\n        if config.parallel_config.pipeline_stage > 1:\n            self.layernorm.set_comm_fusion(2)\n        else:\n            self.layernorm.set_comm_fusion(\n                config.parallel_config.gradient_aggregation_group\n            )\n        self.layernorm.shard(((config.parallel_config.data_parallel, 1),))\n        self.layernorm.pipeline_stage = (\n                config.parallel_config.pipeline_stage - 1\n        )\n        # Configure the shard configure of the Embedding layer\n        self.embedding.pipeline_stage = 0\n        self.num_layers = config.num_layers\n        if config.use_moe:\n            moe_config = MoEConfig(\n                expert_num=config.parallel_config.data_parallel\n                           * config.per_dp_dim_expert_num\n            )\n        else:\n            moe_config = MoEConfig(expert_num=1)\n        # The shard setting of Transformer is set within the class StackedTransformer\n        self.blocks = TransformerEncoder(num_layers=config.num_layers - 1,\n                                         batch_size=config.batch_size,\n                                         hidden_size=config.hidden_size,\n                                         ffn_hidden_size=config.ffn_hidden_size,\n                                         num_heads=config.num_heads,\n                                         seq_length=config.seq_length,\n                                         attention_dropout_rate=config.dropout_rate,\n                                         hidden_dropout_rate=config.dropout_rate,\n                                         lambda_func=set_parallel_configure_for_layer,\n                                         hidden_act=\"fast_gelu\",\n                                         param_init_type=config.param_init_type,\n                                         use_past=config.use_past,\n                                         parallel_config=config.parallel_config,\n                                         moe_config=moe_config,\n                                         softmax_compute_type=config.softmax_compute_type).blocks\n        for block in self.blocks:\n            block.attention.dense1.bias.parallel_optimizer = False\n            block.attention.dense2.bias.parallel_optimizer = False\n            block.attention.dense3.bias.parallel_optimizer = False\n            block.output.mapping.bias.parallel_optimizer = False\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        copied_parallel_config.vocab_emb_dp = True\n        self.top_query_embedding = VocabEmbedding(vocab_size=config.seq_length,\n                                                  embedding_size=config.hidden_size,\n                                                  param_init=initializer(\"normal\",\n                                                                         [config.seq_length, config.hidden_size],\n                                                                         dtype=mstype.float32),\n                                                  # dtype=config.param_init_type),\n                                                  parallel_config=copied_parallel_config.embedding_dp_mp_config)\n        self.top_query_embedding.pipeline_stage = config.parallel_config.pipeline_stage - 1\n        if config.parallel_config.pipeline_stage > 1:\n            self.top_query_embedding.set_comm_fusion(2)\n        else:\n            self.top_query_embedding.set_comm_fusion(config.parallel_config.gradient_aggregation_group)\n\n        self.top_query_layer = QueryLayer(batch_size=config.batch_size,\n                                          hidden_size=config.hidden_size,\n                                          ffn_hidden_size=config.ffn_hidden_size,\n                                          num_heads=config.num_heads,\n                                          seq_length=config.seq_length,\n                                          attention_dropout_rate=config.dropout_rate,\n                                          hidden_dropout_rate=config.dropout_rate,\n                                          hidden_act=config.hidden_act,\n                                          param_init_type=config.param_init_type,\n                                          use_past=config.use_past,\n                                          parallel_config=config.parallel_config)\n        self.top_query_layer.attention.dense1.bias.parallel_optimizer = False\n        self.top_query_layer.attention.dense2.bias.parallel_optimizer = False\n        self.top_query_layer.attention.dense3.bias.parallel_optimizer = False\n        self.top_query_layer.output.mapping.bias.parallel_optimizer = False\n        if config.parallel_config.recompute:\n            self.top_query_layer.recompute()\n        self.top_query_layer.set_comm_fusion(config.parallel_config.gradient_aggregation_group)\n        self.top_query_layer.pipeline_stage = config.parallel_config.pipeline_stage - 1\n\n        self.dtype = mstype.float16\n\n        # if config.load_ckpt_path:\n        #     self.load_embedding_from_ckpt(config.load_ckpt_path)\n\n    def construct(self, input_ids,\n                  input_position,\n                  encoder_masks,\n                  init_reset=True,\n                  batch_valid_length=None):\n        r\"\"\"forward pass of the model\"\"\"\n        embed, word_table = self.embedding(input_ids, input_position, init_reset, batch_valid_length)\n        hidden_state = P.Cast()(embed, self.dtype)\n        if init_reset is False:\n            hidden_state = self.reshape_to_2d(hidden_state)\n        # encoder_mask = self.create_encoder_mask(encoder_masks)\n        if self.blocks is not None:\n            for i in range(self.num_layers - 1):\n                hidden_state, _ = self.blocks[i](hidden_state, encoder_masks, init_reset, batch_valid_length)\n        if self.is_pipeline:\n            top_query_hidden_states, _ = self.top_query_embedding(input_position)\n            top_query_hidden_states = self.reshape_to_2d(top_query_hidden_states)\n            encoder_output, _ = self.top_query_layer(hidden_state, top_query_hidden_states,\n                                                     encoder_masks, init_reset, batch_valid_length)\n            encoder_output = self.layernorm(encoder_output)\n        else:\n            hidden_state = self.reshape_to_2d(hidden_state)\n            encoder_output = self.layernorm(hidden_state)\n            encoder_output = P.Cast()(encoder_output, self.dtype)\n            top_query_hidden_states, _ = self.top_query_embedding(input_position)\n            top_query_hidden_states = self.reshape_to_2d(top_query_hidden_states)\n            encoder_output, _ = self.top_query_layer(encoder_output, top_query_hidden_states,\n                                                     encoder_masks, init_reset, batch_valid_length)\n\n        return encoder_output, word_table\n\n    def reshape_to_2d(self, x):\n        r\"\"\"reshape nd tensor to 2d, if n <= 2, keep original shape.\"\"\"\n        shape = F.shape(x)\n        if len(shape) <= 2:\n            return x\n        x = F.reshape(x, (-1, shape[-1]))\n        return x\n\n    def load_embedding_from_ckpt(self, load_ckpt_path):\n        r\"\"\"load the weights from the checkpoint\"\"\"\n\n        def load_param(path):\n            if os.path.exists(path):\n                p_table = np.load(path)\n                table_param = Tensor(p_table, mstype.float32)\n            else:\n                raise ValueError(\n                    f\"{path} file not exits, \"\n                    f\"please check whether embedding file exit.\"\n                )\n            return table_param\n\n        # three embedding needed to be loaded\n        # Loading the embedding table from the ckpt path:\n        position_embedding_path = os.path.join(load_ckpt_path, 'position_embedding.npy')\n        word_embedding_path = os.path.join(load_ckpt_path, 'word_embedding.npy')\n        top_query_embedding_path = os.path.join(load_ckpt_path, 'top_query_embedding.npy')\n        self.embedding.word_embedding.embedding_table = Parameter(initializer(load_param(word_embedding_path),\n                                                                              [self.config.vocab_size,\n                                                                               self.config.hidden_size]),\n                                                                  name='word_embedding_table', parallel_optimizer=False)\n        self.embedding.position_embedding.embedding_table = Parameter(initializer(load_param(position_embedding_path),\n                                                                                  [self.config.seq_length,\n                                                                                   self.config.hidden_size]),\n                                                                      name='position_embedding_table',\n                                                                      parallel_optimizer=False)\n        self.top_query_embedding.embedding_table = Parameter(initializer(load_param(top_query_embedding_path),\n                                                                         [self.config.seq_length,\n                                                                          self.config.hidden_size]),\n                                                             name='query_embedding_table', parallel_optimizer=False)\n\n\nclass PanguAlphaModel(nn.Cell):\n    \"\"\"\n    The PanguAlpha network consisting of two parts the backbone and the head\n    Args:\n        config(PanguAlphaConfig): the config of network\n    Inputs:\n        input_ids: the tokenized inputs\n        input_mask: the mask indicating whether each position is a valid input\n        past: the previous feature map\n    Returns:\n        logits: Tensor: the logits of the corresponding inputs with shape (batch_size, seq_length, vocab_size)\n    \"\"\"\n\n    def __init__(self, config):\n        super(PanguAlphaModel, self).__init__()\n        # Network head to get logits over vocabulary\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        if copied_parallel_config.pipeline_stage > 1:\n            copied_parallel_config.vocab_emb_dp = False\n        self.head = PanGuHead(\n            hidden_size=config.hidden_size,\n            parallel_config=copied_parallel_config,\n        )\n        self.head.pipeline_stage = config.parallel_config.pipeline_stage - 1\n        self.backbone = PanguAlpha_Model(config)\n        self.backbone.embedding.word_embedding.embedding_table.add_pipeline_stage(self.head.pipeline_stage)\n\n    def construct(self, input_ids, input_position, attention_mask,\n                  init_reset=True, batch_valid_length=None):\n        output_states, word_table = self.backbone(input_ids, input_position, attention_mask,\n                                                  init_reset, batch_valid_length)\n        logits = self.head(output_states, word_table)\n        return logits\n\n\nclass PanGUAlphaWithLoss(Cell):\n    \"\"\"\n    PanguAlpha training loss for generation.\n    Args:\n        config(PanGUConfig)\n    Inputs:\n        input_ids: the tokenized inputs\n        past: the previous feature map\n    Returns:\n        output: Tensor, the loss of the network\n    \"\"\"\n\n    def __init__(self, config, network, loss):\n        super(PanGUAlphaWithLoss, self).__init__(auto_prefix=False)\n        self.batch_size = config.batch_size\n        self.seq_length = config.seq_length\n        dp = config.parallel_config.data_parallel\n        self.network = network\n        self.eod_token = config.eod_token\n        self.loss = loss\n\n        self.slice = P.StridedSlice().shard(((dp, 1),))\n        self.not_equal = P.NotEqual().shard(((dp, 1), ()))\n        # self.batch_size = config.batch_size\n        self.len = config.seq_length\n        self.slice2 = P.StridedSlice().shard(((dp, 1, 1),))\n        self.micro_batch_step = 1\n        self.print = P.Print()\n        if config.parallel_config.pipeline_stage > 1:\n            self.micro_batch_step = config.parallel_config.micro_batch_num\n\n    def construct(self, input_ids, input_position=None, attention_mask=None):\n        r\"\"\"Forward process of the pangu alpha model\"\"\"\n        tokens = self.slice(input_ids, (0, 0), (self.batch_size, -1), (1, 1))\n        # P.Print()(\"==net tokens is:\", tokens)\n        input_position = self.slice(input_position, (0, 0), (self.batch_size, self.len), (1, 1))\n        decoder_attention_masks = self.slice2(attention_mask, (0, 0, 0), (self.batch_size, self.len, self.len),\n                                              (1, 1, 1))\n        input_mask = F.cast(self.not_equal(tokens, self.eod_token), mstype.float32)\n        logits = self.network(tokens, input_position, decoder_attention_masks)\n        # P.Print()(\"==logits_is:\", logits, \",shape is:\", logits.shape)\n        # Get label corresponding to input tokens\n        labels = self.slice(input_ids, (0, 1), (self.batch_size, self.len + 1), (1, 1))\n        labels = P.Reshape()(labels, (-1,))\n        input_mask = P.Reshape()(input_mask, (-1,))\n        # P.Print()(\"==input_mask is:\", input_mask)\n        output = self.loss(logits, labels, input_mask)\n        # P.Print()(\"==net output is:\", output)\n        return output\n\n\nclass EvalNet(nn.Cell):\n    \"\"\"\n    PanguAlpha evaluation net\n    Args:\n        backbone: backbone network of PanguAlpha\n        generate: enable generate mode\n    Inputs:\n        input_ids: the tokenized inpus\n        current_index: the index of current token\n        init_reset: whether reset saved states\n    Returns:\n        outputs: Tensor, corresponding output for different tasks\n    \"\"\"\n\n    def __init__(self, backbone, generate=False, pad_token=6, seq_length=2048):\n        super(EvalNet, self).__init__(auto_prefix=False)\n        self.backbone = backbone\n        self.pad_token = pad_token\n        self.argmax = P.Argmax()\n        self.generate = generate\n        self.topk = P.TopK(sorted=True).shard(((1, 1),))\n        self.gather = P.Gather().shard(((1, 1), (1,)))\n        self.log_softmax = P.LogSoftmax().shard(((1, 1, 1),))\n        self.get_attention_mask = AttentionMask(seq_length)\n        self.expand = P.ExpandDims().shard(((1, 1, 1),))\n        self.all_ones_attention_mask = Tensor(np.ones((1, 1, seq_length)), mstype.float32)\n        self.not_equal = P.NotEqual().shard(((1, 1), ()))\n\n    def construct(self, input_ids, current_index, init_reset=True, batch_valid_length=None):\n        \"\"\"evaluation net\"\"\"\n        # input_mask = F.cast(F.not_equal(input_ids, self.pad_token), mstype.float32)\n        input_mask = F.cast(self.not_equal(input_ids, self.pad_token), mstype.float32)\n        bs, seq_length = F.shape(input_ids)\n        if self.is_first_iteration is False:\n            attention_mask = P.Tile()(self.all_ones_attention_mask, (bs, 1, 1))\n        else:\n            attention_mask = self.get_attention_mask(input_mask)\n        input_position = F.tuple_to_array(F.make_range(seq_length))\n        input_position = P.Tile()(input_position, (bs, 1))\n        logits = self.backbone(input_ids, input_position, attention_mask,\n                               init_reset, batch_valid_length)\n        index = current_index.view(-1, )\n        # P.Print()(\"==logits_is:\", logits, \",shape is:\", logits.shape)\n        # P.Print()(\"==index_is:\", index, \",shape is:\", index.shape)\n        logits = self.gather(logits, index, 0)\n        logits = logits.view(bs, 1, -1)\n        log_probs = self.log_softmax(logits)\n        return log_probs\n\n\nclass LogitsNet(nn.Cell):\n    \"\"\"\n    PanguAlpha evaluation net\n    Args:\n        backbone: backbone network of PanguAlpha\n        generate: enable generate mode\n    Inputs:\n        input_ids: the tokenized inpus\n        init_reset: whether reset saved states\n    Returns:\n        outputs: Tensor, corresponding output for different tasks\n    \"\"\"\n\n    def __init__(self, backbone, generate=False, pad_token=6, seq_length=2048):\n        super(LogitsNet, self).__init__(auto_prefix=False)\n        self.backbone = backbone\n        self.pad_token = pad_token\n        self.argmax = P.Argmax()\n        self.generate = generate\n        self.topk = P.TopK(sorted=True).shard(((1, 1),))\n        self.gather = P.Gather().shard(((1, 1), (1,)))\n        self.log_softmax = P.LogSoftmax().shard(((1, 1, 1),))\n        self.get_attention_mask = AttentionMask(seq_length)\n        self.expand = P.ExpandDims().shard(((1, 1, 1),))\n        self.all_ones_attention_mask = Tensor(np.ones((1, 1, seq_length)), mstype.float32)\n        self.not_equal = P.NotEqual().shard(((1, 1), ()))\n\n    def construct(self, input_ids, init_reset=True, batch_valid_length=None, attention_mask=None):\n        \"\"\"evaluation net\"\"\"\n        # input_mask = F.cast(F.not_equal(input_ids, self.pad_token), mstype.float32)\n        input_mask = F.cast(self.not_equal(input_ids, self.pad_token), mstype.float32)\n        bs, seq_length = F.shape(input_ids)\n        if attention_mask is None:\n            if self.is_first_iteration is False:\n                attention_mask = P.Tile()(self.all_ones_attention_mask, (bs, 1, 1))\n            else:\n                attention_mask = self.get_attention_mask(input_mask)\n        input_position = F.tuple_to_array(F.make_range(seq_length))\n        input_position = P.Tile()(input_position, (bs, 1))\n        logits = self.backbone(input_ids, input_position, attention_mask,\n                               init_reset, batch_valid_length)\n\n        return logits\n\n\nclass PanGUAlphaWithFinetuneLoss(Cell):\n    \"\"\"\n    PanguAlpha training loss for generation.\n    Args:\n        config(PanGUConfig)\n    Inputs:\n        input_ids: the tokenized inputs\n        past: the previous feature map\n    Returns:\n        output: Tensor, the loss of the network\n    \"\"\"\n\n    def __init__(self, config, network, loss):\n        super(PanGUAlphaWithFinetuneLoss, self).__init__(auto_prefix=False)\n        self.batch_size = config.batch_size\n        self.seq_length = config.seq_length\n        dp = config.parallel_config.data_parallel\n        self.network = network\n        self.eod_token = config.eod_token\n        self.loss = loss\n\n        self.slice = P.StridedSlice().shard(((dp, 1),))\n        self.not_equal = P.NotEqual().shard(((dp, 1), ()))\n        # self.batch_size = config.batch_size\n        self.len = config.seq_length\n        self.slice2 = P.StridedSlice().shard(((dp, 1, 1),))\n        self.micro_batch_step = 1\n        self.print = P.Print()\n        if config.parallel_config.pipeline_stage > 1:\n            self.micro_batch_step = config.parallel_config.micro_batch_num\n\n    def construct(self, input_ids, loss_mask, input_position, attention_mask):\n        r\"\"\"Forward process of the pangu alpha model\"\"\"\n        tokens = self.slice(input_ids, (0, 0), (self.batch_size, -1), (1, 1))\n        # P.Print()(\"==net tokens is:\", tokens)\n        input_position = self.slice(input_position, (0, 0), (self.batch_size, self.len), (1, 1))\n        decoder_attention_masks = self.slice2(attention_mask, (0, 0, 0), (self.batch_size, self.len, self.len),\n                                              (1, 1, 1))\n        input_mask = F.cast(self.not_equal(tokens, self.eod_token), mstype.float32)\n        logits = self.network(tokens, input_position, decoder_attention_masks)\n        # P.Print()(\"===logits: \", logits, \", shape: \", logits.shape)\n        # Get label corresponding to input tokens\n        labels = self.slice(input_ids, (0, 1), (self.batch_size, self.len + 1), (1, 1))\n        labels = P.Reshape()(labels, (-1,))\n        input_mask = P.Reshape()(loss_mask, (-1,))\n        # P.Print()(\"===labels: \", labels, \", shape: \", labels.shape)\n        # input_mask = P.Reshape()(input_mask, (-1,))\n        # P.Print()(\"===input_mask: \", input_mask, \", shape: \", input_mask.shape)\n        output = self.loss(logits, labels, input_mask)\n        # P.Print()(\"==net output is:\", output)\n        return output\n"
  },
  {
    "path": "codegeex/mindspore/src/pangu_alpha_config.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nnetwork config setting\n\"\"\"\nimport mindspore.common.dtype as mstype\n\n\nclass PanguAlphaConfig:\n    \"\"\"\n    PanGUConfig config class which defines the model size\n    \"\"\"\n\n    def __init__(self,\n                 batch_size=32,\n                 seq_length=2048,\n                 vocab_size=40000,\n                 hidden_size=768,\n                 ffn_hidden_size=768,\n                 num_layers=12,\n                 num_heads=12,\n                 load_ckpt_path=None,\n                 param_init_type=mstype.float32,\n                 post_layernorm_residual=False,\n                 dropout_rate=0.1,\n                 eod_token=50256,\n                 use_past=False,\n                 hidden_act=\"fast_gelu\",\n                 eod_reset=True,\n                 enable_offload=False,\n                 use_moe=False,\n                 per_dp_dim_expert_num=4,\n                 parallel_config=None,\n                 softmax_compute_type=mstype.float16,\n                 ):\n        self.batch_size = batch_size\n        self.seq_length = seq_length\n        self.vocab_size = vocab_size\n        self.hidden_size = hidden_size\n        self.num_layers = num_layers\n        self.num_heads = num_heads\n        self.eod_token = eod_token\n        # Use post-layernorm or pre-layernrom, default:pre-layernorm\n        self.post_layernorm_residual = post_layernorm_residual\n        self.load_ckpt_path = load_ckpt_path\n        self.param_init_type = param_init_type\n        self.dropout_rate = dropout_rate\n        self.compute_dtype = mstype.float16\n        self.parallel_config = parallel_config\n        self.ffn_hidden_size = ffn_hidden_size\n        self.hidden_act = hidden_act\n        self.use_past = use_past\n        self.eod_reset = eod_reset\n        self.enable_offload = enable_offload\n        self.softmax_compute_type = softmax_compute_type\n        self.use_moe = bool(use_moe)\n        self.per_dp_dim_expert_num = per_dp_dim_expert_num\n\n    def __str__(self):\n        info = \"[PANGUALPHAConfig]\" + \"===\" * 10 + \"\\n\"\n        for k, v in self.__dict__.items():\n            var_info = \"{}:{}\\n\".format(k, v)\n            info += var_info\n        info += \"=\" * 10\n        return info\n\n\ndef set_parse(args_opt):\n    r\"\"\"\n       Set config according to the mode\n    \"\"\"\n    if args_opt.mode == \"200B\":\n        args_opt.embedding_size = 16384\n        args_opt.num_layers = 64\n        args_opt.num_heads = 128\n        if args_opt.per_batch_size == 0:\n            args_opt.per_batch_size = 1\n        args_opt.word_emb_dp = 0\n        if args_opt.run_type == \"train\":\n            args_opt.start_lr = 6e-5\n            args_opt.end_lr = 6e-6\n            args_opt.stage_num = 16\n            args_opt.micro_size = 32\n            args_opt.op_level_model_parallel_num = 16\n            if args_opt.optimizer_shard == 1:\n                args_opt.op_level_model_parallel_num = 8\n        elif args_opt.run_type == \"predict\":\n            args_opt.stage_num = 4\n            args_opt.micro_size = 1\n            args_opt.op_level_model_parallel_num = 16\n            if args_opt.optimizer_shard == 1:\n                args_opt.op_level_model_parallel_num = 8\n    elif args_opt.mode == \"13B\":\n        args_opt.embedding_size = 5120\n        args_opt.num_layers = 40\n        args_opt.num_heads = 40\n        args_opt.word_emb_dp = 0\n        args_opt.op_level_model_parallel_num = 8\n        if args_opt.run_type == \"train\":\n            args_opt.start_lr = 1e-4\n            args_opt.end_lr = 1e-6\n            # args_opt.start_lr = 5e-5\n            # args_opt.end_lr = 5e-7\n            args_opt.optimizer_shard = 1\n            args_opt.full_batch = args_opt.opt_offload\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 8\n            if args_opt.stage_num > 1:\n                args_opt.word_emb_dp = 0\n        elif args_opt.run_type == \"predict\":\n            args_opt.stage_num = 1\n            args_opt.micro_size = 1\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 1\n    elif args_opt.mode == \"2.6B\":\n        args_opt.embedding_size = 2560\n        args_opt.num_layers = 32\n        args_opt.num_heads = 32\n        args_opt.op_level_model_parallel_num = 8\n        if args_opt.run_type == \"train\":\n            args_opt.start_lr = 3e-6\n            # args_opt.start_lr = 1e-4\n            args_opt.end_lr = 1e-6\n            args_opt.optimizer_shard = 1\n            args_opt.full_batch = args_opt.opt_offload\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 16\n            if args_opt.stage_num > 1:\n                args_opt.word_emb_dp = 0\n        elif args_opt.run_type == \"predict\":\n            args_opt.stage_num = 1\n            args_opt.micro_size = 1\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 1\n    elif args_opt.mode == \"base\":\n        args_opt.embedding_size = 768\n        args_opt.num_layers = 12\n        args_opt.num_heads = 12\n        args_opt.op_level_model_parallel_num = 2\n        if args_opt.run_type == \"train\":\n            args_opt.start_lr = 4e-4\n            args_opt.end_lr = 1e-6\n            args_opt.optimizer_shard = 1\n            args_opt.warmup_step = 6000\n            args_opt.full_batch = args_opt.opt_offload\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 16\n            if args_opt.stage_num > 1:\n                args_opt.word_emb_dp = 0\n        elif args_opt.run_type == \"predict\":\n            args_opt.stage_num = 1\n            args_opt.micro_size = 1\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 1\n    elif args_opt.mode == \"dev\":\n        args_opt.embedding_size = 2048\n        args_opt.num_layers = 16\n        args_opt.num_heads = 16\n        args_opt.op_level_model_parallel_num = 4\n        if args_opt.run_type == \"train\":\n            args_opt.start_lr = 1e-4\n            args_opt.end_lr = 1e-6\n            args_opt.optimizer_shard = 1\n            args_opt.full_batch = args_opt.opt_offload\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 16\n            if args_opt.stage_num > 1:\n                args_opt.word_emb_dp = 0\n        elif args_opt.run_type == \"predict\":\n            args_opt.stage_num = 1\n            args_opt.micro_size = 1\n            if args_opt.per_batch_size == 0:\n                args_opt.per_batch_size = 1\n"
  },
  {
    "path": "codegeex/mindspore/src/pangu_alpha_fp16_predict.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"PanguAlpha model\"\"\"\nimport copy\nimport os\n\nimport mindspore.common.dtype as mstype\nimport mindspore.nn as nn\nimport numpy as np\nfrom mindspore import Tensor, Parameter\nfrom mindspore.common.initializer import initializer\nfrom mindspore.nn import Cell\nfrom mindspore.nn.transformer.layers import _Dropout, _LayerNorm\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\nfrom mindspore.parallel.nn import MoEConfig\nfrom mindspore.parallel.nn.transformer import (\n    VocabEmbedding,\n    TransformerEncoder,\n    TransformerEncoderLayer,\n    AttentionMask,\n)\n\n\nclass EmbeddingLayer(nn.Cell):\n    r\"\"\"Embedding layer of the PanGUAlpha Model\"\"\"\n\n    def __init__(self, config):\n        super(EmbeddingLayer, self).__init__()\n        # Only for the pipeline mode, the embedding needs to be row sliced.\n        dp = config.parallel_config.embedding_dp_mp_config.data_parallel\n        mp = config.parallel_config.embedding_dp_mp_config.model_parallel\n        self.word_embedding = VocabEmbedding(\n            vocab_size=(config.vocab_size // 1024 + 1) * 1024,\n            embedding_size=config.hidden_size,\n            param_init=initializer(\n                \"normal\",\n                [(config.vocab_size // 1024 + 1) * 1024, config.hidden_size],\n                dtype=config.param_init_type,\n            ),\n            parallel_config=config.parallel_config.embedding_dp_mp_config,\n        )\n        self.word_embedding.gather.shard(((mp, 1), (dp, 1)))\n        # self.word_embedding.embedding_table.parallel_optimizer = True\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        copied_parallel_config.vocab_emb_dp = True\n        self.position_embedding = VocabEmbedding(\n            vocab_size=config.seq_length,\n            embedding_size=config.hidden_size,\n            param_init=initializer(\n                \"normal\",\n                [config.seq_length, config.hidden_size],\n                dtype=config.param_init_type,\n            ),\n            parallel_config=copied_parallel_config.embedding_dp_mp_config,\n        )\n        self.split = P.Split(1, 2).shard(\n            ((config.parallel_config.data_parallel, 1, 1),)\n        )\n        self.print = P.Print()\n        self.add = P.Add().shard(\n            (\n                (config.parallel_config.data_parallel, 1, 1),\n                (config.parallel_config.data_parallel, 1, 1),\n            )\n        )\n        # self.dropout = nn.Dropout(1 - config.dropout_rate)\n        self.dropout = _Dropout(1 - config.dropout_rate)\n        self.dropout.shard(((config.parallel_config.data_parallel, 1, 1),))\n        # self.dropout.dropout.shard(\n        #    ((config.parallel_config.data_parallel, 1, 1),)\n        # )\n        self.is_first_iteration = True\n        self.use_past = config.use_past\n        self.batch_size = config.batch_size\n\n    def construct(\n            self, input_ids, input_position, init_reset, batch_valid_length\n    ):\n        word_embedding, word_table = self.word_embedding(input_ids)\n        if self.use_past and not self.is_first_iteration:\n            _, seq_length = F.shape(input_ids)\n            input_position = batch_valid_length.view(self.batch_size, seq_length)\n        position_embedding, _ = self.position_embedding(input_position)\n        embed = self.add(word_embedding, position_embedding)\n        embed = self.dropout(embed)\n        return embed, word_table\n\n    def get_word_embedding_weight(self):\n        return self.word_embedding.embedding_table\n\n\nclass QueryLayer(TransformerEncoderLayer):\n    r\"\"\"Query Layer at the final layer.\"\"\"\n\n    def __init__(\n            self,\n            batch_size,\n            hidden_size,\n            ffn_hidden_size,\n            num_heads,\n            seq_length,\n            attention_dropout_rate=0.1,\n            hidden_dropout_rate=0.1,\n            post_layernorm_residual=False,\n            param_init_type=mstype.float32,\n            hidden_act=\"fast_gelu\",\n            use_past=False,\n            parallel_config=None,\n            softmax_compute_type=mstype.float32,\n    ):\n        super(QueryLayer, self).__init__(\n            batch_size=batch_size,\n            hidden_size=hidden_size,\n            ffn_hidden_size=ffn_hidden_size,\n            num_heads=num_heads,\n            seq_length=seq_length,\n            attention_dropout_rate=attention_dropout_rate,\n            hidden_dropout_rate=hidden_dropout_rate,\n            post_layernorm_residual=post_layernorm_residual,\n            param_init_type=param_init_type,\n            hidden_act=hidden_act,\n            use_past=use_past,\n            parallel_config=parallel_config.dp_mp_config,\n            softmax_compute_type=softmax_compute_type,\n        )\n\n    def construct(\n            self,\n            x,\n            query_vector,\n            input_mask,\n            init_reset=True,\n            batch_valid_length=None,\n    ):\n        r\"\"\"\n        The forward process of the block.\n        \"\"\"\n        # [bs * seq_length, embedding_size]\n        input_x = self.layernorm1(x)\n        input_x = F.cast(input_x, self.dtype)\n\n        # indicate whether reset saved states\n        key_reset = None\n        value_reset = None\n\n        if self.use_past:\n            # reset states, init_reset True for reuse and False for reset\n            key_reset = self.assign(\n                self.key_past,\n                self.mul(self.key_past, F.cast(init_reset, self.dtype)),\n            )\n            value_reset = self.assign(\n                self.value_past,\n                self.mul(self.value_past, F.cast(init_reset, self.dtype)),\n            )\n            # add dependency for desired execution order\n            input_x = F.depend(input_x, key_reset)\n            input_x = F.depend(input_x, value_reset)\n\n        attention, layer_present = self.attention(\n            query_vector,\n            input_x,\n            input_x,\n            input_mask,\n            self.key_past,\n            self.value_past,\n            batch_valid_length,\n        )\n        # For post-layernorm the inputs for residual path are output of self-attention and output of layernorm\n        if self.post_layernorm_residual:\n            x = self.add(input_x, attention)\n        # For pre-layernorm the inputs for residual path are output of self-attention and input of this layer\n        else:\n            x = self.add(x, attention)\n\n        output_x = self.layernorm2(x)\n        output_x = F.cast(output_x, self.dtype)\n        mlp_logit = self.output(output_x)\n\n        value_update = None\n        key_update = None\n        if self.use_past:\n            # current key and value\n            key_present, value_present = layer_present\n            # update key and value calculated this step\n            key_update = self.assign(self.key_past, key_present)\n            value_update = self.assign(self.value_past, value_present)\n            # add dependency for desired execution order\n            key_update = F.depend(key_update, key_reset)\n            value_update = F.depend(value_update, value_reset)\n\n        # add dependency for desired execution order\n        mlp_logit = F.depend(mlp_logit, value_update)\n        mlp_logit = F.depend(mlp_logit, key_update)\n\n        if self.post_layernorm_residual:\n            output = self.add(output_x, mlp_logit)\n        else:\n            output = self.add(x, mlp_logit)\n        return output, layer_present\n\n\nclass PanGuHead(Cell):\n    \"\"\"\n    Head to get the logits of each token in the vocab\n    Args:\n        config(): the config of network\n    Inputs:\n        state: the output of the backbone\n        embedding_table: the embedding table of the vocabulary\n    Returns:\n        logits: Tensor, the logits of the corresponding inputs\n    \"\"\"\n\n    def __init__(\n            self, hidden_size, compute_type=mstype.float16, parallel_config=None\n    ):\n        super(PanGuHead, self).__init__()\n        if parallel_config.vocab_emb_dp:\n            self.matmul = P.MatMul(transpose_b=True).shard(\n                ((parallel_config.data_parallel, 1), (1, 1))\n            )\n        else:\n            print(\"====vocab_emb_dp is false\", flush=True)\n            self.matmul = P.MatMul(transpose_b=True).shard(\n                (\n                    (parallel_config.data_parallel, 1),\n                    (parallel_config.model_parallel, 1),\n                )\n            )\n        self.hidden_size = hidden_size\n        self.dtype = compute_type\n        self.cast = P.Cast()\n\n    def construct(self, state, embed):\n        state = P.Reshape()(state, (-1, self.hidden_size))\n        # output logits over vocabulary [bs*seq_length, vocab_size]\n        logits = self.matmul(\n            self.cast(state, self.dtype), self.cast(embed, self.dtype)\n        )\n        return logits\n\n\ndef set_parallel_configure_for_layer(\n        network, layer_id, offset, parallel_config, layers\n):\n    r\"\"\"\n        Default setting for the pipeline is: `(layer_id + offset) // (layers / pipeline_stage)`.\n\n\n        Args:\n            network(Cell) - Represents the transformer block\n            layer_id(int) - Means the layer index for the current module, counts from zero.\n            offset(int) - Means the layer_index needs a offset, if there are other modules in the net.\n            layers(int) - The total layers used for the model.\n    \"\"\"\n    # Used for the pipeline's stages setting\n    # As the final layer is not included here, so we need to manually add here.\n    # original:  if set two stages, layers on two stages will be [15, 16+1]\n    # with 1 added, the layers on two stages will be [16, 15 +1]\n    pp_dis = max(int((layers + 1) / parallel_config.pipeline_stage), 1)\n    # the pipeline stage must be in [0, parallel_config.pipeline_stage - 1]\n    pp_id = min((layer_id + offset) // pp_dis, parallel_config.pipeline_stage - 1)\n    network.pipeline_stage = pp_id\n    print(f\"pipeline stage id is {pp_id}\", flush=True)\n\n    # Used for optimizer's fusion tag\n    dis = max(int((layers + 1) / parallel_config.gradient_aggregation_group), 1)\n    if parallel_config.pipeline_stage > 1:\n        # we give the fusion in pipeline mode a fixed value, otherwise the performance may become worse.\n        network.set_comm_fusion(2)\n    else:\n        network.set_comm_fusion(int((layer_id + offset) / dis) + 1)\n    # Used for enabling recomputation of the block\n    if parallel_config.recompute:\n        network.recompute(recompute_slice_activation=True)\n\n\nclass PanguAlpha_Model(Cell):\n    r\"\"\"The base backbone of the PanGuAlpha model\"\"\"\n\n    def __init__(self, config):\n        super(PanguAlpha_Model, self).__init__()\n        self.is_pipeline = config.parallel_config.pipeline_stage > 1\n        self.embedding = EmbeddingLayer(config)\n        self.config = config\n        self.layernorm = _LayerNorm((config.hidden_size,)).to_float(\n            mstype.float32\n        )\n        if config.parallel_config.pipeline_stage > 1:\n            self.layernorm.set_comm_fusion(2)\n        else:\n            self.layernorm.set_comm_fusion(\n                config.parallel_config.gradient_aggregation_group\n            )\n        self.layernorm.shard(((config.parallel_config.data_parallel, 1),))\n        self.layernorm.pipeline_stage = (\n                config.parallel_config.pipeline_stage - 1\n        )\n        # Configure the shard configure of the Embedding layer\n        self.embedding.pipeline_stage = 0\n        self.num_layers = config.num_layers\n        if config.use_moe:\n            moe_config = MoEConfig(\n                expert_num=config.parallel_config.data_parallel\n                           * config.per_dp_dim_expert_num\n            )\n        else:\n            moe_config = MoEConfig(expert_num=1)\n        # The shard setting of Transformer is set within the class StackedTransformer\n        self.blocks = TransformerEncoder(num_layers=config.num_layers - 1,\n                                         batch_size=config.batch_size,\n                                         hidden_size=config.hidden_size,\n                                         ffn_hidden_size=config.ffn_hidden_size,\n                                         num_heads=config.num_heads,\n                                         seq_length=config.seq_length,\n                                         attention_dropout_rate=config.dropout_rate,\n                                         hidden_dropout_rate=config.dropout_rate,\n                                         lambda_func=set_parallel_configure_for_layer,\n                                         hidden_act=\"fast_gelu\",\n                                         param_init_type=config.param_init_type,\n                                         use_past=config.use_past,\n                                         parallel_config=config.parallel_config,\n                                         moe_config=moe_config,\n                                         softmax_compute_type=config.softmax_compute_type).blocks\n        for block in self.blocks:\n            block.attention.dense1.bias.parallel_optimizer = False\n            block.attention.dense2.bias.parallel_optimizer = False\n            block.attention.dense3.bias.parallel_optimizer = False\n            block.output.mapping.bias.parallel_optimizer = False\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        copied_parallel_config.vocab_emb_dp = True\n        self.top_query_embedding = VocabEmbedding(vocab_size=config.seq_length,\n                                                  embedding_size=config.hidden_size,\n                                                  param_init=initializer(\"normal\",\n                                                                         [config.seq_length, config.hidden_size],\n                                                                         dtype=config.param_init_type),\n                                                  parallel_config=copied_parallel_config.embedding_dp_mp_config)\n        self.top_query_embedding.pipeline_stage = config.parallel_config.pipeline_stage - 1\n        if config.parallel_config.pipeline_stage > 1:\n            self.top_query_embedding.set_comm_fusion(2)\n        else:\n            self.top_query_embedding.set_comm_fusion(config.parallel_config.gradient_aggregation_group)\n\n        self.top_query_layer = QueryLayer(batch_size=config.batch_size,\n                                          hidden_size=config.hidden_size,\n                                          ffn_hidden_size=config.ffn_hidden_size,\n                                          num_heads=config.num_heads,\n                                          seq_length=config.seq_length,\n                                          attention_dropout_rate=config.dropout_rate,\n                                          hidden_dropout_rate=config.dropout_rate,\n                                          hidden_act=config.hidden_act,\n                                          param_init_type=config.param_init_type,\n                                          use_past=config.use_past,\n                                          parallel_config=config.parallel_config)\n        self.top_query_layer.attention.dense1.bias.parallel_optimizer = False\n        self.top_query_layer.attention.dense2.bias.parallel_optimizer = False\n        self.top_query_layer.attention.dense3.bias.parallel_optimizer = False\n        self.top_query_layer.output.mapping.bias.parallel_optimizer = False\n        if config.parallel_config.recompute:\n            self.top_query_layer.recompute()\n        self.top_query_layer.set_comm_fusion(config.parallel_config.gradient_aggregation_group)\n        self.top_query_layer.pipeline_stage = config.parallel_config.pipeline_stage - 1\n\n        self.dtype = mstype.float16\n        self.print = P.Print()\n        # if config.load_ckpt_path:\n        #     self.load_embedding_from_ckpt(config.load_ckpt_path)\n\n    def construct(self, input_ids,\n                  input_position,\n                  encoder_masks,\n                  init_reset=True,\n                  batch_valid_length=None):\n        r\"\"\"forward pass of the model\"\"\"\n        embed, word_table = self.embedding(input_ids, input_position, init_reset, batch_valid_length)\n        self.print(\"PanguAlpha_Model: embed_0\", embed)\n        hidden_state = P.Cast()(embed, self.dtype)\n        self.print(\"PanguAlpha_Model: hidden_state_0\", embed)\n\n        if init_reset is False:\n            hidden_state = self.reshape_to_2d(hidden_state)\n        # encoder_mask = self.create_encoder_mask(encoder_masks)\n        if self.blocks is not None:\n            for i in range(self.num_layers - 1):\n                hidden_state, _ = self.blocks[i](hidden_state, encoder_masks, init_reset, batch_valid_length)\n                self.print(\"PanguAlpha_Model: hidden_state_\", hidden_state)\n        if self.is_pipeline:\n            top_query_hidden_states, _ = self.top_query_embedding(input_position)\n            top_query_hidden_states = self.reshape_to_2d(top_query_hidden_states)\n            encoder_output, _ = self.top_query_layer(hidden_state, top_query_hidden_states,\n                                                     encoder_masks, init_reset, batch_valid_length)\n            encoder_output = self.layernorm(encoder_output)\n        else:\n            hidden_state = self.reshape_to_2d(hidden_state)\n            encoder_output = self.layernorm(hidden_state)\n            encoder_output = P.Cast()(encoder_output, self.dtype)\n            top_query_hidden_states, _ = self.top_query_embedding(input_position)\n            top_query_hidden_states = self.reshape_to_2d(top_query_hidden_states)\n            encoder_output, _ = self.top_query_layer(encoder_output, top_query_hidden_states,\n                                                     encoder_masks, init_reset, batch_valid_length)\n        self.print(\"PanguAlpha_Model: input_position\", input_position)\n        self.print(\"PanguAlpha_Model: top_query_hidden_state\", top_query_hidden_states)\n        self.print(\"PanguAlpha_Model: encoder_output\", encoder_output)\n        self.print(\"PanguAlpha_Model: word_table\", word_table)\n\n        return encoder_output, word_table\n\n    def reshape_to_2d(self, x):\n        r\"\"\"reshape nd tensor to 2d, if n <= 2, keep original shape.\"\"\"\n        shape = F.shape(x)\n        if len(shape) <= 2:\n            return x\n        x = F.reshape(x, (-1, shape[-1]))\n        return x\n\n    def load_embedding_from_ckpt(self, load_ckpt_path):\n        r\"\"\"load the weights from the checkpoint\"\"\"\n\n        def load_param(path):\n            if os.path.exists(path):\n                p_table = np.load(path)\n                table_param = Tensor(p_table, mstype.float32)\n            else:\n                raise ValueError(\n                    f\"{path} file not exits, \"\n                    f\"please check whether embedding file exit.\"\n                )\n            return table_param\n\n        # three embedding needed to be loaded\n        # Loading the embedding table from the ckpt path:\n        position_embedding_path = os.path.join(load_ckpt_path, 'position_embedding.npy')\n        word_embedding_path = os.path.join(load_ckpt_path, 'word_embedding.npy')\n        top_query_embedding_path = os.path.join(load_ckpt_path, 'top_query_embedding.npy')\n        self.embedding.word_embedding.embedding_table = Parameter(initializer(load_param(word_embedding_path),\n                                                                              [self.config.vocab_size,\n                                                                               self.config.hidden_size]),\n                                                                  name='word_embedding_table', parallel_optimizer=False)\n        # self.summary(\"load_word_embedding\", self.embedding.word_embedding.embedding_table)\n        self.print(\"PanguAlpha_Model: load_word_embedding\", self.embedding.word_embedding.embedding_table)\n        self.embedding.position_embedding.embedding_table = Parameter(initializer(load_param(position_embedding_path),\n                                                                                  [self.config.seq_length,\n                                                                                   self.config.hidden_size]),\n                                                                      name='position_embedding_table',\n                                                                      parallel_optimizer=False)\n        # self.summary(\"load_position_embedding\", self.embedding.position_embedding.embedding_table)\n        self.print(\"PanguAlpha_Model: load_position_embedding\", self.embedding.position_embedding.embedding_table)\n\n        self.top_query_embedding.embedding_table = Parameter(initializer(load_param(top_query_embedding_path),\n                                                                         [self.config.seq_length,\n                                                                          self.config.hidden_size]),\n                                                             name='query_embedding_table', parallel_optimizer=False)\n        # self.summary(\"top_query_embedding\", self.embedding.top_query_embedding.embedding_table)\n        self.print(\"PanguAlpha_Model: top_query_embedding\", self.embedding.top_query_embedding.embedding_table)\n\n\nclass PanguAlphaModel(nn.Cell):\n    \"\"\"\n    The PanguAlpha network consisting of two parts the backbone and the head\n    Args:\n        config(PanguAlphaConfig): the config of network\n    Inputs:\n        input_ids: the tokenized inputs\n        input_mask: the mask indicating whether each position is a valid input\n        past: the previous feature map\n    Returns:\n        logits: Tensor: the logits of the corresponding inputs with shape (batch_size, seq_length, vocab_size)\n    \"\"\"\n\n    def __init__(self, config):\n        super(PanguAlphaModel, self).__init__()\n        # Network head to get logits over vocabulary\n        copied_parallel_config = copy.deepcopy(config.parallel_config)\n        if copied_parallel_config.pipeline_stage > 1:\n            copied_parallel_config.vocab_emb_dp = False\n        self.head = PanGuHead(\n            hidden_size=config.hidden_size,\n            parallel_config=copied_parallel_config,\n        )\n        self.head.pipeline_stage = config.parallel_config.pipeline_stage - 1\n        self.backbone = PanguAlpha_Model(config)\n        self.backbone.embedding.word_embedding.embedding_table.add_pipeline_stage(self.head.pipeline_stage)\n        self.print = P.Print()\n\n    def construct(self, input_ids, input_position, attention_mask,\n                  init_reset=True, batch_valid_length=None):\n        output_states, word_table = self.backbone(input_ids, input_position, attention_mask,\n                                                  init_reset, batch_valid_length)\n        self.print(\"PanguAlphaModel: output_states\", output_states)\n        self.print(\"PanguAlphaModel: word_table\", word_table)\n        logits = self.head(output_states, word_table)\n        self.print(\"PanguAlphaModel: logits\", logits)\n\n        return logits\n\n\nclass PanGUAlphaWithLoss(Cell):\n    \"\"\"\n    PanguAlpha training loss for generation.\n    Args:\n        config(PanGUConfig)\n    Inputs:\n        input_ids: the tokenized inputs\n        past: the previous feature map\n    Returns:\n        output: Tensor, the loss of the network\n    \"\"\"\n\n    def __init__(self, config, network, loss):\n        super(PanGUAlphaWithLoss, self).__init__(auto_prefix=False)\n        self.batch_size = config.batch_size\n        self.seq_length = config.seq_length\n        dp = config.parallel_config.data_parallel\n        self.network = network\n        self.eod_token = config.eod_token\n        self.loss = loss\n\n        self.slice = P.StridedSlice().shard(((dp, 1),))\n        self.not_equal = P.NotEqual().shard(((dp, 1), ()))\n        # self.batch_size = config.batch_size\n        self.len = config.seq_length\n        self.slice2 = P.StridedSlice().shard(((dp, 1, 1),))\n        self.micro_batch_step = 1\n        self.print = P.Print()\n        if config.parallel_config.pipeline_stage > 1:\n            self.micro_batch_step = config.parallel_config.micro_batch_num\n\n    def construct(self, input_ids, input_position=None, attention_mask=None):\n        r\"\"\"Forward process of the pangu alpha model\"\"\"\n        tokens = self.slice(input_ids, (0, 0), (self.batch_size, -1), (1, 1))\n        # P.Print()(\"==net tokens is:\", tokens)\n        input_position = self.slice(input_position, (0, 0), (self.batch_size, self.len), (1, 1))\n        decoder_attention_masks = self.slice2(attention_mask, (0, 0, 0), (self.batch_size, self.len, self.len),\n                                              (1, 1, 1))\n        input_mask = F.cast(self.not_equal(tokens, self.eod_token), mstype.float32)\n        logits = self.network(tokens, input_position, decoder_attention_masks)\n        # P.Print()(\"==logits_is:\", logits, \",shape is:\", logits.shape)\n        # Get label corresponding to input tokens\n        labels = self.slice(input_ids, (0, 1), (self.batch_size, self.len + 1), (1, 1))\n        labels = P.Reshape()(labels, (-1,))\n        input_mask = P.Reshape()(input_mask, (-1,))\n        # P.Print()(\"==input_mask is:\", input_mask)\n        output = self.loss(logits, labels, input_mask)\n        # P.Print()(\"==net output is:\", output)\n        return output\n\n\nclass EvalNet(nn.Cell):\n    \"\"\"\n    PanguAlpha evaluation net\n    Args:\n        backbone: backbone network of PanguAlpha\n        generate: enable generate mode\n    Inputs:\n        input_ids: the tokenized inpus\n        current_index: the index of current token\n        init_reset: whether reset saved states\n    Returns:\n        outputs: Tensor, corresponding output for different tasks\n    \"\"\"\n\n    def __init__(self, backbone, generate=False, pad_token=6, seq_length=2048):\n        super(EvalNet, self).__init__(auto_prefix=False)\n        self.backbone = backbone\n        self.pad_token = pad_token\n        self.argmax = P.Argmax()\n        self.generate = generate\n        self.topk = P.TopK(sorted=True).shard(((1, 1),))\n        self.gather = P.Gather().shard(((1, 1), (1,)))\n        self.log_softmax = P.LogSoftmax().shard(((1, 1, 1),))\n        self.get_attention_mask = AttentionMask(seq_length)\n        self.expand = P.ExpandDims().shard(((1, 1, 1),))\n        self.all_ones_attention_mask = Tensor(np.ones((1, 1, seq_length)), mstype.float32)\n        self.print = P.Print()\n\n    def construct(self, input_ids, current_index, init_reset=True, batch_valid_length=None):\n        \"\"\"evaluation net\"\"\"\n        input_mask = F.cast(F.not_equal(input_ids, self.pad_token), mstype.float32)\n        bs, seq_length = F.shape(input_ids)\n        if self.is_first_iteration is False:\n            attention_mask = P.Tile()(self.all_ones_attention_mask, (bs, 1, 1))\n        else:\n            attention_mask = self.get_attention_mask(input_mask)\n        self.print(\"EvalNet: attention_mask\", attention_mask)\n        input_position = F.tuple_to_array(F.make_range(seq_length))\n        self.print(\"EvalNet: input_position_0\", input_position)\n        input_position = P.Tile()(input_position, (bs, 1))\n        self.print(\"EvalNet: input_position_1\", input_position)\n        logits = self.backbone(input_ids, input_position, attention_mask,\n                               init_reset, batch_valid_length)\n        self.print(\"EvalNet: logits\", logits)\n        index = current_index.view(-1, )\n        self.print(\"EvalNet: index\", index)\n        logits = self.gather(logits, index, 0)\n        logits = logits.view(bs, 1, -1)\n        log_probs = self.log_softmax(logits)\n        return log_probs\n"
  },
  {
    "path": "codegeex/mindspore/src/pangu_alpha_wrapcell.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"GPT training wrapper\"\"\"\n\nimport mindspore.common.dtype as mstype\nimport mindspore.nn as nn\nfrom mindspore import context, Parameter\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.communication.management import get_group_size\nfrom mindspore.context import ParallelMode\nfrom mindspore.nn.wrap.grad_reducer import DistributedGradReducer\nfrom mindspore.nn.wrap.loss_scale import TrainOneStepWithLossScaleCell\nfrom mindspore.ops import composite as C\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\nfrom mindspore.parallel._utils import _get_enable_parallel_optimizer\nfrom src.utils import GlobalNorm, ClipByGlobalNorm\n\nGRADIENT_CLIP_TYPE = 1\nGRADIENT_CLIP_VALUE = 1.0\nclip_grad = C.MultitypeFuncGraph(\"clip_grad\")\n\n\n@clip_grad.register(\"Number\", \"Number\", \"Tensor\")\ndef _clip_grad(clip_type, clip_value, grad):\n    \"\"\"\n    Clip gradients.\n\n    Inputs:\n        clip_type (int): The way to clip, 0 for 'value', 1 for 'norm'.\n        clip_value (float): Specifies how much to clip.\n        grad (tuple[Tensor]): Gradients.\n\n    Outputs:\n        tuple[Tensor], clipped gradients.\n    \"\"\"\n    if clip_type not in [0, 1]:\n        return grad\n    dt = F.dtype(grad)\n    # 0 for clip_by_value and 1 for clip_by_norm\n    if clip_type == 0:\n        new_grad = C.clip_by_value(\n            grad,\n            F.cast(F.tuple_to_array((-clip_value,)), dt),\n            F.cast(F.tuple_to_array((clip_value,)), dt),\n        )\n    else:\n        new_grad = nn.ClipByNorm()(\n            grad, F.cast(F.tuple_to_array((clip_value,)), dt)\n        )\n    return new_grad\n\n\ngrad_scale = C.MultitypeFuncGraph(\"grad_scale\")\nshard_grad_scale = C.MultitypeFuncGraph(\"shard_grad_scale\")\nreciprocal = P.Reciprocal()\n\n\n@grad_scale.register(\"Tensor\", \"Tensor\")\ndef tensor_grad_scale(scale, grad):\n    return grad * P.Cast()(reciprocal(scale), F.dtype(grad))\n\n\n@grad_scale.register(\"Tensor\", \"Tensor\", \"Tensor\")\ndef tensor_grad_scale_pipeline(scale, grad, accu_grad):\n    accu_grad = F.depend(accu_grad, grad)\n    new_grad = accu_grad * reciprocal(scale)\n    accu_grad = F.depend(accu_grad, new_grad)\n    zeros = F.tensor_mul(accu_grad, 0.0)\n    new_grad = F.depend(new_grad, F.assign(accu_grad, zeros))\n    return new_grad\n\n\n@shard_grad_scale.register(\"Tensor\", \"Tensor\", \"Tensor\")\ndef tensor_shard_grad_scale_pipeline(scale, grad, accu_grad):\n    new_grad = grad * reciprocal(scale)\n    accu_grad = F.depend(accu_grad, new_grad)\n    new_grad = F.depend(new_grad, F.assign(accu_grad, F.zeros_like(accu_grad)))\n    return new_grad\n\n\nclass PanguAlphaTrainOneStepWithLossScaleCell(TrainOneStepWithLossScaleCell):\n    \"\"\"\n    Encapsulation class of PanguAlpha network training.\n\n    Append an optimizer to the training network after that the construct\n    function can be called to create the backward graph.\n\n    Args:\n        network (Cell): The training network. Note that loss function should have been added.\n        optimizer (Optimizer): Optimizer for updating the weights.\n        scale_update_cell (Cell): Cell to do the loss scale. Default: None.\n    \"\"\"\n\n    def __init__(\n            self,\n            network,\n            optimizer,\n            scale_update_cell=None,\n            enable_global_norm=False,\n            config=None,\n    ):\n        super(PanguAlphaTrainOneStepWithLossScaleCell, self).__init__(network, optimizer, scale_update_cell)\n        self.network = network\n        self.config = config\n        self.weights = optimizer.parameters\n        self.optimizer = optimizer\n        self.default_lr = Tensor([0.0], dtype=mstype.float32)\n        self.enable_global_norm = enable_global_norm\n        self.enable_offload = config.enable_offload\n        self.clip_value = Tensor([1.0], dtype=mstype.float32)\n        if config.enable_offload:\n            self.clip = GlobalNorm(self.weights, config)\n        else:\n            self.clip = ClipByGlobalNorm(self.weights, config)\n        self.cast = P.Cast()\n\n    def construct(self, input_ids, input_position, attention_mask, layer_past=None, sens=None):\n        \"\"\"Defines the computation performed.\"\"\"\n        weights = self.weights\n        # Forward process\n        loss = self.network(input_ids, input_position, attention_mask)\n        scaling_sens = self.scale_sense\n\n        # alloc status and clear should be right before gradoperation\n        status, scaling_sens = self.start_overflow_check(loss, scaling_sens)\n        scaling_sens_filled = C.ones_like(loss) * F.cast(scaling_sens, F.dtype(loss))\n        # Backward process using loss scale\n        grads = self.grad(self.network, weights)(\n            input_ids, input_position, attention_mask,\n            scaling_sens_filled)\n\n        # apply grad reducer on grads\n        grads = self.grad_reducer(grads)\n        grads = self.hyper_map(F.partial(grad_scale, scaling_sens), grads)\n        clip_value = self.clip_value\n        if self.enable_global_norm:\n            grads, clip_value = self.clip(grads)\n        else:\n            grads = self.hyper_map(\n                F.partial(clip_grad, GRADIENT_CLIP_TYPE, GRADIENT_CLIP_VALUE),\n                grads)\n        # Check whether overflow\n        cond = self.get_overflow_status(status, grads)\n        overflow = self.process_loss_scale(cond)\n        # If overflow, surpass weights update\n        # if not, update weights\n        if not overflow:\n            if self.enable_offload:\n                self.optimizer(grads, clip_value)\n            else:\n                self.optimizer(grads)\n        return loss, cond, scaling_sens\n\n\nclass PanguAlphaTrainPipelineWithLossScaleCell(nn.Cell):\n    \"\"\"\n    Encapsulation class of PanguAlpha network training.\n\n    Append an optimizer to the training network after that the construct\n    function can be called to create the backward graph.\n\n    Args:\n        network (Cell): The training network. Note that loss function should have been added.\n        optimizer (Optimizer): Optimizer for updating the weights.\n        scale_update_cell (Cell): Cell to do the loss scale. Default: None.\n    \"\"\"\n\n    def __init__(self, network, optimizer, config, scale_update_cell=None, enable_global_norm=True):\n        super(PanguAlphaTrainPipelineWithLossScaleCell, self).__init__(auto_prefix=False)\n        self.config = config\n        self.network = network\n        self.network.add_flags(defer_inline=True)\n        self.weights = optimizer.parameters\n        self.accu_grads = self.weights.clone(prefix=\"accu_grads\", init=\"zeros\")\n        self.optimizer = optimizer\n        self.enable_global_norm = enable_global_norm\n        self.grad = C.GradOperation(get_by_list=True, sens_param=True)\n        self.reducer_flag = False\n        self.allreduce = P.AllReduce()\n        self.parallel_mode = context.get_auto_parallel_context(\"parallel_mode\")\n        if self.parallel_mode in [ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL]:\n            self.reducer_flag = True\n        self.grad_reducer = F.identity\n        self.degree = 1\n        if self.reducer_flag:\n            self.degree = get_group_size()\n            self.grad_reducer = DistributedGradReducer(optimizer.parameters, False, self.degree)\n        self.is_distributed = (self.parallel_mode != ParallelMode.STAND_ALONE)\n        self.cast = P.Cast()\n        self.alloc_status = P.NPUAllocFloatStatus()\n        self.get_status = P.NPUGetFloatStatus()\n        self.clear_before_grad = P.NPUClearFloatStatus()\n        self.reduce_sum = P.ReduceSum(keep_dims=False)\n        self.base = Tensor(1, mstype.float32)\n        self.less_equal = P.LessEqual()\n        self.hyper_map = C.HyperMap()\n        self.loss_scale = None\n        self.reshape = P.Reshape()\n        self.loss_scaling_manager = scale_update_cell\n        if scale_update_cell:\n            self.loss_scale = Parameter(Tensor(scale_update_cell.get_loss_scale(), dtype=mstype.float32),\n                                        name=\"loss_scale\")\n        self.clip = ClipByGlobalNorm(self.weights, self.config)\n        self.micro_size = config.parallel_config.micro_batch_num\n        self.opt_shard = _get_enable_parallel_optimizer()\n\n    @C.add_flags(has_effect=True)\n    def construct(\n            self,\n            input_ids,\n            input_position,\n            attention_mask,\n            past=None,\n            sens=None,\n    ):\n        \"\"\"Defines the computation performed.\"\"\"\n        weights = self.weights\n        loss = self.network(input_ids, input_position, attention_mask)\n        if sens is None:\n            scaling_sens = self.loss_scale\n            scaling_sens = self.reshape(scaling_sens, (1,))\n        else:\n            scaling_sens = sens\n        # alloc status and clear should be right before gradoperation\n        init = self.alloc_status()\n        status_clear = self.clear_before_grad(init)\n        grads = self.grad(self.network, weights)(\n            input_ids,\n            input_position,\n            attention_mask,\n            self.cast(scaling_sens / self.micro_size, mstype.float32),\n        )\n        init = F.depend(init, grads)\n        get_status = self.get_status(init)\n        init = F.depend(init, get_status)\n        flag_sum = self.reduce_sum(init, (0,))\n        loss = F.depend(loss, status_clear)\n        # apply grad reducer on grads\n        if self.opt_shard:\n            grads = self.grad_reducer(grads)\n            grads = self.hyper_map(F.partial(shard_grad_scale, scaling_sens * self.degree), grads, self.accu_grads)\n        else:\n            accu_grads = self.grad_reducer(self.accu_grads)\n            grads = self.hyper_map(F.partial(grad_scale, scaling_sens * self.degree), grads, accu_grads)\n        if self.enable_global_norm:\n            grads, _ = self.clip(grads)\n        else:\n            grads = self.hyper_map(\n                F.partial(clip_grad, GRADIENT_CLIP_TYPE, GRADIENT_CLIP_VALUE),\n                grads)\n        if self.is_distributed:\n            # sum overflow flag over devices\n            flag_reduce = self.allreduce(flag_sum)\n            cond = self.less_equal(self.base, flag_reduce)\n        else:\n            cond = self.less_equal(self.base, flag_sum)\n        overflow = cond\n        if sens is None:\n            overflow = self.loss_scaling_manager(self.loss_scale, cond)\n        if not overflow:\n            self.optimizer(grads)\n        return (loss, overflow, scaling_sens)\n"
  },
  {
    "path": "codegeex/mindspore/src/pangu_alpha_wrapcell_finetune.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"GPT training wrapper\"\"\"\n\nimport mindspore.common.dtype as mstype\nimport mindspore.nn as nn\nfrom mindspore import context, Parameter\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.communication.management import get_group_size\nfrom mindspore.context import ParallelMode\nfrom mindspore.nn.wrap.grad_reducer import DistributedGradReducer\nfrom mindspore.nn.wrap.loss_scale import TrainOneStepWithLossScaleCell\nfrom mindspore.ops import composite as C\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\nfrom mindspore.parallel._utils import _get_enable_parallel_optimizer\nfrom src.utils import GlobalNorm, ClipByGlobalNorm\n\nGRADIENT_CLIP_TYPE = 1\nGRADIENT_CLIP_VALUE = 1.0\nclip_grad = C.MultitypeFuncGraph(\"clip_grad\")\n\n\n@clip_grad.register(\"Number\", \"Number\", \"Tensor\")\ndef _clip_grad(clip_type, clip_value, grad):\n    \"\"\"\n    Clip gradients.\n\n    Inputs:\n        clip_type (int): The way to clip, 0 for 'value', 1 for 'norm'.\n        clip_value (float): Specifies how much to clip.\n        grad (tuple[Tensor]): Gradients.\n\n    Outputs:\n        tuple[Tensor], clipped gradients.\n    \"\"\"\n    if clip_type not in [0, 1]:\n        return grad\n    dt = F.dtype(grad)\n    # 0 for clip_by_value and 1 for clip_by_norm\n    if clip_type == 0:\n        new_grad = C.clip_by_value(\n            grad,\n            F.cast(F.tuple_to_array((-clip_value,)), dt),\n            F.cast(F.tuple_to_array((clip_value,)), dt),\n        )\n    else:\n        new_grad = nn.ClipByNorm()(\n            grad, F.cast(F.tuple_to_array((clip_value,)), dt)\n        )\n    return new_grad\n\n\ngrad_scale = C.MultitypeFuncGraph(\"grad_scale\")\nshard_grad_scale = C.MultitypeFuncGraph(\"shard_grad_scale\")\nreciprocal = P.Reciprocal()\n\n\n@grad_scale.register(\"Tensor\", \"Tensor\")\ndef tensor_grad_scale(scale, grad):\n    return grad * P.Cast()(reciprocal(scale), F.dtype(grad))\n\n\n@grad_scale.register(\"Tensor\", \"Tensor\", \"Tensor\")\ndef tensor_grad_scale_pipeline(scale, grad, accu_grad):\n    accu_grad = F.depend(accu_grad, grad)\n    new_grad = accu_grad * reciprocal(scale)\n    accu_grad = F.depend(accu_grad, new_grad)\n    zeros = F.tensor_mul(accu_grad, 0.0)\n    new_grad = F.depend(new_grad, F.assign(accu_grad, zeros))\n    return new_grad\n\n\n@shard_grad_scale.register(\"Tensor\", \"Tensor\", \"Tensor\")\ndef tensor_shard_grad_scale_pipeline(scale, grad, accu_grad):\n    new_grad = grad * reciprocal(scale)\n    accu_grad = F.depend(accu_grad, new_grad)\n    new_grad = F.depend(new_grad, F.assign(accu_grad, F.zeros_like(accu_grad)))\n    return new_grad\n\n\nclass PanguAlphaTrainOneStepWithLossScaleCell(TrainOneStepWithLossScaleCell):\n    \"\"\"\n    Encapsulation class of PanguAlpha network training.\n\n    Append an optimizer to the training network after that the construct\n    function can be called to create the backward graph.\n\n    Args:\n        network (Cell): The training network. Note that loss function should have been added.\n        optimizer (Optimizer): Optimizer for updating the weights.\n        scale_update_cell (Cell): Cell to do the loss scale. Default: None.\n    \"\"\"\n\n    def __init__(\n            self,\n            network,\n            optimizer,\n            scale_update_cell=None,\n            enable_global_norm=False,\n            config=None,\n    ):\n        super(PanguAlphaTrainOneStepWithLossScaleCell, self).__init__(network, optimizer, scale_update_cell)\n        self.network = network\n        self.config = config\n        self.weights = optimizer.parameters\n        self.optimizer = optimizer\n        self.default_lr = Tensor([0.0], dtype=mstype.float32)\n        self.enable_global_norm = enable_global_norm\n        self.enable_offload = config.enable_offload\n        self.clip_value = Tensor([1.0], dtype=mstype.float32)\n        if config.enable_offload:\n            self.clip = GlobalNorm(self.weights, config)\n        else:\n            self.clip = ClipByGlobalNorm(self.weights, config)\n        self.cast = P.Cast()\n\n    def construct(self, input_ids, loss_mask, input_position, attention_mask):\n        \"\"\"Defines the computation performed.\"\"\"\n        weights = self.weights\n        # Forward process\n        loss = self.network(input_ids, loss_mask, input_position, attention_mask)\n        scaling_sens = self.scale_sense\n\n        # alloc status and clear should be right before gradoperation\n        status, scaling_sens = self.start_overflow_check(loss, scaling_sens)\n        scaling_sens_filled = C.ones_like(loss) * F.cast(scaling_sens, F.dtype(loss))\n        # Backward process using loss scale\n        grads = self.grad(self.network, weights)(\n            input_ids, loss_mask, input_position, attention_mask,\n            scaling_sens_filled)\n\n        # apply grad reducer on grads\n        grads = self.grad_reducer(grads)\n        grads = self.hyper_map(F.partial(grad_scale, scaling_sens), grads)\n        clip_value = self.clip_value\n        if self.enable_global_norm:\n            grads, clip_value = self.clip(grads)\n        else:\n            grads = self.hyper_map(\n                F.partial(clip_grad, GRADIENT_CLIP_TYPE, GRADIENT_CLIP_VALUE),\n                grads)\n        # Check whether overflow\n        cond = self.get_overflow_status(status, grads)\n        overflow = self.process_loss_scale(cond)\n        # If overflow, surpass weights update\n        # if not, update weights\n        if not overflow:\n            if self.enable_offload:\n                self.optimizer(grads, clip_value)\n            else:\n                self.optimizer(grads)\n        return loss, cond, scaling_sens\n\n\nclass PanguAlphaTrainPipelineWithLossScaleCell(nn.Cell):\n    \"\"\"\n    Encapsulation class of PanguAlpha network training.\n\n    Append an optimizer to the training network after that the construct\n    function can be called to create the backward graph.\n\n    Args:\n        network (Cell): The training network. Note that loss function should have been added.\n        optimizer (Optimizer): Optimizer for updating the weights.\n        scale_update_cell (Cell): Cell to do the loss scale. Default: None.\n    \"\"\"\n\n    def __init__(self, network, optimizer, config, scale_update_cell=None, enable_global_norm=True):\n        super(PanguAlphaTrainPipelineWithLossScaleCell, self).__init__(auto_prefix=False)\n        self.config = config\n        self.network = network\n        self.network.add_flags(defer_inline=True)\n        self.weights = optimizer.parameters\n        self.accu_grads = self.weights.clone(prefix=\"accu_grads\", init=\"zeros\")\n        self.optimizer = optimizer\n        self.enable_global_norm = enable_global_norm\n        self.grad = C.GradOperation(get_by_list=True, sens_param=True)\n        self.reducer_flag = False\n        self.allreduce = P.AllReduce()\n        self.parallel_mode = context.get_auto_parallel_context(\"parallel_mode\")\n        if self.parallel_mode in [ParallelMode.DATA_PARALLEL, ParallelMode.HYBRID_PARALLEL]:\n            self.reducer_flag = True\n        self.grad_reducer = F.identity\n        self.degree = 1\n        if self.reducer_flag:\n            self.degree = get_group_size()\n            self.grad_reducer = DistributedGradReducer(optimizer.parameters, False, self.degree)\n        self.is_distributed = (self.parallel_mode != ParallelMode.STAND_ALONE)\n        self.cast = P.Cast()\n        self.alloc_status = P.NPUAllocFloatStatus()\n        self.get_status = P.NPUGetFloatStatus()\n        self.clear_before_grad = P.NPUClearFloatStatus()\n        self.reduce_sum = P.ReduceSum(keep_dims=False)\n        self.base = Tensor(1, mstype.float32)\n        self.less_equal = P.LessEqual()\n        self.hyper_map = C.HyperMap()\n        self.loss_scale = None\n        self.reshape = P.Reshape()\n        self.loss_scaling_manager = scale_update_cell\n        if scale_update_cell:\n            self.loss_scale = Parameter(Tensor(scale_update_cell.get_loss_scale(), dtype=mstype.float32),\n                                        name=\"loss_scale\")\n        self.clip = ClipByGlobalNorm(self.weights, self.config)\n        self.micro_size = config.parallel_config.micro_batch_num\n        self.opt_shard = _get_enable_parallel_optimizer()\n\n    @C.add_flags(has_effect=True)\n    def construct(\n            self,\n            input_ids,\n            loss_mask,\n            input_position,\n            attention_mask,\n            past=None,\n            sens=None,\n    ):\n        \"\"\"Defines the computation performed.\"\"\"\n        weights = self.weights\n        loss = self.network(input_ids, loss_mask, input_position, attention_mask)\n        if sens is None:\n            scaling_sens = self.loss_scale\n            scaling_sens = self.reshape(scaling_sens, (1,))\n        else:\n            scaling_sens = sens\n        # alloc status and clear should be right before gradoperation\n        init = self.alloc_status()\n        status_clear = self.clear_before_grad(init)\n        grads = self.grad(self.network, weights)(\n            input_ids,\n            loss_mask,\n            input_position,\n            attention_mask,\n            self.cast(scaling_sens / self.micro_size, mstype.float32),\n        )\n        init = F.depend(init, grads)\n        get_status = self.get_status(init)\n        init = F.depend(init, get_status)\n        flag_sum = self.reduce_sum(init, (0,))\n        loss = F.depend(loss, status_clear)\n        # apply grad reducer on grads\n        if self.opt_shard:\n            grads = self.grad_reducer(grads)\n            grads = self.hyper_map(F.partial(shard_grad_scale, scaling_sens * self.degree), grads, self.accu_grads)\n        else:\n            accu_grads = self.grad_reducer(self.accu_grads)\n            grads = self.hyper_map(F.partial(grad_scale, scaling_sens * self.degree), grads, accu_grads)\n        if self.enable_global_norm:\n            grads, _ = self.clip(grads)\n        else:\n            grads = self.hyper_map(\n                F.partial(clip_grad, GRADIENT_CLIP_TYPE, GRADIENT_CLIP_VALUE),\n                grads)\n        if self.is_distributed:\n            # sum overflow flag over devices\n            flag_reduce = self.allreduce(flag_sum)\n            cond = self.less_equal(self.base, flag_reduce)\n        else:\n            cond = self.less_equal(self.base, flag_sum)\n        overflow = cond\n        if sens is None:\n            overflow = self.loss_scaling_manager(self.loss_scale, cond)\n        if not overflow:\n            self.optimizer(grads)\n        return (loss, overflow, scaling_sens)\n"
  },
  {
    "path": "codegeex/mindspore/src/preprocess.py",
    "content": "# Copyright 2020 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\n\"\"\"\ntransform wikitext-2, wikitext-103, lambada, openwebtext dataset to mindrecord.\n\"\"\"\nimport argparse\nimport glob\nimport json\nimport os\nimport re\nfrom functools import partial\nfrom multiprocessing import Pool, current_process\n\nimport numpy as np\nfrom mindspore.mindrecord import FileWriter\nfrom src.tokenization_jieba import JIEBATokenizer\n\n\ndef chunks(lst, n):\n    \"\"\"yield n sized chunks from list\"\"\"\n    for i in range(0, len(lst), n):\n        yield lst[i: i + n]\n\n\ndef package_file(it, n):\n    \"\"\"package multiple files\"\"\"\n    stop = False\n    while not stop:\n        batch = []\n        for _ in range(n):\n            try:\n                batch.append(next(it))\n            except StopIteration:\n                stop = True\n        if not batch:\n            break\n        yield batch\n\n\ndef clean_wikitext(string):\n    \"\"\"cleaning wikitext dataset\"\"\"\n    # contractions\n    string = string.replace(\"s '\", \"s'\")\n    string = re.sub(r\"/' [0-9]/\", r\"/'[0-9]/\", string)\n    # number separators\n    string = string.replace(\" @-@ \", \"-\")\n    string = string.replace(\" @,@ \", \",\")\n    string = string.replace(\" @.@ \", \".\")\n    # punctuation\n    string = string.replace(\" : \", \": \")\n    string = string.replace(\" ; \", \"; \")\n    string = string.replace(\" . \", \". \")\n    string = string.replace(\" ! \", \"! \")\n    string = string.replace(\" ? \", \"? \")\n    string = string.replace(\" , \", \", \")\n    # double brackets\n    string = re.sub(r\"\\(\\s*([^\\)]*?)\\s*\\)\", r\"(\\1)\", string)\n    string = re.sub(r\"\\[\\s*([^\\]]*?)\\s*\\]\", r\"[\\1]\", string)\n    string = re.sub(r\"{\\s*([^}]*?)\\s*}\", r\"{\\1}\", string)\n    string = re.sub(r\"\\\"\\s*([^\\\"]*?)\\s*\\\"\", r'\"\\1\"', string)\n    string = re.sub(r\"'\\s*([^']*?)\\s*'\", r\"'\\1'\", string)\n    # miscellaneous\n    string = string.replace(\"= = = =\", \"====\")\n    string = string.replace(\"= = =\", \"===\")\n    string = string.replace(\"= =\", \"==\")\n    string = string.replace(\" \" + chr(176) + \" \", chr(176))\n    string = string.replace(\" \\n\", \"\\n\")\n    string = string.replace(\"\\n \", \"\\n\")\n    string = string.replace(\" N \", \" 1 \")\n    string = string.replace(\" 's\", \"'s\")\n    return string\n\n\ndef tokenize_openwebtext(tokenizer, iterator, seq_length, eot):\n    \"\"\"tokenize openwebtext dataset\"\"\"\n    for file_path in iterator:\n        if os.path.getsize(file_path) == 0:\n            continue\n        content = []\n        with open(file_path, \"r\", encoding=\"utf-8\") as f:\n            for para in f.read().split(\"\\n\\n\"):\n                if para:\n                    tokenized_text = tokenizer.tokenize(para)\n                    content += tokenizer.convert_tokens_to_ids(\n                        tokenized_text\n                    ) + [eot]\n        for chunk in chunks(content, seq_length):\n            sample = {}\n            if len(chunk) == seq_length:\n                sample[\"input_ids\"] = np.array(chunk, dtype=np.int32)\n                yield sample\n\n\ndef tokenize_wiki(tokenizer, file_path, seq_length, eot):\n    \"\"\"tokenize wikitext-2/wikitext-103 dataset\"\"\"\n    content = []\n    with open(file_path, \"r\", encoding=\"utf-8\") as f:\n        for para in clean_wikitext(f.read()).split(\"\\n\\n\"):\n            if para and para.strip().startswith(\"=\") is False:\n                tokenized_text = tokenizer.tokenize(para)\n                content += tokenizer.convert_tokens_to_ids(tokenized_text) + [\n                    eot\n                ]\n    for chunk in chunks(content, seq_length):\n        sample = {}\n        if len(chunk) == seq_length:\n            sample[\"input_ids\"] = np.array(chunk, dtype=np.int32)\n            yield sample\n\n\ndef tokenize_lambada(tokenizer, file_path, seq_length, eot):\n    \"\"\"tokenize lambada dataset\"\"\"\n    content = []\n    with open(file_path, \"r\", encoding=\"utf-8\") as f:\n        for line in f.readlines():\n            para = (\n                json.loads(line)[\"text\"]\n                .replace(\"“\", '\"')\n                .replace(\"”\", '\"')\n                .strip()\n                .strip(\".\")\n            )\n            tokenized_text = tokenizer.tokenize(para)\n            content += tokenizer.convert_tokens_to_ids(tokenized_text) + [eot]\n    for chunk in chunks(content, seq_length):\n        sample = {}\n        if len(chunk) == seq_length:\n            sample[\"input_ids\"] = np.array(chunk, dtype=np.int32)\n            yield sample\n\n\ndef task_unit(iterator, tokenizer, seq_length, eot, parallel_writer=True):\n    \"\"\"task for each process\"\"\"\n    p = current_process()\n    index = p.pid if p.pid else 0\n\n    item_iter = tokenize_openwebtext(tokenizer, iterator, seq_length, eot)\n    batch_size = 1024  # size of write batch\n    count = 0\n    while True:\n        data_batch = []\n        try:\n            for _ in range(batch_size):\n                data_batch.append(next(item_iter))\n                count += 1\n            writer.write_raw_data(data_batch, parallel_writer=parallel_writer)\n            print(\"Process {} transformed {} records.\".format(index, count))\n        except StopIteration:\n            if data_batch:\n                writer.write_raw_data(\n                    data_batch, parallel_writer=parallel_writer\n                )\n                print(\"Process {} transformed {} records.\".format(index, count))\n            break\n\n\nif __name__ == \"__main__\":\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--dataset_type\", type=str, default=\"openwebtext\")\n    parser.add_argument(\"--input_glob\", type=str, default=\"*.txt\")\n    parser.add_argument(\n        \"--output_file\", type=str, default=\"./output/transfered_mindrecord\"\n    )\n    parser.add_argument(\n        \"--tokenizer\", type=str, default=\"gpt\", choices=[\"gpt\", \"jieba\"]\n    )\n    parser.add_argument(\"--vocab_file\", type=str, default=None)\n    parser.add_argument(\"--model_file\", type=str, default=None)\n    parser.add_argument(\"--file_partition\", type=int, default=1)\n    parser.add_argument(\"--file_batch_size\", type=int, default=1024)\n    parser.add_argument(\"--num_process\", type=int, default=64)\n    parser.add_argument(\"--seq_length\", type=int, default=1025)\n    parser.add_argument(\"--eot\", type=int, default=50256)\n    parser.add_argument(\"--data_column_name\", type=str, default=\"input_ids\")\n\n    args = parser.parse_args()\n\n    out_dir, out_file = os.path.split(os.path.abspath(args.output_file))\n    if not os.path.exists(out_dir):\n        os.mkdir(out_dir)\n    schema = {\n        args.data_column_name: {\"type\": \"int32\", \"shape\": [-1]},\n    }\n    writer = FileWriter(\n        file_name=args.output_file, shard_num=args.file_partition\n    )\n    writer.add_schema(schema, args.dataset_type)\n    writer.open_and_set_header()\n\n    # Start to load tokenizer\n    if args.tokenizer == \"gpt\":\n        try:\n            from transformers import GPT2Tokenizer\n        except ModuleNotFoundError:\n            print(\"module 'transformers' not installed.\")\n        word_tokenizer = GPT2Tokenizer.from_pretrained(\"gpt2\")\n    else:\n        if not os.path.exists(args.vocab_file):\n            raise FileNotFoundError(f\"file {args.vocab_file} do not exists.\")\n        if not os.path.exists(args.model_file):\n            raise FileNotFoundError(f\"file {args.model_file} do not exists.\")\n        word_tokenizer = JIEBATokenizer(\n            vocab_file=args.vocab_file, model_file=args.model_file\n        )\n\n    transforms_count = 0\n    if args.dataset_type == \"wiki\":\n        for x in tokenize_wiki(\n                word_tokenizer, args.input_glob, args.seq_length, args.eot\n        ):\n            transforms_count += 1\n            writer.write_raw_data([x])\n        print(\"Transformed {} records.\".format(transforms_count))\n    elif args.dataset_type == \"lambada\":\n        for x in tokenize_lambada(\n                word_tokenizer, args.input_glob, args.seq_length, args.eot\n        ):\n            transforms_count += 1\n            writer.write_raw_data([x])\n        print(\"Transformed {} records.\".format(transforms_count))\n    elif args.dataset_type == \"openwebtext\":\n        file_iter = glob.iglob(args.input_glob)\n        with Pool(processes=args.num_process) as pool:\n            map_func = partial(\n                task_unit,\n                tokenizer=word_tokenizer,\n                seq_length=args.seq_length,\n                eot=args.eot,\n            )\n            pool.map(map_func, package_file(file_iter, args.file_batch_size))\n    else:\n        raise ValueError(\n            \"Not support dataset type: {}\".format(args.dataset_type)\n        )\n\n    writer.commit()\n    out_file = args.output_file\n    if args.file_partition > 1:\n        out_file += \"0\"\n    print(\"Transform finished, output files refer: {}\".format(out_file))\n"
  },
  {
    "path": "codegeex/mindspore/src/sat_dataset.py",
    "content": "import pickle\nfrom abc import ABC, abstractmethod\nfrom bisect import bisect_right\n\nimport numpy as np\n\n\nclass Dataset(ABC):\n    @abstractmethod\n    def __len__(self):\n        pass\n\n    @abstractmethod\n    def __getitem__(self, idx):\n        pass\n\n\nclass LMDBDataset(Dataset):\n    def __init__(self, path, process_fn=None):\n        import lmdb\n\n        self.path = path\n        self.env = lmdb.open(\n            path,\n            max_readers=32,\n            readonly=True,\n            lock=False,\n            readahead=False,\n            meminit=False,\n        )\n        self.process_fn = process_fn\n        if not self.env:\n            raise IOError(\"Cannot open lmdb dataset\", path)\n\n        with self.env.begin(write=False) as txn:\n            self.length = int(txn.get(\"length\".encode(\"utf-8\")).decode(\"utf-8\"))\n\n    def __len__(self):\n        return self.length\n\n    def __getitem__(self, idx):\n        # print(f\"Get {self.path}: {idx}\")\n        with self.env.begin(write=False) as txn:\n            key = str(idx).encode(\"utf-8\")\n            # row = pickle.loads(txn.get(key))\n            try:\n                row = pickle.loads(txn.get(key))\n            except TypeError:\n                raise IndexError(\"Index out of range\")\n            if self.process_fn:\n                return self.process_fn(row)\n            else:\n                return row\n\n\nclass PadDataset(Dataset):\n    def __init__(self, dataset, seq_len, eod_id):\n        self.dataset = dataset\n        self.seq_len = seq_len + 1\n        self.eod_id = eod_id\n\n    def __len__(self):\n        return len(self.dataset)\n\n    def __getitem__(self, idx):\n        item = self.dataset[idx][0]\n        return (item[:self.seq_len],) if self.seq_len <= len(item) else (\n        np.concatenate((item, np.ones(self.seq_len - len(item)) * self.eod_id), axis=0),)\n        # return (np.pad(item, (0, 1), constant_values=self.eod_id),)\n\n\nclass BinaryDataset(Dataset):\n    def __init__(\n            self,\n            path,\n            process_fn,\n            length_per_sample=64 + 1024 + 4096,\n            dtype=\"int32\",\n            preload=False,\n            **kwargs,\n    ):  # TODO ARGS\n        assert length_per_sample is not None\n        self.length_per_sample = length_per_sample\n        self.dtype = np.dtype(dtype)\n        self.process_fn = process_fn\n        if preload:\n            self.bin = np.fromfile(path, dtype=self.dtype).reshape(\n                -1, length_per_sample\n            )\n        else:\n            with open(path, \"r\") as fid:\n                nbytes = fid.seek(0, 2)\n                flen = fid.tell() // self.dtype.itemsize\n            self.bin = np.memmap(\n                path,\n                dtype=self.dtype,\n                shape=(flen // length_per_sample, length_per_sample),\n            )\n\n    def __len__(self):\n        return self.bin.shape[0]\n\n    def __getitem__(self, index):\n        print(f\"Get text: {index}\")\n        return self.process_fn(self.bin[index], index)\n\n\nclass TSVDataset(Dataset):\n    def __init__(self, path, process_fn, with_heads=True, **kwargs):\n        self.process_fn = process_fn\n        with open(path, \"r\") as fin:\n            if with_heads:\n                self.heads = fin.readline().split(\"\\t\")\n            else:\n                self.heads = None\n            self.items = [line.split(\"\\t\") for line in fin]\n\n    def __len__(self):\n        return len(self.items)\n\n    def __getitem__(self, index):\n        return self.process_fn(self.items[index])\n\n\nclass ConcatDataset(Dataset):\n    \"\"\"\n    Dataset to concatenate multiple datasets.\n    Purpose: useful to assemble different existing datasets, possibly\n    large-scale datasets as the concatenation operation is done in an\n    on-the-fly manner.\n    Arguments:\n        datasets (sequence): List of datasets to be concatenated.\n    \"\"\"\n\n    @staticmethod\n    def cumsum(sequence, weights):\n        r, s = [], 0\n        for i, e in enumerate(sequence):\n            l = int(len(e) * weights[i])\n            r.append(l + s)\n            s += l\n        return r\n\n    def __init__(self, datasets, weights=None, skip_num=0, **kwargs):\n        super(ConcatDataset, self).__init__()\n        assert len(datasets) > 0, \"datasets should not be an empty iterable\"\n        self.datasets = datasets\n        if weights is None:\n            self.weights = [1] * len(self.datasets)\n        else:\n            self.weights = weights\n        self.cumulative_sizes = self.cumsum(self.datasets, self.weights)\n        self.skip_num = skip_num\n        self.visited_times = 0\n        sample = self.datasets[0][0]\n        self.echo = tuple(np.zeros_like(col).astype(np.int64) for col in sample)\n\n    def __len__(self):\n        return self.cumulative_sizes[-1]\n\n    def __getitem__(self, idx):\n        if (self.visited_times % len(self)) < self.skip_num:\n            self.visited_times += 1\n            # print(\"===return zero\", flush=True)\n            return self.echo\n        dataset_idx = bisect_right(self.cumulative_sizes, idx)\n        if dataset_idx == 0:\n            sample_idx = idx\n        else:\n            sample_idx = idx - self.cumulative_sizes[dataset_idx - 1]\n        sample_idx = sample_idx % len(self.datasets[dataset_idx])\n        return tuple(col.astype(np.int64) for col in self.datasets[dataset_idx][sample_idx])\n\n\nclass RandomMappingDataset(Dataset):\n    \"\"\"\n    Dataset wrapper to randomly mapping indices to original order.\n    Will also enlarge the length\n    \"\"\"\n\n    def __init__(self, ds):\n        self.wrapped_data = ds\n        self.index_mapping = np.random.permutation(np.arange(len(ds)))\n\n    def __len__(self):\n        return len(self.wrapped_data)\n\n    def __getitem__(self, index):\n        # rng = random.Random(index)\n        # rng = np.random.RandomState(\n        #     seed=[rng.randint(0, 2 ** 32 - 1) for _ in range(16)]\n        # )\n        # index = rng.randint(len(self.wrapped_data))\n        return self.wrapped_data[self.index_mapping[index]]\n\n\nclass BlockedSplitDataset(Dataset):\n    \"\"\"\n    Dataset wrapper to access a subset of another dataset.\n    Use block algorithm to reduce memory.\n    In each block, using the `indices` items.\n    \"\"\"\n\n    def __init__(self, ds, indices, block_size):\n        if type(indices) is not np.ndarray:\n            indices = np.array(indices)\n        indices = np.sort(indices)\n        self.block_size = block_size\n        self.wrapped_data = ds\n        self.wrapped_data_len = len(ds)\n        self.indices = indices\n        self.len = len(indices) * (len(ds) // block_size) + np.sum(indices < (len(ds) % block_size))\n\n    def __len__(self):\n        return self.len\n\n    def __getitem__(self, index):\n        return self.wrapped_data[\n            (index // len(self.indices)) * self.block_size + self.indices[index % len(self.indices)]\n            ]\n\n\nclass SubsetDataset(Dataset):\n    def __init__(self, ds, start, length):\n        assert start >= 0 and length > 0 and start + length <= len(ds), \"Illegal start or length\"\n        self.ds = ds\n        self.start = start\n        self.length = length\n\n    def __len__(self):\n        return self.length\n\n    def __getitem__(self, idx):\n        if idx < 0 or idx >= self.length:\n            raise IndexError(\"Index out of range\")\n        return self.ds[idx + self.start]\n\n\ndef split_train_val_test(ds, split=[0.99, 0.01, 0.0], seed=None):\n    if seed is not None:\n        np.random.seed(seed)\n    if sum(split) == 0:\n        raise Exception(\"Split cannot sum to 0.\")\n    if sum(split) > 1:\n        raise Exception(\"Split portion exceeds 1.\")\n    start_idx = 0\n    rtn_ds = [None] * len(split)\n    proportions = [s * len(ds) for s in split]\n    if sum(proportions) > len(ds):\n        raise NotImplementedError(\"Split ratio exceeds in split_train_val_test!\")\n    random_mapping_ds = RandomMappingDataset(ds)\n    for i, f in enumerate(split):\n        proportion = int(len(random_mapping_ds) * f)\n        if proportion != 0:\n            rtn_ds[i] = SubsetDataset(ds=ds, start=start_idx, length=proportion)\n            start_idx += proportion\n    return rtn_ds\n\n# def split_ds(ds, split=[0.99, 0.01, 0.0], seed=1):\n#     \"\"\"\n#     Split a dataset into subsets given proportions of how\n#     much to allocate per split. If a split is 0% returns None for that split.\n#     Purpose: Useful for creating train/val/test splits\n#     Arguments:\n#         ds (Dataset or array-like): Data to be split.\n#         split (1D array-like): proportions to split `ds`. `sum(splits) != 0`\n#         shuffle (boolean): Randomly split dataset. Default: True\n#     \"\"\"\n#     np.random.seed(seed)\n#     split_sum = sum(split)\n#     if split_sum == 0:\n#         raise Exception(\"Split cannot sum to 0.\")\n#     split = np.array(split, dtype=np.float32)\n#     split /= split.sum()\n\n#     start_idx = 0\n#     residual_idx = 0\n#     rtn_ds = [None] * len(split)\n#     random_mapping_ds = RandomMappingDataset(ds)\n#     for i, f in enumerate(split):\n#         if f != 0:\n#             proportion = len(random_mapping_ds) * split[i]\n\n\n#     indices = np.random.permutation(np.array(range(block_size)))\n#     for i, f in enumerate(split):\n#         if f != 0:\n#             proportion = block_size * split[i]\n#             residual_idx += proportion % 1\n#             split_ = int(int(proportion) + residual_idx)\n#             rtn_ds[i] = BlockedSplitDataset(\n#                 ds,\n#                 indices[range(start_idx, start_idx + max(split_, 1))],\n#                 block_size,\n#             )\n#             start_idx += split_\n#             residual_idx %= 1\n#     return rtn_ds\n"
  },
  {
    "path": "codegeex/mindspore/src/tokenization_jieba.py",
    "content": "# coding=utf-8\n# Copyright 2018 The Open AI Team Authors and The HuggingFace Inc. team.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"Tokenization classes for OpenAI GPT.\"\"\"\nfrom __future__ import (absolute_import, division, print_function,\n                        unicode_literals)\n\nfrom io import open\n\nimport jieba\nimport sentencepiece as spm\n\n\nclass JIEBATokenizer():\n    r\"\"\"\n    Jieba Tokenizer\n    \"\"\"\n\n    def __init__(self, vocab_file, model_file, max_len=None):\n        self.max_len = max_len if max_len is not None else int(1e12)\n        f = open(vocab_file, 'r')\n        lines = f.readlines()\n        self.encoder = {}\n        for line in enumerate(lines):\n            key = line[1].split('\\t')[0]\n            self.encoder[key] = line[0]\n\n        self.decoder = {v: k for k, v in self.encoder.items()}\n\n        self.sp = spm.SentencePieceProcessor(model_file=model_file)\n        self.translator = str.maketrans(\" \\n\", \"\\u2582\\u2583\")\n\n        self.eod_id = self.encoder['<eod>']\n        self.eot_id = self.encoder['<eot>']\n        self.pad_id = self.encoder['<pad>']\n\n    @property\n    def vocab_size(self):\n        return len(self.encoder)\n\n    def __len__(self):\n        return len(self.encoder) + len(self.special_tokens)\n\n    @property\n    def eod(self):\n        return self.eod_id\n\n    def tokenize(self, text):\n        \"\"\" Tokenize a string. \"\"\"\n        seg_list = [x.translate(self.translator) for x in jieba.cut(text, cut_all=False)]\n        new_seg = \" \".join(seg_list)\n        return self.sp.encode(new_seg)\n\n    def convert_tokens_to_ids(self, tokens):\n        return tokens\n\n    def convert_ids_to_tokens(self, ids):\n        return self.decode(ids)\n\n    def encode(self, text):\n        res = self.tokenize(text)\n        return res\n\n    def decode(self, tokens):\n        text = self.sp.decode(tokens)\n        text = text.replace(' ', '').replace('\\u2582', ' ').replace('\\u2583', '\\n')\n        return text\n"
  },
  {
    "path": "codegeex/mindspore/src/utils.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nnetwork config setting, gradient clip function and dynamic learning rate function\n\"\"\"\nimport argparse\nimport ast\nimport hashlib\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.nn as nn\nimport numpy as np\nfrom mindspore import context\nfrom mindspore.common import Parameter, ParameterTuple\nfrom mindspore.common.initializer import initializer\nfrom mindspore.common.tensor import Tensor\nfrom mindspore.communication.management import get_rank, get_group_size, create_group\nfrom mindspore.nn import AdamWeightDecay\nfrom mindspore.nn.learning_rate_schedule import LearningRateSchedule, PolynomialDecayLR, WarmUpLR, CosineDecayLR\nfrom mindspore.ops import composite as C\nfrom mindspore.ops import functional as F\nfrom mindspore.ops import operations as P\nfrom mindspore.parallel._auto_parallel_context import auto_parallel_context\n\n\nclass FP32StateAdamWeightDecay(AdamWeightDecay):\n    r\"\"\"\n        This class is almost same with the mindspore's AdamWeightDecay implements, the\n        only difference is the optimizer's state will be always initialized with float32,\n        where the original AdamWeightDecay will initialize the optimizer's state with float16,\n        if the parameters are initialized with fp16.\n        This setting will avoid overflow in training PanGu-Alpha model using fp16.\n    \"\"\"\n\n    def __init__(self, params, learning_rate=1e-3, beta1=0.9, beta2=0.999, eps=1e-6, weight_decay=0.0):\n        super(FP32StateAdamWeightDecay, self).__init__(params, learning_rate=learning_rate,\n                                                       beta1=beta1,\n                                                       beta2=beta2,\n                                                       eps=eps,\n                                                       weight_decay=weight_decay)\n\n        self.moments1 = self.clone_state(self.parameters, prefix='adam_m', init='zeros')\n        self.moments2 = self.clone_state(self.parameters, prefix='adam_v', init='zeros')\n\n    def clone_state(self, parameter_tuple, prefix, init):\n        r\"\"\"\n            parameter_tuple: ParameterTuple. The parameters of the network\n            prefix: str. The prefix name of the parameters\n            init: str. The initialization method\n        \"\"\"\n        new = []\n        for old_param in parameter_tuple:\n            new_state = Parameter(initializer(init, shape=old_param.shape, dtype=mstype.float32))\n            new_state.param_info = old_param.param_info.clone()\n            new_state.is_init = False\n            new_state.set_data(initializer(init, shape=old_param.shape, dtype=mstype.float32))\n            new_state.name = prefix + '.' + new_state.name\n            new.append(new_state)\n        return ParameterTuple(new)\n\n\nget_square_sum = C.MultitypeFuncGraph(\"get_square_sum\")\n\n\n@get_square_sum.register(\"Tensor\", \"Number\")\ndef _get_square_sum(grad, value):\n    norm = P.ReduceSum(False)(F.square(grad), ()) / value\n    norm = F.expand_dims(F.cast(norm, mstype.float32), 0)\n    return norm\n\n\napply_global_norm = C.MultitypeFuncGraph(\"apply_global_norm\")\n\n\n@apply_global_norm.register(\"Bool\", \"Tensor\", \"Tensor\", \"Tensor\")\ndef _apply_global_norm(enable_grad_fp16, clip_norm, global_norm, grad):\n    if enable_grad_fp16:\n        grad = P.Cast()(grad * clip_norm / global_norm, mstype.float16)\n    else:\n        grad = grad * clip_norm / global_norm\n    return grad\n\n\ndef _get_model_parallel_group(mp):\n    \"\"\"\n\n    Calculate the communication group of model parallel dim in one pipeline stage\n\n    \"\"\"\n    rank = get_rank()\n    stage_nums = auto_parallel_context().get_pipeline_stages()\n    device_nums = get_group_size()\n    per_stage_device_nums = device_nums // stage_nums\n    stage_id = rank // per_stage_device_nums\n    local_stage_rank_id = rank % per_stage_device_nums\n    index = local_stage_rank_id // mp\n    group = range(0, mp)\n    rank_str_list = [str(x + index * mp + stage_id * per_stage_device_nums) for x in group]\n    rank_list_str = \"-\".join(rank_str_list)\n    rank_list = [x + index * mp + stage_id * per_stage_device_nums for x in group]\n    return rank_list, rank_list_str\n\n\ndef _get_pipeline_group():\n    \"\"\"\n\n    Calculate the communication group between all pipeline stages\n\n    \"\"\"\n    rank = get_rank()\n    stage_nums = auto_parallel_context().get_pipeline_stages()\n    device_nums = get_group_size()\n    per_stage_device_nums = device_nums // stage_nums\n    local_stage_rank_id = rank % per_stage_device_nums\n    group = range(0, stage_nums)\n    rank_list = [local_stage_rank_id + x * per_stage_device_nums for x in group]\n    rank_str_list = [str(local_stage_rank_id + x * per_stage_device_nums) for x in group]\n    rank_list_str = \"-\".join(rank_str_list)\n    return rank_list, rank_list_str\n\n\nclass GlobalNorm(nn.Cell):\n    \"\"\"\n    Calculate the global norm value of given tensors\n    \"\"\"\n\n    def __init__(self, params, config):\n        super(GlobalNorm, self).__init__()\n        self.norm = nn.Norm()\n        self.hyper_map = C.HyperMap()\n        self.is_pipeline = context.get_auto_parallel_context(\"pipeline_stages\") > 1\n        optimizer_weight_shard_size = context.get_auto_parallel_context(\"optimizer_weight_shard_size\")\n        if self.is_pipeline:\n            if context.get_auto_parallel_context(\"enable_parallel_optimizer\"):\n                group_size = get_group_size() // config.parallel_config.pipeline_stage\n                if optimizer_weight_shard_size > 0:\n                    group_size = optimizer_weight_shard_size\n            else:\n                group_size = config.parallel_config.model_parallel\n            group_list, group_name = _get_model_parallel_group(group_size)\n            # In avoid of the group name too long\n            hashed = hashlib.md5(group_name.encode()).hexdigest()[:48]\n            print(f\"Creating hash value for the group_name hash({group_name})={hashed}\")\n            group_name = str(hashed)\n            create_group(group_name, group_list)\n            self.allreduce = P.AllReduce(group=group_name)\n            pipeline_group_list, pipeline_group_name = _get_pipeline_group()\n            hashed = hashlib.md5(pipeline_group_name.encode()).hexdigest()[:48]\n            print(f\"Creating hash value for the group_name hash({pipeline_group_name})={hashed}\")\n            pipeline_group_name = str(hashed)\n            create_group(pipeline_group_name, pipeline_group_list)\n            self.allreduce2 = P.AllReduce(group=pipeline_group_name)\n        else:\n            opt_shard_size = config.parallel_config.data_parallel\n            mp = config.parallel_config.model_parallel\n            if context.get_auto_parallel_context(\"enable_parallel_optimizer\") and optimizer_weight_shard_size > 0:\n                opt_shard_size = optimizer_weight_shard_size\n            group_size = opt_shard_size * mp\n            world_size = get_group_size()\n            dense_repeat_num = world_size // group_size\n            layernorm_and_bias_repeat_num = world_size\n            word_embbedding_repeat_num = world_size // mp\n            position_embedding_repeat_num = world_size\n\n        self.allreduce_group_size = ()\n        for x in params:\n            if \"projection.bias\" not in x.name and \"layernorm\" not in x.name and \"embedding_table\" not in x.name:\n                self.allreduce_group_size = self.allreduce_group_size + (dense_repeat_num * 1.0,)\n            elif \"embedding_table\" not in x.name:\n                self.allreduce_group_size = self.allreduce_group_size + (layernorm_and_bias_repeat_num * 1.0,)\n            else:\n                if not config.parallel_config.vocab_emb_dp and \"position_embedding.embedding_table\" not in x.name \\\n                        and \"top_query_embedding_table\" not in x.name:\n                    self.allreduce_group_size = self.allreduce_group_size + \\\n                                                (word_embbedding_repeat_num * 1.0,)\n                else:\n                    self.allreduce_group_size = self.allreduce_group_size + (position_embedding_repeat_num * 1.0,)\n\n    def construct(self, grads):\n        \"\"\"Calculate global norm construct\"\"\"\n        square_sum = self.hyper_map(get_square_sum, grads, self.allreduce_group_size)\n        square_reduce_sum = F.addn(square_sum)\n        if self.is_pipeline:\n            stage_square_reduce_sum = self.allreduce(square_reduce_sum)\n            global_square_reduce_sum = self.allreduce2(stage_square_reduce_sum)\n            global_norms = F.sqrt(global_square_reduce_sum)\n        else:\n            global_norms = F.sqrt(P.AllReduce()(square_reduce_sum))\n        return grads, global_norms\n\n\nclass ClipByGlobalNorm(nn.Cell):\n    \"\"\"\n\n    Clip grads by global norm\n\n    \"\"\"\n\n    def __init__(self, params, config, clip_norm=1.0):\n        super(ClipByGlobalNorm, self).__init__()\n        self.global_norm = GlobalNorm(params, config)\n        self.clip_norm = Tensor([clip_norm], mstype.float32)\n        self.hyper_map = C.HyperMap()\n        if config.param_init_type == mstype.float16 and config.enable_offload:\n            self.enable_grad_fp16 = True\n        else:\n            self.enable_grad_fp16 = False\n\n    def construct(self, grads):\n        \"\"\"Clip grads by global norm construct\"\"\"\n        grads, global_norm_value = self.global_norm(grads)\n        cond = P.GreaterEqual()(global_norm_value, self.clip_norm)\n        global_norm = F.select(cond, global_norm_value, self.clip_norm)\n        grads = self.hyper_map(F.partial(apply_global_norm, self.enable_grad_fp16, self.clip_norm, global_norm), grads)\n        return grads, global_norm_value\n\n\nclass LearningRate(LearningRateSchedule):\n    \"\"\"\n    Warmup-decay learning rate for PanguAlpha network.\n    \"\"\"\n\n    def __init__(self,\n                 learning_rate,\n                 end_learning_rate,\n                 warmup_steps,\n                 decay_steps,\n                 power=1.0,\n                 use_cosine=True):\n        super(LearningRate, self).__init__()\n        self.warmup_flag = False\n        if warmup_steps > 0:\n            self.warmup_flag = True\n            self.warmup_lr = WarmUpLR(learning_rate, warmup_steps)\n        self.decay_lr = PolynomialDecayLR(learning_rate, end_learning_rate,\n                                          decay_steps, power)\n        self.cosine_decay_lr = CosineDecayLR(end_learning_rate, learning_rate,\n                                             decay_steps)\n        self.warmup_steps = Tensor(np.array([warmup_steps]).astype(np.float32))\n\n        self.greater = P.Greater()\n        self.one = Tensor(np.array([1.0]).astype(np.float32))\n        self.cast = P.Cast()\n        self.print = P.Print()\n        self.use_cosine = use_cosine\n\n    def construct(self, global_step):\n        \"\"\"dynamic learning rate\"\"\"\n        if not self.use_cosine:\n            decay_lr = self.decay_lr(global_step)\n        else:\n            decay_lr = self.cosine_decay_lr(global_step)\n        if self.warmup_flag:\n            is_warmup = self.cast(self.greater(self.warmup_steps, global_step),\n                                  mstype.float32)\n            warmup_lr = self.warmup_lr(global_step)\n            lr = (self.one - is_warmup) * decay_lr + is_warmup * warmup_lr\n        else:\n            lr = decay_lr\n        # self.print(f\"Learning rate: {lr.asnumpy().tolist()}\")\n        return lr\n\n\ndef add_inference_params(opt):\n    \"\"\"Add inference params\"\"\"\n    opt.add_argument(\"--frequency_penalty\",\n                     type=float,\n                     default=1.5,\n                     help=\"coefficient for frequency_penalty\")\n    opt.add_argument(\"--presence_penalty\",\n                     type=float,\n                     default=0.3,\n                     help=\"coefficient for presence_penalty\")\n    opt.add_argument(\"--max_generate_length\",\n                     type=int,\n                     default=2048,\n                     help=\"the maximum number of generated token\")\n    opt.add_argument(\"--top_k_num\",\n                     type=int,\n                     default=3,\n                     help=\"the number for top_k sampling\")\n    opt.add_argument(\"--top_p\",\n                     type=float,\n                     default=1.0,\n                     help=\"top_p sampling threshold, enabled if less than 1.0\")\n    opt.add_argument(\"--end_token\",\n                     type=int,\n                     default=50256,\n                     help=\"the token id for <end of document>\")\n    opt.add_argument(\"--use_pynative_op\",\n                     type=int,\n                     default=0,\n                     help=\"Whether use pynative op for postproecess\")\n    opt.add_argument(\"--use_past\",\n                     type=str,\n                     default=\"true\",\n                     choices=[\"true\", \"false\"],\n                     help=\"Whether enable state reuse\")\n\n\ndef add_training_params(opt):\n    \"\"\"Add training params\"\"\"\n    opt.add_argument(\"--seq_length\",\n                     type=int,\n                     default=2048,\n                     help=\"sequence length, default is 2048.\")\n    opt.add_argument(\"--vocab_size\",\n                     type=int,\n                     default=40000,\n                     help=\"vocabulary size, default is 40000.\")\n    opt.add_argument(\"--embedding_size\",\n                     type=int,\n                     default=16384,\n                     help=\"embedding table size, default is 16384.\")\n    opt.add_argument(\"--num_layers\",\n                     type=int,\n                     default=64,\n                     help=\"total layers, default is 64.\")\n    opt.add_argument(\"--num_heads\",\n                     type=int,\n                     default=128,\n                     help=\"head size, default is 128.\")\n    opt.add_argument(\"--stage_num\",\n                     type=int,\n                     default=1,\n                     help=\"Pipeline stage num, default is 1.\")\n    opt.add_argument(\"--micro_size\",\n                     type=int,\n                     default=1,\n                     help=\"Pipeline micro_size, default is 1.\")\n    opt.add_argument(\"--eod_reset\",\n                     type=int,\n                     default=1,\n                     help=\"Enable eod mask, default is 1.\")\n    opt.add_argument(\"--warmup_step\",\n                     type=int,\n                     default=2000,\n                     help=\"Warmup step, default is 2000.\")\n    opt.add_argument(\"--decay_steps\",\n                     type=int,\n                     default=200000,\n                     help=\"Decay step, default is 200000.\")\n    opt.add_argument(\"--optimizer\",\n                     type=str,\n                     default=\"adam\",\n                     choices=[\"adam\", \"lamb\"],\n                     help=\"select which optimizer to be used, default adam\")\n    opt.add_argument(\"--opt_offload\",\n                     type=int, default=0,\n                     help=\"Enable optimizer status offload to host CPU, default is 0\")\n    opt.add_argument(\"--use_moe\",\n                     type=int, default=0,\n                     help=\"Use moe, default is 0\")\n    opt.add_argument(\"--per_dp_dim_expert_num\",\n                     type=int, default=1,\n                     help=\"Expert nums in one data parallel dim, only effective when applying moe, default is 1\")\n    opt.add_argument(\"--eod_id\",\n                     type=int, default=50256,\n                     help=\"The id of end of document\")\n    opt.add_argument(\"--epoch_size\",\n                     type=int, default=1,\n                     help=\"The training epoch\")\n    opt.add_argument(\"--sink_size\",\n                     type=int, default=2,\n                     help=\"The sink size of the training. default is 2\")\n    opt.add_argument(\"--full_batch\",\n                     default=1, type=int,\n                     help=\"Import the full size of a batch for each card, default is 1\")\n    opt.add_argument(\"--optimizer_shard\",\n                     type=int,\n                     default=1,\n                     help=\"Enable optimizer parallel, default is 1\")\n    opt.add_argument(\"--per_batch_size\",\n                     type=int,\n                     default=0,\n                     help=\"The batch size for each data parallel way. default 6\")\n    opt.add_argument(\"--start_lr\",\n                     type=float,\n                     default=5e-5,\n                     help=\"The start learning rate. default 5e-5\")\n    opt.add_argument(\"--dropout_rate\",\n                     type=float,\n                     default=0.1,\n                     help=\"The dropout rate. default 0.1\")\n    opt.add_argument(\"--end_lr\",\n                     type=float,\n                     default=1e-6,\n                     help=\"The end learning rate. default 1e-6\")\n    opt.add_argument(\"--op_level_model_parallel_num\",\n                     type=int,\n                     default=8,\n                     help=\"The model parallel way. default 8\")\n    opt.add_argument(\"--word_emb_dp\",\n                     type=int, default=1,\n                     choices=[0, 1],\n                     help=\"Whether do data parallel in word embedding. default 1\")\n    opt.add_argument(\"--gradient_aggregation_group\",\n                     type=int, default=4,\n                     help=\"The gradient communication fusion group. default 4\")\n    opt.add_argument(\"--data_column_name\",\n                     type=str, default=\"input_ids\",\n                     help=\"Column name of datasets\")\n\n\ndef add_retrain_params(opt):\n    \"\"\"\n    Add parameters about retrain.\n    \"\"\"\n    opt.add_argument(\"--pre_trained\",\n                     type=str,\n                     default=None,\n                     help=\"Pretrained checkpoint path.\")\n    opt.add_argument(\"--save_checkpoint_path\",\n                     type=str,\n                     default=None,\n                     help=\"Save checkpoint path.\")\n    opt.add_argument(\"--save_checkpoint_obs_path\",\n                     type=str,\n                     default=None,\n                     help=\"Save checkpoint path on OBS.\")\n    opt.add_argument(\"--keep_checkpoint_max\",\n                     type=int,\n                     default=1,\n                     help=\"Max checkpoint save number.\")\n    opt.add_argument(\"--save_checkpoint_steps\",\n                     type=int,\n                     default=2000,\n                     help=\"Save checkpoint step number.\")\n    opt.add_argument(\"--save_checkpoint\",\n                     type=ast.literal_eval,\n                     default=False,\n                     help=\"Whether save checkpoint in local disk.\")\n    opt.add_argument(\"--ckpt_name_prefix\",\n                     type=str,\n                     default=\"pangu\",\n                     help=\"Saving checkpoint name prefix.\")\n    opt.add_argument(\"--has_trained_epoches\",\n                     type=int,\n                     default=0,\n                     help=\"Epoches has been trained before.\")\n    opt.add_argument(\"--has_trained_steps\",\n                     type=int,\n                     default=0,\n                     help=\"Steps has been trained before.\")\n\n\ndef get_args(inference=False):\n    \"\"\"train function for PanguAlpha\"\"\"\n    parser = argparse.ArgumentParser(description=\"PanguAlpha training\")\n    parser.add_argument('--device_id',\n                        type=int,\n                        default=0,\n                        help=\"Device id, default is 0.\")\n    parser.add_argument(\"--device_num\",\n                        type=int,\n                        default=128,\n                        help=\"Use device nums, default is 128.\")\n    parser.add_argument(\"--distribute\",\n                        type=str,\n                        default=\"true\",\n                        choices=[\"true\", \"false\"],\n                        help=\"Run distribute, default is true.\")\n    parser.add_argument(\"--load_ckpt_name\",\n                        type=str,\n                        default=None,\n                        help=\"checkpint file name.\")\n    parser.add_argument(\"--load_ckpt_path\",\n                        type=str,\n                        default=None,\n                        help=\"checkpoint file path.\")\n    parser.add_argument(\"--load_ckpt_epoch\",\n                        type=int,\n                        default=None,\n                        help=\"checkpoint epoch.\")\n    parser.add_argument('--code_data',\n                        type=str,\n                        required=True,\n                        help='Location of code data.')\n    parser.add_argument(\"--tb_dir\",\n                        type=str,\n                        required=True,\n                        help=\"Location of tensorboard log\")\n    parser.add_argument(\"--language\",\n                        type=str,\n                        default=None,\n                        help=\"Language of task\")\n    parser.add_argument(\"--part\",\n                        type=int,\n                        default=None,\n                        help=\"Part of task\")\n    parser.add_argument('--eval_data_url',\n                        required=False,\n                        default=None,\n                        help='Location of eval data.')\n    parser.add_argument('--train_url',\n                        required=False,\n                        default=None,\n                        help='Location of training outputs.')\n    parser.add_argument(\"--run_type\",\n                        type=str,\n                        default=\"predict\",\n                        choices=[\"train\", \"predict\"],\n                        help=\"The run type\")\n    parser.add_argument(\"--mode\",\n                        type=str,\n                        default=\"2.6B\",\n                        choices=[\"200B\", \"13B\", \"2.6B\", \"base\", \"dev\", \"self_define\"],\n                        help=\"The scale of the model parameters\")\n    parser.add_argument(\"--device_target\",\n                        type=str,\n                        default=\"Ascend\",\n                        choices=[\"Ascend\", \"GPU\"],\n                        help=\"The running device\")\n    parser.add_argument(\"--strategy_load_ckpt_path\",\n                        type=str,\n                        default=\"\",\n                        help=\"The training prallel strategy for the model.\")\n    parser.add_argument(\"--tokenizer_path\",\n                        type=str,\n                        default=\"./tokenizer_path\",\n                        help=\"The path where stores vocab and vocab model file\")\n    parser.add_argument(\"--param_init_type\",\n                        type=str,\n                        default=\"fp32\",\n                        help=\"The initialization type for parameters. Default fp32.\")\n    parser.add_argument(\"--offline\",\n                        type=int,\n                        default=1,\n                        help=\"Running on cloud of not. Default 1.\")\n    parser.add_argument(\"--export\",\n                        type=int,\n                        default=0,\n                        help=\"Whether export mindir for serving.\")\n    parser.add_argument(\"--incremental_training\",\n                        type=int,\n                        default=0,\n                        help=\"Enable incremental training. Default 0.\")\n    parser.add_argument(\"--train_and_eval_mode\",\n                        type=int,\n                        default=0,\n                        help=\"Enable evaling while training. Default 0.\")\n    parser.add_argument(\"--eval_steps\",\n                        type=int,\n                        default=10,\n                        help=\"The eval step in train and eval mode. Default 10.\")\n    parser.add_argument(\n        \"--profiling\",\n        type=int,\n        default=0,\n        help=\"Enable profiling. Default 0\",\n    )\n    parser.add_argument(\n        \"--micro_interleaved_size\",\n        type=int,\n        default=1,\n        help=\"Enable MicroInterLeaved when micro_interleaved_size > 1. Default 1\",\n    )\n    parser.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Temperature for inference. Default 1.0\",\n    )\n    add_training_params(parser)\n    add_retrain_params(parser)\n    if inference:\n        add_inference_params(parser)\n    args_opt = parser.parse_args()\n\n    return args_opt\n\n\ndef download_data(src_data_url, tgt_data_path, rank):\n    \"\"\"\n        Download the dataset from the obs.\n        src_data_url (Str): should be the dataset path in the obs\n        tgt_data_path (Str): the local dataset path\n        rank (Int): the current rank id\n\n    \"\"\"\n    cache_url = tgt_data_path\n    EXEC_PATH = \"/tmp\"\n    if rank % 8 == 0:\n        import moxing as mox\n        print(\"Modify the time out from 300 to 30000\")\n        print(\"begin download dataset\", flush=True)\n\n        if not os.path.exists(cache_url):\n            os.makedirs(cache_url, exist_ok=True)\n        mox.file.copy_parallel(src_url=src_data_url, dst_url=cache_url)\n        print(\"Dataset download succeed!\", flush=True)\n\n        f = open(\"%s/install.txt\" % (EXEC_PATH), \"w\")\n        f.close()\n    # stop\n    while not os.path.exists(\"%s/install.txt\" % (EXEC_PATH)):\n        time.sleep(1)\n\n# class LossSummaryCallback(Callback):\n#     def __init__(self, summary_dir, bucket, local_rank=0, has_trained_epoch=0, has_trained_step=0, syn_times=100):\n#         self._summary_dir = summary_dir\n#         self.local_rank = local_rank\n#         self.has_trained_epoch = has_trained_epoch\n#         self.has_trained_step = has_trained_step\n\n#         self.bucket = bucket\n#         self.syn_times = syn_times\n\n#         if not mox.file.exists(self.bucket):\n#             print(\"Creating summary bucket dir {}\".format(self.bucket))\n#             mox.file.make_dirs(self.bucket)\n\n#         print(\"entering\")\n#         self.summary_record = SummaryRecord(self._summary_dir)\n\n#     def step_end(self, run_context):\n#         cb_params = run_context.original_args()\n#         cur_step = cb_params.cur_step_num + self.has_trained_step\n#         # create a confusion matric image, and record it to summary file\n#         print(\"writing\")\n#         self.summary_record.add_value('scalar', 'loss', cb_params.net_outputs[0])\n#         self.summary_record.add_value('scalar', 'scale', cb_params.net_outputs[2])\n#         if len(cb_params.net_outputs) > 3:\n#             self.summary_record.add_value('scalar', 'global_norm', cb_params.net_outputs[3])\n#         self.summary_record.record(cur_step)\n\n#         print(\"writing finished...\",cur_step, self.syn_times)\n#         if cur_step % self.syn_times == 0:\n#             print(\"Copying summary to the buckets start\", flush=True)\n#             self.summary_record.flush()\n#             self.syn_files()\n#             print(\"Copying summary to the buckets ends\", flush=True)\n\n#     def syn_files(self):\n#         process = Process(target=mox.file.copy_parallel, args=(self._summary_dir, self.bucket), name=\"file_sync\")\n#         process.start()\n"
  },
  {
    "path": "codegeex/mindspore/train.py",
    "content": "# Copyright 2021 Huawei Technologies Co., Ltd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n# ============================================================================\n\"\"\"\nPanguAlpha train script\n\"\"\"\n\nimport datetime\nimport glob\nimport json\nimport math\nimport os\nimport time\n\nimport mindspore.common.dtype as mstype\nimport mindspore.communication.management as D\nimport mindspore.nn as nn\nimport moxing as mox\nfrom mindspore import context\nfrom mindspore.context import ParallelMode\nfrom mindspore.nn.wrap.cell_wrapper import PipelineCell, _VirtualDatasetCell, MicroBatchInterleaved\nfrom mindspore.nn.wrap.loss_scale import DynamicLossScaleUpdateCell\nfrom mindspore.parallel import set_algo_parameters\nfrom mindspore.parallel._cost_model_context import _set_multi_subgraphs\nfrom mindspore.parallel.nn import TransformerOpParallelConfig, CrossEntropyLoss\nfrom mindspore.profiler import Profiler\nfrom mindspore.train.callback import ModelCheckpoint, CheckpointConfig\nfrom mindspore.train.callback import TimeMonitor\nfrom mindspore.train.model import Model\nfrom mindspore.train.serialization import load_distributed_checkpoint, load_checkpoint, load_param_into_net\nfrom tensorboardX import SummaryWriter\n\nfrom src.adam import AdamWeightDecayOp\nfrom src.callbacks import EvalCallBack, LossCallBack, SaveCheckpointCallback\nfrom src.dataset import create_dataset\nfrom src.metrics import PPLMetric, ValidationLoss\nfrom src.pangu_alpha import PanGUAlphaWithLoss, PanguAlphaModel\nfrom src.pangu_alpha_config import set_parse, PanguAlphaConfig\nfrom src.pangu_alpha_wrapcell import PanguAlphaTrainOneStepWithLossScaleCell, PanguAlphaTrainPipelineWithLossScaleCell\nfrom src.utils import LearningRate, get_args, FP32StateAdamWeightDecay\nfrom src.utils import download_data\n\nproject_root = os.path.abspath(\n    os.path.dirname(os.path.realpath(__file__)) + os.path.sep + \"..\")\nprint('project_root:', project_root)\n\n\ndef set_weight_decay(params):\n    \"\"\"\n    Set weight decay coefficient, zero for bias and layernorm, 1e-1 for rest\n    \"\"\"\n    decay_filter = lambda x: 'layernorm' not in x.name.lower() and \"bias\" not in x.name.lower()\n    decay_params = list(filter(decay_filter, params))\n    other_params = list(filter(lambda x: not decay_filter(x), params))\n    group_params = [\n        {\"params\": decay_params, \"weight_decay\": 1e-1},\n        {\"params\": other_params, \"weight_decay\": 0.0},\n        {\"order_params\": params},\n    ]\n    return group_params\n\n\ndef add_checkpoint_callback_policy(args_param, callback, rank_id):\n    r\"\"\"\n    Add checkpoint policy to callback.\n    \"\"\"\n    if args_param.save_checkpoint:\n        # checkpoint store epoch_num and step_num info\n        ckpt_append_info = [{\"epoch_num\": args_param.has_trained_epoches, \"step_num\": args_param.has_trained_steps}]\n        ckpt_config = CheckpointConfig(\n            save_checkpoint_steps=args_param.save_checkpoint_steps,\n            keep_checkpoint_max=args_param.keep_checkpoint_max,\n            integrated_save=False,\n            append_info=ckpt_append_info,\n        )\n\n        # save checkpoint into rank directory\n        ckpoint_cb = ModelCheckpoint(prefix=args_param.ckpt_name_prefix + str(rank_id),\n                                     directory=os.path.join(args_param.save_checkpoint_path, f\"rank_{rank_id}\"),\n                                     config=ckpt_config)\n\n        callback.append(ckpoint_cb)\n\n        saveckpt_cb = SaveCheckpointCallback(cache_dir=args_param.save_checkpoint_path,\n                                             bucket=args_param.save_checkpoint_obs_path,\n                                             local_rank=rank_id,\n                                             has_trained_epoch=args_param.has_trained_epoches,\n                                             has_trained_step=args_param.has_trained_steps,\n                                             syn_times=args_param.save_checkpoint_steps)\n        callback.append(saveckpt_cb)\n\n\ndef set_parallel_context(args_opt):\n    r\"\"\"Set parallel context\"\"\"\n    D.init()\n    device_num = D.get_group_size()\n    rank = D.get_rank()\n    print(\"rank_id is {}, device_num is {}\".format(rank, device_num))\n    context.reset_auto_parallel_context()\n    context.set_auto_parallel_context(\n        parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL, gradients_mean=False,\n        full_batch=bool(args_opt.full_batch), strategy_ckpt_load_file=args_opt.strategy_load_ckpt_path,\n        enable_parallel_optimizer=bool(args_opt.optimizer_shard), strategy_ckpt_save_file='strategy.ckpt',\n        optimizer_weight_shard_size=16)\n    set_algo_parameters(elementwise_op_strategy_follow=True)\n    _set_multi_subgraphs()\n    return rank, device_num\n\n\ndef run_train(args_opt):\n    r\"\"\"The main training process.\"\"\"\n    os.environ[\"HCCL_CONNECT_TIMEOUT\"] = \"2000\"\n    # Set execution mode\n    context.set_context(\n        mode=context.GRAPH_MODE, device_target=args_opt.device_target\n    )\n    if args_opt.profiling:\n        profiler = Profiler(output_path=\"/cache/profiler_data\")\n    context.set_context(variable_memory_max_size=\"30GB\")\n    # Set parallel context\n    rank = 0\n    device_num = 1\n    if args_opt.distribute == \"true\":\n        rank, device_num = set_parallel_context(args_opt)\n    context.set_context(\n        save_graphs=False,\n        save_graphs_path=\"/cache/graphs_of_device_id_\" + str(rank),\n    )\n    cache_url = '/cache/Data/'\n    eval_cache_url = '/cache/EvalData/'\n    if not args_opt.offline:\n        download_data(src_data_url=args_opt.data_url, tgt_data_path=cache_url, rank=rank)\n        download_data(src_data_url=args_opt.eval_data_url, tgt_data_path=eval_cache_url, rank=rank)\n    # Set model property\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    data_parallel_num = int(device_num / model_parallel_num)\n    batch_size = args_opt.per_batch_size * data_parallel_num\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num, model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=bool(args_opt.optimizer_shard),\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp), recompute=True,\n                                                  gradient_aggregation_group=args_opt.gradient_aggregation_group)\n\n    micro_interleaved_size = args_opt.micro_interleaved_size\n    config = PanguAlphaConfig(\n        batch_size=batch_size // micro_interleaved_size,\n        num_heads=args_opt.num_heads,\n        hidden_size=args_opt.embedding_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        num_layers=args_opt.num_layers,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        eod_token=args_opt.eod_id,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == \"fp32\"\n        else mstype.float16,\n        dropout_rate=args_opt.dropout_rate,\n        enable_offload=bool(args_opt.opt_offload),\n        use_moe=bool(args_opt.use_moe),\n        per_dp_dim_expert_num=args_opt.per_dp_dim_expert_num,\n        hidden_act=\"fast_gelu\" if args_opt.device_target != \"GPU\" else \"gelu\",\n        parallel_config=parallel_config,\n    )\n    print(\"===config is: \", config, flush=True)\n    # Define network\n    pangu_alpha = PanguAlphaModel(config=config)\n    loss = CrossEntropyLoss(config.parallel_config.dp_mp_config)\n    if micro_interleaved_size > 1:\n        print(\"===using MicroBatchInterleaved\", flush=True)\n        pangu_alpha_with_loss_net = MicroBatchInterleaved(PanGUAlphaWithLoss(config, pangu_alpha, loss),\n                                                          micro_interleaved_size)\n    else:\n        pangu_alpha_with_loss_net = PanGUAlphaWithLoss(config, pangu_alpha, loss)\n    pangu_alpha_with_loss = _VirtualDatasetCell(pangu_alpha_with_loss_net)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    # Warm-up and cosine decay learning rate\n    lr = LearningRate(learning_rate=args_opt.start_lr, end_learning_rate=args_opt.end_lr,\n                      warmup_steps=args_opt.warmup_step, decay_steps=args_opt.decay_steps)\n    params = pangu_alpha_with_loss.trainable_params()\n    group_params = set_weight_decay(params)\n    if args_opt.optimizer == \"lamb\":\n        optimizer = nn.Lamb(group_params, learning_rate=lr)\n    elif args_opt.opt_offload:\n        optimizer = AdamWeightDecayOp(group_params, learning_rate=lr, eps=1e-8, beta1=0.9, beta2=0.95,\n                                      param_init_type=config.param_init_type)\n    else:\n        optimizer = FP32StateAdamWeightDecay(group_params, learning_rate=lr, eps=1e-8, beta1=0.9, beta2=0.95)\n    # Initial scaling sens\n    loss_scale_value = math.pow(2, 32)\n    epoch_num = args_opt.epoch_size\n\n    if args_opt.load_ckpt_epoch > 0:\n        time.sleep(rank * 0.05)\n        os.mkdir(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\"))\n        ckpt_name = f\"code-13B{rank}_20-{args_opt.load_ckpt_epoch}_2.ckpt\"\n        if not mox.file.exists(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name)):\n            print(f\"Checkpoint from rank {rank} doesn't exist!\")\n        mox.file.copy(os.path.join(args_opt.load_ckpt_path, f\"rank_{rank}\", ckpt_name),\n                      os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        param_dict = load_checkpoint(os.path.join(args_opt.save_checkpoint_path, f\"rank_{rank}\", ckpt_name))\n        # TODO: remove after warming-up!\n        # param_dict.pop('global_step')\n        # TODO: add them back if not for the 1st run!\n        # if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n        #     args_opt.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n        #     args_opt.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n        # args_opt.has_trained_steps = 9000\n\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/1'))\n            if num == device_num:\n                break\n            if rank % 64 == 0:\n                print(\"Loaded ckpt in step 1: \", num)\n            time.sleep(1)\n\n    if args_opt.tb_dir is not None and rank == device_num - 1:\n        os.makedirs(args_opt.tb_dir, exist_ok=True)\n        summary_writer = SummaryWriter(args_opt.tb_dir)\n        os.system(f'chomd 777 -R {args_opt.tb_dir}')\n    else:\n        summary_writer = None\n\n    # Dataset loading mindrecord files\n    ds, ds_eval = create_dataset(config.batch_size * micro_interleaved_size, data_path=args_opt.code_data,\n                                 args_opt=args_opt, data_start_index=0,\n                                 eod_reset=config.eod_reset, full_batch=bool(args_opt.full_batch),\n                                 eod_id=args_opt.eod_id,\n                                 device_num=device_num, rank=rank, epoch=epoch_num,\n                                 train_and_eval=bool(args_opt.train_and_eval_mode), val_ratio=0.001)\n    actual_epoch_num = int(ds.get_dataset_size() / args_opt.sink_size)\n    callback = [\n        TimeMonitor(args_opt.sink_size),\n    ]\n    update_cell = DynamicLossScaleUpdateCell(loss_scale_value=loss_scale_value, scale_factor=2, scale_window=1000)\n    pangu_alpha_with_grads = PanguAlphaTrainOneStepWithLossScaleCell(\n        pangu_alpha_with_loss, optimizer=optimizer, scale_update_cell=update_cell, enable_global_norm=True,\n        config=config)\n    if ds_eval:\n        ppl_metric = PPLMetric(config.seq_length)\n        validation_loss = ValidationLoss(eod_token=args_opt.eod_id)\n        model = Model(pangu_alpha_with_grads, eval_network=pangu_alpha_with_loss,\n                      metrics={\"ppl\": ppl_metric, \"validation_loss\": validation_loss})\n        callback.append(\n            EvalCallBack(\n                model=model,\n                eval_dataset=ds_eval,\n                ppl_metric=ppl_metric,\n                validation_loss=validation_loss,\n                print_per_step=10,\n                has_trained_step=args_opt.has_trained_steps,\n                local_rank=rank,\n                rank_size=device_num,\n                tb_writer=summary_writer\n            )\n        )\n    else:\n        model = Model(pangu_alpha_with_grads)\n    if args_opt.load_ckpt_epoch > 0:\n        print(\"===build model and load ckpt\")\n        time_stamp = datetime.datetime.now()\n        print(f\"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')} before building\", flush=True)\n        model.build(train_dataset=ds, sink_size=args_opt.sink_size, epoch=actual_epoch_num)\n        time_stamp = datetime.datetime.now()\n        print(f\"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')} before loading ckpt\", flush=True)\n        net_not_load = load_param_into_net(pangu_alpha_with_loss, param_dict)\n        opt_not_load = load_param_into_net(optimizer, param_dict)\n\n        os.mkdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/2/rank_{rank}')\n        while True:\n            num = len(os.listdir(f'/home/work/sfs/cache/{os.environ[\"BATCH_JOB_ID\"]}/2'))\n            if num == device_num:\n                break\n            if rank % 64 == 0:\n                print(\"Loaded ckpt in step 2: \", num)\n            time.sleep(1)\n    callback.append(\n        LossCallBack(\n            name=args_opt.ckpt_name_prefix,\n            dataset_size=args_opt.sink_size,\n            local_rank=rank,\n            rank_size=device_num,\n            has_trained_epoch=args_opt.has_trained_epoches,\n            has_trained_step=args_opt.has_trained_steps,\n            micro_size=args_opt.micro_size * micro_interleaved_size,\n            tb_writer=summary_writer,\n        )\n    )\n    if not args_opt.profiling:\n        add_checkpoint_callback_policy(args_opt, callback, rank)\n    if args_opt.incremental_training:\n        strategy = model.infer_train_layout(train_dataset=ds, sink_size=args_opt.sink_size)\n        print(\"======start load_distributed checkpoint\", flush=True)\n        # For 2.6B and 13B models, the number of ckpt files is 512.\n        ckpt_file_list = [os.path.join(args_opt.load_ckpt_path, f\"filerted_{ckpt_rank}.ckpt\") for ckpt_rank in\n                          range(0, 512)]\n        print(f\"Loading from path {ckpt_file_list[0]}\", flush=True)\n        load_distributed_checkpoint(model.train_network, ckpt_file_list, strategy)\n    print(\"Dataset size: {}, actual_epoch_num: {}\".format(ds.get_dataset_size(), actual_epoch_num), flush=True)\n\n    try:\n        model.train(10 if args_opt.profiling else actual_epoch_num, ds, callbacks=callback,\n                    sink_size=args_opt.sink_size, dataset_sink_mode=True)\n    finally:\n        if args_opt.profiling:\n            jobid = os.environ[\"BATCH_JOB_ID\"]\n            profiler.analyse()\n            rank_id = rank\n            if context.get_context(\"save_graphs\"):\n                mox.file.make_dirs(\"s3://wudao-1/yyf/graphs_\" + jobid)\n                mox.file.copy_parallel(src_url=\"/cache/graphs_of_device_id_\" + str(rank_id),\n                                       dst_url=\"s3://wudao-1/yyf/graphs_\" + jobid + \"/\" + str(rank_id))\n            if rank_id % 8 == 0:\n                mox.file.make_dirs(\"s3://wudao-1/yyf/profiler_\" + jobid)\n                mox.file.copy_parallel(src_url=\"/cache/profiler_data\",\n                                       dst_url=\"s3://wudao-1/yyf/profiler_\" + jobid + \"/\" + str(rank_id))\n\n\ndef restore_checkpoint(args_param, sink_size, dataset, model, network, epoch):\n    r\"\"\"\n    Load checkpoint process.\n    \"\"\"\n    print(\"======start single checkpoint\", flush=True)\n    ckpt_name = args_param.ckpt_name_prefix\n    ckpt_pattern = os.path.join(args_param.save_checkpoint_path, \"rank_{}\".format(D.get_rank()), f\"{ckpt_name}*.ckpt\")\n    ckpt_all_files = glob.glob(ckpt_pattern)\n\n    if not ckpt_all_files:\n        print(f\"There is no ckpt file in {args_param.save_checkpoint_path}, \"\n              f\"current ckpt_files found is {ckpt_all_files} \"\n              f\"with pattern {ckpt_pattern}, so skip the loading.\")\n        return\n\n    ckpt_exp_pattern = os.path.join(args_param.save_checkpoint_path, \"rank_{}\".format(D.get_rank()),\n                                    f\"{ckpt_name}*_breakpoint.ckpt\")\n    ckpt_exp_files = glob.glob(ckpt_exp_pattern)\n    ckpt_files = []\n    for file in ckpt_all_files:\n        if file not in ckpt_exp_files:\n            ckpt_files.append(file)\n\n    if not ckpt_files:\n        print(f\"There is no ckpt file in {args_param.save_checkpoint_path}, \"\n              f\"current ckpt_files found is {ckpt_files} \"\n              f\"with pattern {ckpt_pattern}, so skip the loading.\")\n        return\n\n    ckpt_files.sort(key=os.path.getmtime, reverse=True)\n    time_stamp = datetime.datetime.now()\n    print(f\"time stamp {time_stamp.strftime('%Y.%m.%d-%H:%M:%S')} pre trained ckpt model {ckpt_files} loading\",\n          flush=True)\n    # Load checkpoint files latest file\n    print(f'Start to load from {ckpt_files[0]}')\n    param_dict = load_checkpoint(ckpt_files[0])\n    if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n        args_param.has_trained_epoches = int(param_dict[\"epoch_num\"].data.asnumpy())\n        args_param.has_trained_steps = int(param_dict[\"step_num\"].data.asnumpy())\n    model.build(train_dataset=dataset, sink_size=sink_size, epoch=epoch)\n    load_param_into_net(network, param_dict)\n\n\ndef get_exception_checkpoints(args_param):\n    \"\"\"\n    Get exception checkpoint based on restore ranks\n    Args:\n        args_param: training model parameters\n    Returns: exception checkpoint list\n    \"\"\"\n    print(\"======start exception checkpoint\", flush=True)\n    restore_ranks = os.getenv(\"RESTORE_RANKS\")\n    if not restore_ranks:\n        return None\n\n    restore_rank_list = list(map(int, restore_ranks.split(\",\")))\n    ckpt_file_list = []\n    ckpt_name = args_param.ckpt_name_prefix\n    for ckpt_rank in restore_rank_list:\n        ckpt_pattern = os.path.join(args_param.save_checkpoint_path,\n                                    f\"rank_{ckpt_rank}\",\n                                    f\"{ckpt_name}*_breakpoint.ckpt\")\n        ckpt_files = glob.glob(ckpt_pattern)\n        if not ckpt_files:\n            print(\n                f\"There is no ckpt file in {args_param.save_checkpoint_path}, \"\n                f\"current ckpt_files found is {ckpt_files} \"\n                f\"with pattern {ckpt_pattern}, so skip the loading.\")\n            return None\n        ckpt_files.sort(key=os.path.getmtime, reverse=True)\n        ckpt_file_list.append(ckpt_files[0])\n    print(f\"checkpoint file {ckpt_file_list}\")\n    return ckpt_file_list\n\n\ndef check_exception_checkpoints(ckpt_file_list):\n    \"\"\"\n    Checkpoint exception checkpoints size.\n    Args:\n        ckpt_file_list: exception checkpoints\n    Returns: result of exception checkpoints size check.\n    \"\"\"\n    ckpt_size_list = []\n    for ckpt_file in ckpt_file_list:\n        ckpt_size_list.append(os.path.getsize(ckpt_file))\n\n    if len(set(ckpt_size_list)) > 1:\n        return False\n\n    return True\n\n\ndef restore_exception_checkpoint(args_param, sink_size, dataset, model, network, epoch):\n    \"\"\"\n    Restore exception checkpoint.\n    Args:\n        args_param: training job params\n        sink_size: training job sink size\n        dataset: dataset for training\n        model: model\n        network: pangu_alpha network\n        epoch: training epoch\n    Returns: load exception checkpoint success or not.\n    \"\"\"\n    if os.getenv(\"RESTORE_RANKS\") == \"-1\":\n        return False\n\n    ckpt_file_list = get_exception_checkpoints(args_param)\n\n    restore_flag = False\n    if ckpt_file_list:\n        restore_flag = check_exception_checkpoints(ckpt_file_list)\n\n    if not restore_flag:\n        return False\n\n    ckpt_name = args_param.ckpt_name_prefix\n    restore_ranks_map = os.getenv(\"RESTORE_RANKS_MAP\")\n    if not restore_ranks_map:\n        return False\n\n    try:\n        print(\"whether run into load process\")\n        restore_ranks_map_json = json.loads(restore_ranks_map)\n        map_rank_id = D.get_rank()\n        for key in restore_ranks_map_json.keys():\n            key_list = list(key.split(\",\"))\n            if str(D.get_rank()) in key_list:\n                map_rank_id = restore_ranks_map_json.get(key)\n\n        print(f\"loading map rank id {map_rank_id}\")\n        ckpt_pattern = os.path.join(args_param.save_checkpoint_path,\n                                    f\"rank_{map_rank_id}\",\n                                    f\"{ckpt_name}*breakpoint.ckpt\")\n        ckpt_files = glob.glob(ckpt_pattern)\n        ckpt_files.sort(key=os.path.getmtime, reverse=True)\n        print(f\" checkpoint files {ckpt_files[0]}\")\n        param_dict = load_checkpoint(ckpt_files[0])\n        print(f\" checkpoint param dict epoch num {param_dict.get('epoch_num')}\")\n        if param_dict.get(\"epoch_num\") and param_dict.get(\"step_num\"):\n            args_param.has_trained_epoches = int(\n                param_dict[\"epoch_num\"].data.asnumpy())\n            args_param.has_trained_steps = int(\n                param_dict[\"step_num\"].data.asnumpy())\n\n        # Load checkpoint files\n        model.build(train_dataset=dataset, sink_size=sink_size, epoch=epoch)\n        load_param_into_net(network, param_dict)\n    except TypeError:\n        return False\n    else:\n        return True\n\n\ndef set_pipeline_parallel_context(args_opt):\n    \"\"\"\n    Set prarllel context in pipeline training process\n    \"\"\"\n    D.init()\n    device_num = D.get_group_size()\n    rank_id = D.get_rank()\n    print(\"rank_id is {}, device_num is {}\".format(rank_id, device_num))\n    context.reset_auto_parallel_context()\n    context.set_auto_parallel_context(\n        parallel_mode=ParallelMode.SEMI_AUTO_PARALLEL, gradients_mean=False,\n        full_batch=bool(args_opt.full_batch), loss_repeated_mean=True,\n        device_num=device_num, enable_parallel_optimizer=bool(args_opt.optimizer_shard),\n        pipeline_stages=args_opt.stage_num)\n    set_algo_parameters(elementwise_op_strategy_follow=True)\n    _set_multi_subgraphs()\n    return rank_id, device_num\n\n\ndef run_train_pipeline(args_opt):\n    r\"\"\"The main training process in pipeline.\"\"\"\n    # Set hccl connect time\n    os.environ['HCCL_CONNECT_TIMEOUT'] = \"6000\"\n\n    context.set_context(save_graphs=False, mode=context.GRAPH_MODE, device_target=args_opt.device_target)\n    if args_opt.profiling:\n        profiler = Profiler(output_path=\"./profiler_data\")\n    context.set_context(variable_memory_max_size=\"30GB\")\n\n    rank_id = 0\n    device_num = 1\n    if args_opt.distribute == \"true\":\n        rank_id, device_num = set_pipeline_parallel_context(args_opt)\n\n    # copy data from the cloud to the /cache/Data\n    cache_url = '/cache/Data/'\n    eval_cache_url = '/cache/EvalData/'\n    if not args_opt.offline:\n        download_data(src_data_url=args_opt.data_url, tgt_data_path=cache_url, rank=rank_id)\n        download_data(src_data_url=args_opt.eval_data_url, tgt_data_path=eval_cache_url, rank=rank_id)\n    model_parallel_num = args_opt.op_level_model_parallel_num\n    stage_device_num = int(device_num / args_opt.stage_num)\n    data_parallel_num = int(stage_device_num / model_parallel_num)\n    print(\"Topology:\", model_parallel_num, data_parallel_num, stage_device_num)\n    if data_parallel_num <= 1 and args_opt.optimizer_shard == 1:\n        raise ValueError(\"The dp must large than 1 when applying optimizer shard.\")\n    per_batch_size = args_opt.per_batch_size\n    batch_size = per_batch_size * data_parallel_num * args_opt.micro_size\n\n    parallel_config = TransformerOpParallelConfig(data_parallel=data_parallel_num,\n                                                  model_parallel=model_parallel_num,\n                                                  pipeline_stage=args_opt.stage_num,\n                                                  micro_batch_num=args_opt.micro_size,\n                                                  optimizer_shard=bool(args_opt.optimizer_shard),\n                                                  vocab_emb_dp=bool(args_opt.word_emb_dp),\n                                                  recompute=True,\n                                                  )\n    config = PanguAlphaConfig(\n        batch_size=batch_size // parallel_config.micro_batch_num,\n        num_heads=args_opt.num_heads,\n        hidden_size=args_opt.embedding_size,\n        seq_length=args_opt.seq_length,\n        vocab_size=args_opt.vocab_size,\n        num_layers=args_opt.num_layers,\n        ffn_hidden_size=args_opt.embedding_size * 4,\n        eod_token=args_opt.eod_id,\n        load_ckpt_path=args_opt.load_ckpt_path,\n        param_init_type=mstype.float32\n        if args_opt.param_init_type == \"fp32\"\n        else mstype.float16,\n        enable_offload=bool(args_opt.opt_offload),\n        parallel_config=parallel_config,\n        apply_scale_normalization=args_opt.apply_scale_normalization,\n    )\n\n    print(\"===config is: \", config, flush=True)\n    pangu_alpha = PanguAlphaModel(config=config)\n    loss = CrossEntropyLoss(config.parallel_config.dp_mp_config)\n    pangu_alpha_with_loss_net = PipelineCell(PanGUAlphaWithLoss(config, pangu_alpha, loss),\n                                             config.parallel_config.micro_batch_num)\n    pangu_alpha_with_loss = _VirtualDatasetCell(pangu_alpha_with_loss_net)\n    print(\"=====args_opt is: \", args_opt, flush=True)\n    lr = LearningRate(learning_rate=args_opt.start_lr, end_learning_rate=args_opt.end_lr,\n                      warmup_steps=args_opt.warmup_step, decay_steps=args_opt.decay_steps)\n    params = pangu_alpha.infer_param_pipeline_stage()\n    group_params = set_weight_decay(params)\n    if args_opt.optimizer == \"lamb\":\n        optimizer = nn.Lamb(group_params, learning_rate=lr)\n    elif args_opt.opt_offload:\n        optimizer = AdamWeightDecayOp(group_params, learning_rate=lr, eps=1e-8, beta1=0.9, beta2=0.95,\n                                      param_init_type=config.param_init_type)\n    else:\n        optimizer = nn.AdamWeightDecay(group_params, learning_rate=lr, beta1=0.9, beta2=0.95, eps=1e-8)\n\n    ds = create_dataset(config.batch_size * parallel_config.micro_batch_num, data_path=args_opt.code_data,\n                        device_num=stage_device_num, args_opt=args_opt,\n                        rank=rank_id % stage_device_num, eod_reset=True, data_start_index=0,\n                        full_batch=context.get_auto_parallel_context(\"full_batch\"),\n                        column_name=args_opt.data_column_name)\n    epoch_num = args_opt.epoch_size\n    step_per_epoch = ds.get_dataset_size()\n    callback_size = args_opt.sink_size\n    actual_epoch_num = int(epoch_num * step_per_epoch / callback_size)\n    callback = [\n        TimeMonitor(callback_size),\n        LossCallBack(\n            args_opt.ckpt_name_prefix,\n            callback_size,\n            rank_id,\n            device_num,\n            micro_size=parallel_config.micro_batch_num,\n            tb_dir=args_opt.tb_dir,\n        ),\n    ]\n    loss_scale_value = math.pow(2, 32)\n    update_cell = DynamicLossScaleUpdateCell(loss_scale_value=loss_scale_value, scale_factor=2, scale_window=1000)\n    pangu_alpha_with_grads = PanguAlphaTrainPipelineWithLossScaleCell(\n        pangu_alpha_with_loss, optimizer=optimizer, config=config, scale_update_cell=update_cell)\n    if args_opt.train_and_eval_mode:\n        ds_eval = create_dataset(config.batch_size * parallel_config.micro_batch_num, data_path=eval_cache_url,\n                                 args_opt=args_opt,\n                                 device_num=stage_device_num, rank=rank_id % stage_device_num, eod_reset=True,\n                                 data_start_index=0, full_batch=bool(args_opt.full_batch),\n                                 column_name=args_opt.data_column_name,\n                                 num_samples=args_opt.eval_steps * config.batch_size)\n        ppl_metric = PPLMetric(config.seq_length)\n        pangu_alpha_with_loss_eval_net = _VirtualDatasetCell(PanGUAlphaWithLoss(config, pangu_alpha, loss))\n        model = Model(pangu_alpha_with_grads, eval_network=pangu_alpha_with_loss_eval_net, metrics={\"ppl\": ppl_metric})\n        model.build(ds, ds_eval, sink_size=callback_size)\n        eval_callback = EvalCallBack(model, ds_eval, ppl_metric)\n        callback.append(eval_callback)\n    else:\n        model = Model(pangu_alpha_with_grads)\n\n    if args_opt.pre_trained:\n        flag = restore_exception_checkpoint(args_opt, callback_size, ds, model,\n                                            pangu_alpha_with_grads, epoch=actual_epoch_num)\n        if not flag:\n            restore_checkpoint(args_opt, callback_size, ds, model, pangu_alpha_with_grads, epoch=actual_epoch_num)\n\n    callback = [\n        TimeMonitor(callback_size),\n        LossCallBack(\n            args_opt.ckpt_name_prefix,\n            callback_size,\n            rank_id,\n            device_num,\n            args_opt.has_trained_epoches,\n            args_opt.has_trained_steps,\n            tb_dir=args_opt.tb_dir,\n        ),\n    ]\n    # add_checkpoint_callback_policy(args_opt, callback, rank_id)\n\n    print(\"------ train start -------\")\n    model.train(10 if args_opt.profiling else actual_epoch_num, ds, callbacks=callback,\n                sink_size=callback_size, dataset_sink_mode=True)\n    if args_opt.profiling:\n        profiler.analyse()\n\n\nif __name__ == \"__main__\":\n    opt = get_args()\n    set_parse(opt)\n    if opt.per_batch_size == 0:\n        raise ValueError(\"The per_batch_size has not been configured.\")\n    if opt.stage_num > 1:\n        if bool(opt.use_moe) or bool(opt.opt_offload):\n            raise ValueError(\"Currently, moe and host device mode is not supported in pipeline parallel.\")\n        run_train_pipeline(opt)\n    else:\n        run_train(opt)\n"
  },
  {
    "path": "codegeex/oneflow/__init__.py",
    "content": "from .codegeex_model import CodeGeeXModel"
  },
  {
    "path": "codegeex/oneflow/codegeex_model.py",
    "content": "import math\nimport oneflow as torch\nimport oneflow.nn.functional as F\nfrom oneflow.nn.parameter import Parameter\nfrom ..quantization import QuantizedLinear\n\ndef fast_gelu(x):\n    \"\"\"Mindspore's fast gelu implementation.\"\"\"\n    if hasattr(torch._C, 'quick_gelu'):\n        return torch._C.quick_gelu(x)\n    return x / (1 + torch.exp(-1.702 * torch.abs(x))) * torch.exp(0.851 * (x - torch.abs(x)))\n\n\nclass MLP(torch.nn.Module):\n    \"\"\"MLP.\n    MLP will take the input with h hidden state, project it to 4*h\n    hidden dimension, perform nonlinear transformation, and project the\n    state back into h hidden dimension. At the end, dropout is also\n    applied.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n    ):\n        super(MLP, self).__init__()\n        self.hidden_size = hidden_size\n        # Project to 4h.\n        self.dense_h_to_4h = torch.nn.Linear(\n            self.hidden_size,\n            4 * self.hidden_size,\n        )\n\n        self.activation_func = fast_gelu\n\n        # Project back to h.\n        self.dense_4h_to_h = torch.nn.Linear(\n            4 * self.hidden_size,\n            self.hidden_size,\n        )\n\n    def forward(self, hidden_states):\n        # [s, b, 4hp]\n        intermediate_parallel = self.dense_h_to_4h(hidden_states)\n        intermediate_parallel = self.activation_func(intermediate_parallel)\n        # [s, b, h]\n        output = self.dense_4h_to_h(intermediate_parallel)\n\n        return output\n    \n\nclass SelfAttention(torch.nn.Module):\n    \"\"\"self-attention layer abstract class.\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads, \n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(SelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n        \n        self.query = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        self.dense = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n        layer_id=0,\n    ):\n        # hidden_states: [sq, b, h]\n\n        # =====================\n        # Query, Key, and Value\n        # =====================\n\n        if hasattr(torch._C, 'grouped_matmul_bias') and not isinstance(self.query, QuantizedLinear):\n            query_layer, key_layer, value_layer = torch._C.grouped_matmul_bias([hidden_states, hidden_states, hidden_states], \n                                                                                [self.query.weight, self.key.weight, self.value.weight],\n                                                                                [self.query.bias, self.key.bias, self.value.bias])\n        else:\n            query_layer = self.query(hidden_states)\n            key_layer = self.key(hidden_states)\n            value_layer = self.value(hidden_states)\n        \n        fallback = not hasattr(torch._C, 'fused_multi_head_attention_inference_v2')\n\n        if fallback:\n            if hasattr(torch._C, 'fused_codegeex_qkv_reshape'):\n                query_layer, key_layer, value_layer = torch._C.fused_codegeex_qkv_reshape(query_layer, key_layer, value_layer, self.num_attention_heads)\n            else:\n                new_query_layer_shape = query_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                query_layer = query_layer.view(*new_query_layer_shape)\n\n                new_query_layer_shape = key_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                key_layer = key_layer.view(*new_query_layer_shape)\n\n                new_query_layer_shape = value_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                value_layer = value_layer.view(*new_query_layer_shape)\n\n            # ==================================\n            # Adjust key and value for inference\n            # ==================================\n\n            if layer_past is not None:\n                past_key, past_value = layer_past\n                key_layer = torch.cat((past_key.type_as(key_layer),\n                                    key_layer), dim=0)\n                value_layer = torch.cat((past_value.type_as(value_layer),\n                                        value_layer), dim=0)\n            if get_key_value:\n                present = (key_layer, value_layer)\n\n            # ===================================\n            # Raw attention scores. [b, np, sq, sk]\n            # ===================================\n\n            # [b, np, sq, sk]\n            output_size = (query_layer.size(1),\n                        query_layer.size(2),\n                        query_layer.size(0),\n                        key_layer.size(0))\n\n            # [sq, b, np, hn] -> [sq, b * np, hn]\n            query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n            key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n            # Raw attention scores. [b * np, sq, sk]\n            matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                        key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n            # change view to [b, np, sq, sk]\n            attention_scores = matmul_result.view(*output_size)\n\n            # ==================================================\n            # Update attention mask for inference. [b, np, sq, sk]\n            # ==================================================\n\n            if layer_id == 0:\n                if get_key_value:\n                    with torch.no_grad():\n                        if layer_past is not None:\n                            attention_mask = attention_mask[\n                                            ...,\n                                            attention_scores.size(3) - 1,\n                                            :attention_scores.size(3)].unsqueeze(2)\n                        else:\n                            attention_mask = attention_mask[\n                                            ...,\n                                            :attention_scores.size(3),\n                                            :attention_scores.size(3)]\n\n                if context_length is not None:\n                    attention_mask = torch.clone(attention_mask)\n                    attention_mask[:, :, context_length:, :] = True\n                \n                attention_mask = ~attention_mask\n                attention_mask = attention_mask.contiguous()\n\n            # attention scores and attention mask [b, np, sq, sk]\n            # attention_scores = attention_mask_func(attention_scores, attention_mask)\n            if hasattr(torch._C, 'fused_scale_mask_softmax'):\n                if self.attention_softmax_in_fp32:\n                    attention_probs = torch._C.fused_scale_mask_softmax(attention_scores.float(), attention_mask, fill_value=-10000.0, scale=1.0).half()\n                else:\n                    attention_probs = torch._C.fused_scale_mask_softmax(attention_scores, attention_mask, fill_value=-10000.0, scale=1.0)\n            else:\n                attention_scores = attention_scores - attention_mask * 10000.0\n                if self.attention_softmax_in_fp32:\n                    attention_probs = self.softmax(attention_scores.float()).half()\n                else:\n                    attention_probs = self.softmax(attention_scores)\n\n            # =========================\n            # Context layer. [sq, b, hp]\n            # =========================\n\n            # value_layer -> context layer.\n            # [sq, b, np, hn] --> [b, np, sq, hn]\n\n            # context layer shape: [b, np, sq, hn]\n            output_size = (value_layer.size(1),\n                        value_layer.size(2),\n                        query_layer.size(0),\n                        value_layer.size(3))\n\n            # change view [sq, b * np, hn] \n            value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n            # change view [b * np, sq, sk]\n            attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                                output_size[2], -1)\n\n            context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n            # change view [b, np, sq, hn]\n            context_layer = context_layer.view(*output_size)\n\n            # # [b, np, sq, hn] --> [sq, b, np, hn]\n            context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n            # # [sq, b, np, hn] --> [sq, b, hp]\n            new_context_layer_shape = context_layer.size()[:-2] + \\\n                                    (self.hidden_size,)\n            context_layer = context_layer.view(*new_context_layer_shape)\n        else:\n            if layer_past is not None:\n                past_key, past_value = layer_past\n                key_layer, value_layer = torch._C.fused_attention_concat_past_key_value(\n                    past_key=past_key,\n                    past_key_layout=\"MB(HK)\",\n                    past_value=past_value,\n                    past_value_layout=\"MB(HK)\",\n                    key=key_layer,\n                    key_layout=\"MB(HK)\",\n                    value=value_layer,\n                    value_layout=\"MB(HK)\",\n                    key_head_size=self.hidden_size_per_attention_head,\n                )\n            if get_key_value:\n                present = (key_layer, value_layer)\n            \n            context_layer = torch._C.fused_multi_head_attention_inference_v2(\n                        query=query_layer, \n                        key=key_layer, \n                        value=value_layer, \n                        query_head_size=self.hidden_size_per_attention_head, \n                        causal=True, \n                        causal_diagonal_offset=key_layer.shape[0]-query_layer.shape[0],\n                        query_layout=\"MB(HK)\",\n                        key_layout=\"MB(HK)\",\n                        value_layout=\"MB(HK)\",\n                        output_layout=\"MB(HK)\",\n                )\n\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output, attention_mask\n\n\nclass TopQuerySelfAttention(torch.nn.Module):\n    \"\"\"Top query self-attention layer abstract class.\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TopQuerySelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n\n        self.query = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        self.dense = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        \n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n\n        # hidden_states: [sq, b, h]\n        if hasattr(torch._C, 'grouped_matmul_bias') and not isinstance(self.query, QuantizedLinear):\n            query_layer, key_layer, value_layer = torch._C.grouped_matmul_bias([query_hidden_state, hidden_states, hidden_states], \n                                                                                [self.query.weight, self.key.weight, self.value.weight],\n                                                                                [self.query.bias, self.key.bias, self.value.bias])\n        else:\n            query_layer = self.query(query_hidden_state)\n            key_layer = self.key(hidden_states)\n            value_layer = self.value(hidden_states)\n        \n        fallback = not hasattr(torch._C, 'fused_multi_head_attention_inference_v2')\n\n        if fallback:\n            if hasattr(torch._C, 'fused_codegeex_qkv_reshape'):\n                query_layer, key_layer, value_layer = torch._C.fused_codegeex_qkv_reshape(query_layer, key_layer, value_layer, self.num_attention_heads)\n            else:\n                new_query_layer_shape = query_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                query_layer = query_layer.view(*new_query_layer_shape)\n\n                new_query_layer_shape = key_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                key_layer = key_layer.view(*new_query_layer_shape)\n\n                new_query_layer_shape = value_layer.size()[:-1] + \\\n                                        (self.num_attention_heads,\n                                        self.hidden_size_per_attention_head)\n                value_layer = value_layer.view(*new_query_layer_shape)\n\n            # ==================================\n            # Adjust key and value for inference\n            # ==================================\n\n            if layer_past is not None:\n                past_key, past_value = layer_past\n                key_layer = torch.cat((past_key.type_as(key_layer),\n                                    key_layer), dim=0)\n                value_layer = torch.cat((past_value.type_as(value_layer),\n                                        value_layer), dim=0)\n            if get_key_value:\n                present = (key_layer, value_layer)\n\n            # ===================================\n            # Raw attention scores. [b, np, sq, sk]\n            # ===================================\n\n            # [b, np, sq, sk]\n            output_size = (query_layer.size(1),\n                        query_layer.size(2),\n                        query_layer.size(0),\n                        key_layer.size(0))\n\n            # [s, b, np, hn] -> [s, b * np, hn]\n            query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n            key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n            # Raw attention scores. [b * np, sq, sk]\n            matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                        key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n            # change view to [b, np, s, s]\n            attention_scores = matmul_result.view(*output_size)\n\n            # ==================================================\n            # Update attention mask for inference. [b, np, sq, sk]\n            # ==================================================\n\n            if get_key_value:\n                with torch.no_grad():\n                    if layer_past is not None:\n                        attention_mask = attention_mask[\n                                        ...,\n                                        attention_scores.size(3) - 1,\n                                        :attention_scores.size(3)].unsqueeze(2)\n                    else:\n                        attention_mask = attention_mask[\n                                        ...,\n                                        :attention_scores.size(3),\n                                        :attention_scores.size(3)]\n\n            if context_length is not None:\n                attention_mask = torch.clone(attention_mask)\n                attention_mask[:, :, context_length:, :] = True\n\n            # attention scores and attention mask [b, np, sq, sk]\n            # attention_scores = attention_mask_func(attention_scores, attention_mask)\n            attention_scores = attention_scores - attention_mask * 10000.0\n            if self.attention_softmax_in_fp32:\n                attention_probs = self.softmax(attention_scores.float()).half()\n            else:\n                attention_probs = self.softmax(attention_scores)\n                \n            # =========================\n            # Context layer. [sq, b, hp]\n            # =========================\n\n            # value_layer -> context layer.\n            # [sq, b, np, hn] --> [b, np, sq, hn]\n\n            # context layer shape: [b, np, sq, hn]\n            output_size = (value_layer.size(1),\n                        value_layer.size(2),\n                        query_layer.size(0),\n                        value_layer.size(3))\n\n            # change view [sq, b * np, hn]\n            value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n            # change view [b * np, sq, sk]\n            attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                                output_size[2], -1)\n\n            # matmul: [b * np, sq, hn]\n            context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n            # change view [b, np, sq, hn]\n            context_layer = context_layer.view(*output_size)\n\n            # [b, np, sq, hn] --> [sq, b, np, hn]\n            context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n            # [sq, b, np, hn] --> [sq, b, hp]\n            new_context_layer_shape = context_layer.size()[:-2] + \\\n                                    (self.hidden_size,)\n            context_layer = context_layer.view(*new_context_layer_shape)\n\n        else:\n            if layer_past is not None:\n                past_key, past_value = layer_past\n                key_layer, value_layer = torch._C.fused_attention_concat_past_key_value(\n                    past_key=past_key,\n                    past_key_layout=\"MB(HK)\",\n                    past_value=past_value,\n                    past_value_layout=\"MB(HK)\",\n                    key=key_layer,\n                    key_layout=\"MB(HK)\",\n                    value=value_layer,\n                    value_layout=\"MB(HK)\",\n                    key_head_size=self.hidden_size_per_attention_head,\n                )\n            if get_key_value:\n                present = (key_layer, value_layer)\n\n            if hasattr(torch._C, 'fused_multi_head_attention_inference_v2'):\n                context_layer = torch._C.fused_multi_head_attention_inference_v2(\n                        query=query_layer, \n                        key=key_layer, \n                        value=value_layer, \n                        query_head_size=self.hidden_size_per_attention_head, \n                        causal=True, \n                        causal_diagonal_offset=key_layer.shape[0]-query_layer.shape[0],\n                        query_layout=\"MB(HK)\",\n                        key_layout=\"MB(HK)\",\n                        value_layout=\"MB(HK)\",\n                        output_layout=\"MB(HK)\",\n                )\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output\n\n\nclass TransformerLayer(torch.nn.Module):\n    \"\"\"A single transformer layer.\n    Transformore layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number, \n        layernorm_epsilon=1e-5,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TransformerLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Layernorm on the input data.\n        self.input_layernorm = torch.nn.LayerNorm(hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = SelfAttention(hidden_size,\n                                       num_attention_heads, \n                                       layer_number,\n                                       fp16,\n                                       attention_softmax_in_fp32)\n\n        # Layernorm on the input data.\n        self.post_attention_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                           eps=self.layernorm_epsilon)\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n        layer_id=0,\n    ):\n        # hidden_states: [b, s, h]\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.float()).half()\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output, attention_mask = self.attention(layernorm_output,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length,\n                                          layer_id=layer_id)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n        mlp_output = self.mlp(layernorm_output)\n        output = mlp_output + layernorm_input\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output, attention_mask\n\n\nclass TopQueryLayer(torch.nn.Module):\n    \"\"\"A single top query layer.\n    Top query layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        layernorm_epsilon=1e-5,\n    ):\n        super(TopQueryLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Use FP32 for Layernorm\n        self.input_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = TopQuerySelfAttention(self.hidden_size,\n                                               self.num_attention_heads,\n                                               self.layer_number)\n        # Layernorm on the input data.\n        self.post_attention_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                           eps=self.layernorm_epsilon)\n\n        # MLP\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        assert query_hidden_state != None\n\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.float()).half()\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output = self.attention(layernorm_output,\n                                          query_hidden_state,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n\n        # MLP.\n        mlp_output = self.mlp(layernorm_output)\n\n        # Second residual connection.\n        residual = layernorm_input\n        output = mlp_output + residual\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass Transformer(torch.nn.Module):\n    \"\"\"Transformer class.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        num_layers,\n        layernorm_epsilon=1e-5,\n    ):\n        super(Transformer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        # Number of layers:\n        self.num_layers = num_layers\n        self.num_unique_layers = None\n\n        #################\n        assert self.num_unique_layers is None\n        #################\n\n        if self.num_unique_layers is None:\n            self.num_unique_layers = self.num_layers\n        assert self.num_layers % self.num_unique_layers == 0, \\\n            'number of layers should be divisible by number of unique layers'\n        \n        # Transformer layers.\n        def build_layer(layer_number):\n            return TransformerLayer(self.hidden_size, self.num_attention_heads, layer_number)\n\n        self.layers = torch.nn.ModuleList(\n            [build_layer(i + 1) for i in range(self.num_unique_layers)])\n\n        self.topQueryLayer = TopQueryLayer(self.hidden_size,\n                                           self.num_attention_heads,\n                                           self.num_unique_layers)\n\n        self.final_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n    def _get_layer_index(self, layer_number):\n        return layer_number % self.num_unique_layers\n\n    def _get_layer(self, layer_number):\n        return self.layers[self._get_layer_index(layer_number)]\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # data format change to avoid explicit tranposes : [b s h] --> [s b h]\n        hidden_states = hidden_states.transpose(0, 1).contiguous()\n        query_hidden_state = query_hidden_state.transpose(0, 1).contiguous()\n\n        origin_attention_mask = attention_mask\n        if get_key_value:\n            presents = []\n        for index in range(self.num_layers):\n            layer = self._get_layer(index)\n            past = None\n            if layer_past is not None:\n                past = layer_past[index]\n            hidden_states, attention_mask = layer(hidden_states,\n                                  attention_mask,\n                                  layer_past=past,\n                                  get_key_value=get_key_value,\n                                  prompt_length=prompt_length,\n                                  context_length=context_length,\n                                  layer_id=index)\n            if get_key_value:\n                hidden_states, present = hidden_states\n                presents.append(present)\n\n        # Use FP32 for Layernorm\n        # hidden_states_ = self.final_layernorm(hidden_states.float()).half()\n        hidden_states_ = self.final_layernorm(hidden_states)\n\n        #################################\n        # top query layer\n        #################################\n        past = None\n        if layer_past is not None:\n            past = layer_past[self.num_layers]\n        hidden_states = self.topQueryLayer(hidden_states_,\n                                           query_hidden_state,\n                                           origin_attention_mask,\n                                           layer_past=past,\n                                           get_key_value=get_key_value,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length)\n\n        if get_key_value:\n            hidden_states, present = hidden_states\n            presents.append(present)\n\n        # reverting data format change [s b h] --> [b s h]\n        output = hidden_states.transpose(0, 1).contiguous()\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        return self.state_dict(destination, prefix, keep_vars)\n\n\nclass Embedding(torch.nn.Module):\n    \"\"\"Language model embeddings.\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(Embedding, self).__init__()\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n        \n        # Word embeddings.\n        self.word_embeddings = torch.nn.Embedding(self.vocab_size, self.hidden_size)\n        self._word_embeddings_key = 'word_embeddings'\n        \n        # Position embedding.\n        self.position_embeddings = torch.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.position_embeddings = self.position_embeddings.half()\n        self._position_embeddings_key = 'position_embeddings'\n        \n    def forward(self, input_ids, position_ids):\n        # Embeddings.\n        words_embeddings = self.word_embeddings(input_ids)\n        position_embeddings = self.position_embeddings(position_ids)\n        embeddings = words_embeddings + position_embeddings\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._word_embeddings_key] \\\n            = self.word_embeddings.state_dict(destination, prefix, keep_vars)\n        state_dict_[self._position_embeddings_key] \\\n            = self.position_embeddings.state_dict(\n            destination, prefix, keep_vars)\n        \n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Word embedding.\n        if self._word_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._word_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'word_embeddings' in key:\n                    state_dict_[key.split('word_embeddings.')[1]] \\\n                        = state_dict[key]\n        state_dict_[\"weight\"] = state_dict_[\"weight\"][:self.vocab_size]\n        self.word_embeddings.load_state_dict(state_dict_, strict=strict)\n\n        # Position embedding.\n        if self._position_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._position_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'position_embeddings' in key:\n                    state_dict_[key.split('position_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.position_embeddings.load_state_dict(state_dict_, strict=strict)\n        \n\nclass QueryEmbedding(torch.nn.Module):\n    \"\"\"Language model embeddings.\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(QueryEmbedding, self).__init__()\n\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n\n        # Top query position embedding (serial).\n        self.top_query_embeddings = torch.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.top_query_embeddings = self.top_query_embeddings.half()\n        self._top_query_embeddings_key = 'top_query_embeddings'\n        \n    def forward(self, position_ids):\n        # Embeddings.\n        embeddings = self.top_query_embeddings(position_ids)\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._top_query_embeddings_key] \\\n            = self.top_query_embeddings.state_dict(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Position embedding.\n        if self._top_query_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._top_query_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'top_query_embeddings' in key:\n                    state_dict_[key.split('top_query_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.top_query_embeddings.load_state_dict(state_dict_, strict=strict)\n        \n\nclass TransformerLanguageModel(torch.nn.Module):\n    \"\"\"Transformer language model.\n    Arguments:\n        transformer_hparams: transformer hyperparameters\n        attention_mask_func: a function that takes `unmaksed-attention-scores`\n            with size [b, np, s, s] and an `attention-mask` and will apply\n            the masking. The function should return a masked score of the\n            same size [b, np, s, s].\n          masked-attention-scores = attention_mask_func(\n                                     unmaksed-attention-scores, attention-mask)\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(TransformerLanguageModel, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_layers = num_layers\n        self.num_attention_heads = num_attention_heads\n        self.padded_vocab_size = padded_vocab_size\n        self.max_position_embeddings = max_position_embeddings\n\n        # Embeddings\n        self.embedding = Embedding(self.hidden_size,\n                                   self.padded_vocab_size,\n                                   self.max_position_embeddings)\n        self._embedding_key = 'embedding'\n\n        # Query embeddings\n        self.topQueryEmbedding = QueryEmbedding(self.hidden_size,\n                                                self.padded_vocab_size,\n                                                self.max_position_embeddings)\n        self._topQueryEmbedding_key = 'topQueryEmbedding'\n\n        # Transformer\n        self.transformer = Transformer(self.hidden_size,\n                                       self.num_attention_heads,\n                                       self.num_layers)\n        self._transformer_key = 'transformer'\n\n    def forward(\n            self,\n            input_ids,\n            position_ids,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Embeddings.\n        embedding_output = self.embedding(input_ids, position_ids)\n        query_position_ids = position_ids\n        queryEmbedding_out = self.topQueryEmbedding(query_position_ids)\n\n        # Transformer.\n        transformer_output = self.transformer(embedding_output,\n                                              queryEmbedding_out,\n                                              attention_mask,\n                                              layer_past=layer_past,\n                                              get_key_value=get_key_value,\n                                              prompt_length=prompt_length,\n                                              context_length=context_length)\n\n        return transformer_output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._embedding_key] \\\n            = self.embedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._topQueryEmbedding_key] \\\n            = self.topQueryEmbedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._transformer_key] \\\n            = self.transformer.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Embedding.\n        if self._embedding_key in state_dict:\n            state_dict_ = state_dict[self._embedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.embedding.load_state_dict(state_dict_, strict=strict)\n\n        if self._topQueryEmbedding_key in state_dict:\n            state_dict_ = state_dict[self._topQueryEmbedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.topQueryEmbedding.load_state_dict(state_dict_, strict=strict)\n\n        # Transformer.\n        if self._transformer_key in state_dict:\n            state_dict_ = state_dict[self._transformer_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'transformer.' in key:\n                    state_dict_[key.split('transformer.')[1]] = state_dict[key]\n        self.transformer.load_state_dict(state_dict_, strict=strict)\n\n\nclass CodeGeeXModel(torch.nn.Module):\n    \"\"\"CodeGeeX: A Multilingual Code Generation Model.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(CodeGeeXModel, self).__init__()\n        \n        self.language_model = TransformerLanguageModel(hidden_size,\n                                                       num_layers,\n                                                       num_attention_heads,\n                                                       padded_vocab_size,\n                                                       max_position_embeddings)\n        self._language_model_key = \"language_model\"\n        \n    def forward(\n        self,\n        input_ids,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # Language model.\n        lm_output = self.language_model(input_ids,\n                                        position_ids,\n                                        attention_mask,\n                                        layer_past=layer_past,\n                                        get_key_value=get_key_value,\n                                        prompt_length=prompt_length,\n                                        context_length=context_length)\n\n        if get_key_value:\n            lm_output, presents = lm_output\n\n        output = F.linear(lm_output, self.language_model.embedding.word_embeddings.weight.half())\n        \n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n\n        state_dict_ = {}\n        state_dict_[self._language_model_key] \\\n            = self.language_model.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        if self._language_model_key in state_dict:\n            state_dict = state_dict[self._language_model_key]\n        self.language_model.load_state_dict(state_dict, strict=strict)\n"
  },
  {
    "path": "codegeex/oneflow/inference.py",
    "content": "import copy\nimport json\nimport os\nimport time\nfrom typing import *\n\nimport oneflow as torch\nimport oneflow.nn.functional as F\nfrom dataclasses import dataclass\n\n\ndef get_ltor_masks_and_position_ids(\n    data, \n    eod_token, \n    reset_position_ids, \n    reset_attention_mask, \n):\n    \"\"\"Build masks and position id for left to right model.\"\"\"\n\n    # Extract batch size and sequence length.\n    micro_batch_size, seq_length = data.size()\n\n    # Attention mask (lower triangular).\n    if reset_attention_mask:\n        att_mask_batch = micro_batch_size\n    else:\n        att_mask_batch = 1\n    attention_mask = torch.tril(\n        torch.ones((att_mask_batch, seq_length, seq_length), device=data.device)\n    ).view(att_mask_batch, 1, seq_length, seq_length)\n\n    # Position ids.\n    position_ids = torch.arange(seq_length, dtype=torch.long, device=data.device)\n    position_ids = position_ids.unsqueeze(0).expand_as(data)\n    # We need to clone as the ids will be modifed based on batch index.\n    if reset_position_ids:\n        position_ids = position_ids.clone()\n\n    if reset_position_ids or reset_attention_mask:\n        # Loop through the batches:\n        for b in range(micro_batch_size):\n\n            # Find indecies where EOD token is.\n            eod_index = position_ids[b, data[b] == eod_token]\n            # Detach indecies from positions if going to modify positions.\n            if reset_position_ids:\n                eod_index = eod_index.clone()\n\n            # Loop through EOD indecies:\n            prev_index = 0\n            for j in range(eod_index.size()[0]):\n                i = eod_index[j]\n                # Mask attention loss.\n                if reset_attention_mask:\n                    attention_mask[b, 0, (i + 1) :, : (i + 1)] = 0\n                # Reset positions.\n                if reset_position_ids:\n                    position_ids[b, (i + 1) :] -= i + 1 - prev_index\n                    prev_index = i + 1\n\n    # Convert attention mask to binary:\n    attention_mask = attention_mask < 0.5\n\n    return attention_mask, position_ids\n\n\ndef get_batch(\n    context_tokens, \n    micro_batch_size, \n    eod_token, \n    reset_position_ids=False,\n    reset_attention_mask=False,\n):\n    \"\"\"Generate batch from context tokens.\"\"\"\n    tokens = context_tokens.view(micro_batch_size, -1).contiguous().cuda()\n    # Get the attention mask and postition ids.\n    attention_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        eod_token,\n        reset_position_ids,\n        reset_attention_mask,\n    )\n\n    return tokens, attention_mask, position_ids\n\n\ndef top_k_logits(logits, top_k=0, top_p=0.0, filter_value=-float(\"Inf\")):\n    \"\"\"This function has been mostly taken from huggingface conversational\n    ai code at\n        https://medium.com/huggingface/how-to-build-a-state-of-the-art-\n             conversational-ai-with-transfer-learning-2d818ac26313\"\"\"\n\n    if top_k > 0:\n        # Remove all tokens with a probability less than the\n        # last token of the top-k\n        indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None]\n        logits[indices_to_remove] = filter_value\n\n    if top_p > 0.0:\n        # Cconvert to 1D\n        sorted_logits, sorted_indices = torch.sort(logits, descending=True, dim=-1)\n        cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1)\n\n        # Remove tokens with cumulative probability above the threshold\n        sorted_indices_to_remove = cumulative_probs > top_p\n        # Shift the indices to the right to keep also the first token\n        # above the threshold\n        sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()\n        sorted_indices_to_remove[..., 0] = 0\n        for i in range(sorted_indices.size(0)):\n            indices_to_remove = sorted_indices[i][sorted_indices_to_remove[i]]\n            logits[i][indices_to_remove] = filter_value\n\n    return logits\n\n\ndef pad_batch(batch, pad_id, seq_length):\n    context_lengths = []\n    for tokens in batch:\n        context_length = len(tokens)\n        if context_length < seq_length:\n            tokens.extend([pad_id] * (seq_length - context_length))\n        context_lengths.append(context_length)\n    return batch, context_lengths\n\n\ndef forward_step(\n        model,\n        tokens,\n        seq_length,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=None,\n        prompt_length=None,\n        context_length=None,\n):\n    # Forward pass through the model.\n    output_tensor = model(\n        tokens,\n        position_ids,\n        attention_mask,\n        layer_past=layer_past,\n        get_key_value=get_key_value,\n        prompt_length=prompt_length,\n        context_length=context_length,\n    )\n\n    if get_key_value:\n        output_tensor, layer_past = output_tensor\n\n    if get_key_value:\n        return output_tensor, layer_past\n\n    return output_tensor\n\n\ndef get_token_stream(\n        model,\n        tokenizer,\n        seq_length,\n        out_seq_length,\n        context_tokens,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        micro_batch_size: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        greedy: bool = False,\n        recompute: bool = False,\n):\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eos_token_id, seq_length)\n\n    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n    context_length_tensor = torch.cuda.LongTensor(context_lengths)\n    context_length = context_length_tensor.min().item()\n    tokens, attention_mask, position_ids = get_batch(\n        context_tokens_tensor, \n        micro_batch_size,\n        tokenizer.eos_token_id,\n    )\n\n    batch_token_iterator = sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens_tensor,\n        context_length_tensor,\n        attention_mask,\n        position_ids,\n        seq_length=seq_length,\n        out_seq_length=out_seq_length,\n        return_scores=return_scores,\n        prompt_length=prompt_length,\n        bad_ids=bad_ids,\n        temperature=temperature,\n        topp=topp,\n        topk=topk,\n        greedy=greedy,\n        recompute=recompute,\n    )\n\n    for tokens, lengths in batch_token_iterator:\n        context_length += 1\n        if tokens is not None:\n            yield tokens[:, :context_length], lengths\n        else:\n            yield None, None\n\n\ndef switch(val1, val2, boolean):\n    boolean = boolean.type_as(val1)\n    return (1 - boolean) * val1 + boolean * val2\n\n\ndef sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens,\n        context_lengths,\n        attention_mask,\n        position_ids,\n        seq_length,\n        out_seq_length,\n        maxlen=None,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        recompute: bool = False,\n        greedy: bool = False,\n):\n    model.eval()\n    with torch.no_grad():\n        context_length = context_lengths.min().item()\n        eos_id = tokenizer.eos_token_id\n\n        counter = 0\n        org_context_length = context_length\n\n        layer_past = None\n        batch_size = context_tokens.size(0)\n        is_done = torch.zeros([batch_size]).byte().cuda()\n        tokens = context_tokens\n        if maxlen is None:\n            maxlen = seq_length - 1\n            if maxlen > (org_context_length + out_seq_length):\n                maxlen = org_context_length + out_seq_length\n\n        lengths = torch.ones([batch_size]).long().cuda() * maxlen\n        if return_scores:\n            scores = torch.zeros([batch_size]).float().cuda()\n\n        while context_length <= (maxlen):\n\n            if recompute:\n                logits = model(tokens,\n                               position_ids,\n                               attention_mask,\n                               prompt_length=prompt_length,\n                               context_length=context_length,\n                               )\n                logits = logits[:, context_length - 1, :]\n            else:\n                if counter == 0:\n                    tokens2use = tokens[:, :context_length]\n                    positions2use = position_ids[:, :context_length]\n                else:\n                    tokens2use = tokens[:, context_length - 1].view(\n                        batch_size, -1)\n                    positions2use = position_ids[:, context_length - 1].view(\n                        batch_size, -1)\n                logits, layer_past = model(tokens2use,\n                                           positions2use,\n                                           attention_mask,\n                                           layer_past=layer_past,\n                                           get_key_value=True,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length,\n                                           )\n                logits = logits[:, -1].view(batch_size, -1).contiguous()\n\n            if bad_ids is not None:\n                for bad_id in bad_ids:\n                    logits[:, bad_id] = -10000\n            if greedy:\n                prev = torch.argmax(logits, dim=-1).view(-1)\n            else:\n                logits = logits.float()\n                if return_scores:\n                    orig_log_probs = torch.log_softmax(logits, dim=-1)\n                logits /= temperature\n                logits = top_k_logits(logits, top_k=topk, top_p=topp)\n                log_probs = F.softmax(logits, dim=-1)\n                prev = torch.multinomial(log_probs, num_samples=1).view(-1)\n\n            started = context_lengths <= context_length\n\n            new_tokens = switch(tokens[:, context_length].view(-1), prev, started)\n\n            if not greedy and return_scores:\n                indices = prev.view(-1, 1)\n                new_scores = orig_log_probs.gather(1, indices).view(-1)\n                new_scores = new_scores * started\n                new_scores = new_scores * is_done.bool().logical_not()\n                scores += new_scores\n\n            tokens[:, context_length] = new_tokens\n            done_token = (prev == eos_id).byte() & started.byte()\n            just_finished = (done_token & ~is_done).bool()\n            lengths[just_finished.view(-1)] = context_length\n            is_done = is_done | done_token\n            done = torch.all(is_done)\n            \n            if return_scores:\n                yield tokens, (lengths, scores)\n            else:\n                yield tokens, lengths\n                \n            context_length += 1\n            counter += 1\n            if done:\n                break\n"
  },
  {
    "path": "codegeex/paddle/__init__.py",
    "content": "from .codegeex_model import CodeGeeXModel"
  },
  {
    "path": "codegeex/paddle/codegeex_model.py",
    "content": "import math\nimport paddle\nimport paddle.nn.functional as F\n\n\ndef fast_gelu(x):\n    \"\"\"Mindspore's fast gelu implementation.\"\"\"\n    return x / (1 + paddle.exp(-1.702 * paddle.abs(x))) * paddle.exp(0.851 * (x - paddle.abs(x)))\n\n\nclass MLP(paddle.nn.Layer):\n    \"\"\"MLP.\n\n    MLP will take the input with h hidden state, project it to 4*h\n    hidden dimension, perform nonlinear transformation, and project the\n    state back into h hidden dimension. At the end, dropout is also\n    applied.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n    ):\n        super(MLP, self).__init__()\n        self.hidden_size = hidden_size\n        # Project to 4h.\n        self.dense_h_to_4h = paddle.nn.Linear(\n            self.hidden_size,\n            4 * self.hidden_size,\n        )\n\n        self.activation_func = fast_gelu\n\n        # Project back to h.\n        self.dense_4h_to_h = paddle.nn.Linear(\n            4 * self.hidden_size,\n            self.hidden_size,\n        )\n\n    def forward(self, hidden_states):\n        # [s, b, 4hp]\n        intermediate_parallel = self.dense_h_to_4h(hidden_states)\n        intermediate_parallel = self.activation_func(intermediate_parallel)\n        # [s, b, h]\n        output = self.dense_4h_to_h(intermediate_parallel)\n\n        return output\n    \n\nclass SelfAttention(paddle.nn.Layer):\n    \"\"\"self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads, \n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(SelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n        \n        self.query = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = paddle.nn.Softmax(axis=-1)\n\n        self.dense = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [sq, b, h]\n\n        # =====================\n        # Query, Key, and Value\n        # =====================\n\n        query_layer = self.query(hidden_states)\n        key_layer = self.key(hidden_states)\n        value_layer = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        query_layer = query_layer.reshape(new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        key_layer = key_layer.reshape(new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        value_layer = value_layer.reshape(new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = paddle.concat((past_key.cast(key_layer.dtype),\n                                   key_layer), axis=0)\n            value_layer = paddle.concat((past_value.cast(value_layer.dtype),\n                                     value_layer), axis=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.shape[1],\n                       query_layer.shape[2],\n                       query_layer.shape[0],\n                       key_layer.shape[0])\n\n        # [sq, b, np, hn] -> [sq, b * np, hn]\n        query_layer = query_layer.reshape([output_size[2], output_size[0] * output_size[1], -1])\n        key_layer = key_layer.reshape([output_size[3], output_size[0] * output_size[1], -1])\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = paddle.matmul(query_layer.transpose([1, 0, 2]),\n                                     key_layer.transpose([1, 0, 2]).transpose([0, 2, 1])) / self.norm_factor\n\n        # change view to [b, np, sq, sk]\n        attention_scores = matmul_result.reshape(output_size)\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with paddle.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.shape[3] - 1,\n                                     :attention_scores.shape[3]].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.shape[3],\n                                     :attention_scores.shape[3]]\n\n        if context_length is not None:\n            attention_mask = paddle.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.cast(\"float32\")).cast(\"float16\")\n        else:\n            attention_probs = self.softmax(attention_scores)\n\n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.shape[1],\n                       value_layer.shape[2],\n                       query_layer.shape[0],\n                       value_layer.shape[3])\n\n        # change view [sq, b * np, hn] \n        value_layer = value_layer.reshape([value_layer.shape[0], output_size[0] * output_size[1], -1])\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.reshape([output_size[0] * output_size[1],\n                                               output_size[2], -1])\n\n        context_layer = paddle.bmm(attention_probs, value_layer.unsqueeze(0).transpose([0, 2, 1, 3]).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.reshape(output_size)\n\n        # # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.transpose([2, 0, 1, 3])\n\n        # # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.shape[:-2] + \\\n                                  [self.hidden_size,]\n        context_layer = context_layer.reshape(new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output\n\n\nclass TopQuerySelfAttention(paddle.nn.Layer):\n    \"\"\"Top query self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TopQuerySelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n\n        self.query = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = paddle.nn.Softmax(axis=-1)\n\n        self.dense = paddle.nn.Linear(self.hidden_size, self.hidden_size)\n        \n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n\n        # hidden_states: [sq, b, h]\n        query_layer = self.query(query_hidden_state)\n        key_layer = self.key(hidden_states)\n        value_layer = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        query_layer = query_layer.reshape(new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        key_layer = key_layer.reshape(new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.shape[:-1] + \\\n                                [self.num_attention_heads,\n                                 self.hidden_size_per_attention_head]\n        value_layer = value_layer.reshape(new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = paddle.concat((past_key.cast(key_layer.dtype),\n                                   key_layer), axis=0)\n            value_layer = paddle.concat((past_value.cast(value_layer.dtype),\n                                     value_layer), axis=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.shape[1],\n                       query_layer.shape[2],\n                       query_layer.shape[0],\n                       key_layer.shape[0])\n\n        # [s, b, np, hn] -> [s, b * np, hn]\n        query_layer = query_layer.reshape([output_size[2], output_size[0] * output_size[1], -1])\n        key_layer = key_layer.reshape([output_size[3], output_size[0] * output_size[1], -1])\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = paddle.matmul(query_layer.transpose([1, 0, 2]),\n                                     key_layer.transpose([1, 0, 2]).transpose([0, 2, 1])) / self.norm_factor\n\n        # change view to [b, np, s, s]\n        attention_scores = matmul_result.reshape(output_size)\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with paddle.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.shape[3] - 1,\n                                     :attention_scores.shape[3]].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.shape[3],\n                                     :attention_scores.shape[3]]\n\n        if context_length is not None:\n            attention_mask = paddle.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.cast(\"float32\")).cast(\"float16\")\n        else:\n            attention_probs = self.softmax(attention_scores)\n            \n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.shape[1],\n                       value_layer.shape[2],\n                       query_layer.shape[0],\n                       value_layer.shape[3])\n\n        # change view [sq, b * np, hn]\n        value_layer = value_layer.reshape([value_layer.shape[0], output_size[0] * output_size[1], -1])\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.reshape([output_size[0] * output_size[1],\n                                               output_size[2], -1])\n\n        # matmul: [b * np, sq, hn]\n        context_layer = paddle.bmm(attention_probs, value_layer.unsqueeze(0).transpose([0, 2, 1, 3]).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.reshape(output_size)\n\n        # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.transpose([2, 0, 1, 3])\n\n        # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.shape[:-2] + \\\n                                  [self.hidden_size,]\n        context_layer = context_layer.reshape(new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output\n\n\nclass TransformerLayer(paddle.nn.Layer):\n    \"\"\"A single transformer layer.\n\n    Transformore layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number, \n        layernorm_epsilon=1e-5,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TransformerLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Layernorm on the input data.\n        self.input_layernorm = paddle.nn.LayerNorm(hidden_size,\n                                                  epsilon=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = SelfAttention(hidden_size,\n                                       num_attention_heads, \n                                       layer_number,\n                                       fp16,\n                                       attention_softmax_in_fp32)\n\n        # Layernorm on the input data.\n        self.post_attention_layernorm = paddle.nn.LayerNorm(self.hidden_size,\n                                                           epsilon=self.layernorm_epsilon)\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.cast(\"float32\")).cast(\"float16\")\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output = self.attention(layernorm_output,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.cast(\"float32\")).cast(\"float16\")\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n        mlp_output = self.mlp(layernorm_output)\n        output = mlp_output + layernorm_input\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass TopQueryLayer(paddle.nn.Layer):\n    \"\"\"A single top query layer.\n\n    Top query layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        layernorm_epsilon=1e-5,\n    ):\n        super(TopQueryLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Use FP32 for Layernorm\n        self.input_layernorm = paddle.nn.LayerNorm(self.hidden_size,\n                                                  epsilon=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = TopQuerySelfAttention(self.hidden_size,\n                                               self.num_attention_heads,\n                                               self.layer_number)\n        # Layernorm on the input data.\n        self.post_attention_layernorm = paddle.nn.LayerNorm(self.hidden_size,\n                                                           epsilon=self.layernorm_epsilon)\n\n        # MLP\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        # assert query_hidden_state != None\n\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.cast(\"float32\")).cast(\"float16\")\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output = self.attention(layernorm_output,\n                                          query_hidden_state,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.cast(\"float32\")).cast(\"float16\")\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n\n        # MLP.\n        mlp_output = self.mlp(layernorm_output)\n\n        # Second residual connection.\n        residual = layernorm_input\n        output = mlp_output + residual\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass Transformer(paddle.nn.Layer):\n    \"\"\"Transformer class.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        num_layers,\n        layernorm_epsilon=1e-5,\n    ):\n        super(Transformer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        # Number of layers:\n        self.num_layers = num_layers\n        self.num_unique_layers = None\n\n        #################\n        assert self.num_unique_layers is None\n        #################\n\n        if self.num_unique_layers is None:\n            self.num_unique_layers = self.num_layers\n        assert self.num_layers % self.num_unique_layers == 0, \\\n            'number of layers should be divisible by number of unique layers'\n        \n        # Transformer layers.\n        def build_layer(layer_number):\n            return TransformerLayer(self.hidden_size, self.num_attention_heads, layer_number)\n\n        self.layers = paddle.nn.LayerList(\n            [build_layer(i + 1) for i in range(self.num_unique_layers)])\n\n        self.topQueryLayer = TopQueryLayer(self.hidden_size,\n                                           self.num_attention_heads,\n                                           self.num_unique_layers)\n\n        self.final_layernorm = paddle.nn.LayerNorm(self.hidden_size,\n                                                  epsilon=self.layernorm_epsilon)\n\n    def _get_layer_index(self, layer_number):\n        return layer_number % self.num_unique_layers\n\n    def _get_layer(self, layer_number):\n        return self.layers[self._get_layer_index(layer_number)]\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # data format change to avoid explicit tranposes : [b s h] --> [s b h]\n        hidden_states = hidden_states.transpose([1, 0, 2])\n        query_hidden_state = query_hidden_state.transpose([1, 0, 2])\n\n    \n        if get_key_value:\n            presents = []\n        for index in range(self.num_layers):\n            layer = self._get_layer(index)\n            past = None\n            if layer_past is not None:\n                past = layer_past[index]\n            hidden_states = layer(hidden_states,\n                                  attention_mask,\n                                  layer_past=past,\n                                  get_key_value=get_key_value,\n                                  prompt_length=prompt_length,\n                                  context_length=context_length)\n            if get_key_value:\n                hidden_states, present = hidden_states\n                presents.append(present)\n\n        # Use FP32 for Layernorm\n        # hidden_states_ = self.final_layernorm(hidden_states.cast(\"float32\")).cast(\"float16\")\n        hidden_states_ = self.final_layernorm(hidden_states)\n\n        #################################\n        # top query layer\n        #################################\n        past = None\n        if layer_past is not None:\n            past = layer_past[self.num_layers]\n        hidden_states = self.topQueryLayer(hidden_states_,\n                                           query_hidden_state,\n                                           attention_mask,\n                                           layer_past=past,\n                                           get_key_value=get_key_value,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length)\n\n        if get_key_value:\n            hidden_states, present = hidden_states\n            presents.append(present)\n\n        # reverting data format change [s b h] --> [b s h]\n        output = hidden_states.transpose([1, 0, 2])\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        return self.state_dict(destination, prefix, keep_vars)\n\n\nclass Embedding(paddle.nn.Layer):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(Embedding, self).__init__()\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n        \n        # Word embeddings.\n        self.word_embeddings = paddle.nn.Embedding(self.vocab_size, self.hidden_size)\n        self._word_embeddings_key = 'word_embeddings'\n        \n        # Position embedding.\n        self.position_embeddings = paddle.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.position_embeddings = self.position_embeddings.to(dtype=\"float16\")\n        self._position_embeddings_key = 'position_embeddings'\n        \n    def forward(self, input_ids, position_ids):\n        # Embeddings.\n        words_embeddings = self.word_embeddings(input_ids)\n        position_embeddings = self.position_embeddings(position_ids)\n        embeddings = words_embeddings + position_embeddings\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._word_embeddings_key] \\\n            = self.word_embeddings.state_dict(destination, prefix, keep_vars)\n        state_dict_[self._position_embeddings_key] \\\n            = self.position_embeddings.state_dict(\n            destination, prefix, keep_vars)\n        \n        return state_dict_\n\n    def set_state_dict(self, state_dict, use_structured_name=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Word embedding.\n        if self._word_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._word_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'word_embeddings' in key:\n                    state_dict_[key.split('word_embeddings.')[1]] \\\n                        = state_dict[key]\n        state_dict_[\"weight\"] = state_dict_[\"weight\"][:self.vocab_size]\n        self.word_embeddings.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n\n        # Position embedding.\n        if self._position_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._position_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'position_embeddings' in key:\n                    state_dict_[key.split('position_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.position_embeddings.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n        \n\nclass QueryEmbedding(paddle.nn.Layer):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(QueryEmbedding, self).__init__()\n\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n\n        # Top query position embedding (serial).\n        self.top_query_embeddings = paddle.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.top_query_embeddings = self.top_query_embeddings.to(dtype=\"float16\")\n        self._top_query_embeddings_key = 'top_query_embeddings'\n        \n    def forward(self, position_ids):\n        # Embeddings.\n        embeddings = self.top_query_embeddings(position_ids)\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._top_query_embeddings_key] \\\n            = self.top_query_embeddings.state_dict(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def set_state_dict(self, state_dict, use_structured_name=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Position embedding.\n        if self._top_query_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._top_query_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'top_query_embeddings' in key:\n                    state_dict_[key.split('top_query_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.top_query_embeddings.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n        \n\nclass TransformerLanguageModel(paddle.nn.Layer):\n    \"\"\"Transformer language model.\n\n    Arguments:\n        transformer_hparams: transformer hyperparameters\n        attention_mask_func: a function that takes `unmaksed-attention-scores`\n            with size [b, np, s, s] and an `attention-mask` and will apply\n            the masking. The function should return a masked score of the\n            same size [b, np, s, s].\n          masked-attention-scores = attention_mask_func(\n                                     unmaksed-attention-scores, attention-mask)\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(TransformerLanguageModel, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_layers = num_layers\n        self.num_attention_heads = num_attention_heads\n        self.padded_vocab_size = padded_vocab_size\n        self.max_position_embeddings = max_position_embeddings\n\n        # Embeddings\n        self.embedding = Embedding(self.hidden_size,\n                                   self.padded_vocab_size,\n                                   self.max_position_embeddings)\n        self._embedding_key = 'embedding'\n\n        # Query embeddings\n        self.topQueryEmbedding = QueryEmbedding(self.hidden_size,\n                                                self.padded_vocab_size,\n                                                self.max_position_embeddings)\n        self._topQueryEmbedding_key = 'topQueryEmbedding'\n\n        # Transformer\n        self.transformer = Transformer(self.hidden_size,\n                                       self.num_attention_heads,\n                                       self.num_layers)\n        self._transformer_key = 'transformer'\n\n    def forward(\n            self,\n            input_ids,\n            position_ids,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Embeddings.\n        embedding_output = self.embedding(input_ids, position_ids)\n        query_position_ids = position_ids\n        queryEmbedding_out = self.topQueryEmbedding(query_position_ids)\n\n        # Transformer.\n        transformer_output = self.transformer(embedding_output,\n                                              queryEmbedding_out,\n                                              attention_mask,\n                                              layer_past=layer_past,\n                                              get_key_value=get_key_value,\n                                              prompt_length=prompt_length,\n                                              context_length=context_length)\n\n        return transformer_output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._embedding_key] \\\n            = self.embedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._topQueryEmbedding_key] \\\n            = self.topQueryEmbedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._transformer_key] \\\n            = self.transformer.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def set_state_dict(self, state_dict, use_structured_name=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Embedding.\n        if self._embedding_key in state_dict:\n            state_dict_ = state_dict[self._embedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.embedding.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n\n        if self._topQueryEmbedding_key in state_dict:\n            state_dict_ = state_dict[self._topQueryEmbedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.topQueryEmbedding.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n\n        # Transformer.\n        if self._transformer_key in state_dict:\n            state_dict_ = state_dict[self._transformer_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'transformer.' in key:\n                    state_dict_[key.split('transformer.')[1]] = state_dict[key]\n        self.transformer.set_state_dict(state_dict_, use_structured_name=use_structured_name)\n\n\nclass CodeGeeXModel(paddle.nn.Layer):\n    \"\"\"CodeGeeX: A Multilingual Code Generation Model.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(CodeGeeXModel, self).__init__()\n        \n        self.language_model = TransformerLanguageModel(hidden_size,\n                                                       num_layers,\n                                                       num_attention_heads,\n                                                       padded_vocab_size,\n                                                       max_position_embeddings)\n        self._language_model_key = \"language_model\"\n        \n    def forward(\n        self,\n        input_ids,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # Language model.\n        lm_output = self.language_model(input_ids,\n                                        position_ids,\n                                        attention_mask,\n                                        layer_past=layer_past,\n                                        get_key_value=get_key_value,\n                                        prompt_length=prompt_length,\n                                        context_length=context_length)\n\n        if get_key_value:\n            lm_output, presents = lm_output\n\n        output = F.linear(lm_output, self.language_model.embedding.word_embeddings.weight.cast(\"float16\").transpose([1, 0]))\n        \n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n\n        state_dict_ = {}\n        state_dict_[self._language_model_key] \\\n            = self.language_model.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        return state_dict_\n\n    def set_state_dict(self, state_dict, use_structured_name=True):\n        \"\"\"Customized load.\"\"\"\n\n        if self._language_model_key in state_dict:\n            state_dict = state_dict[self._language_model_key]\n        self.language_model.set_state_dict(state_dict, use_structured_name=use_structured_name)\n"
  },
  {
    "path": "codegeex/paddle/inference.py",
    "content": "import copy\nimport json\nimport os\nimport time\nfrom typing import *\n\nimport paddle\nimport paddle.nn.functional as F\nfrom dataclasses import dataclass\n\n\ndef get_ltor_masks_and_position_ids(\n    data, \n    eod_token, \n    reset_position_ids, \n    reset_attention_mask, \n):\n    \"\"\"Build masks and position id for left to right model.\"\"\"\n\n    # Extract batch size and sequence length.\n    micro_batch_size, seq_length = data.shape\n\n    # Attention mask (lower triangular).\n    if reset_attention_mask:\n        att_mask_batch = micro_batch_size\n    else:\n        att_mask_batch = 1\n    attention_mask = paddle.tril(\n        paddle.ones((att_mask_batch, seq_length, seq_length))\n    ).reshape([att_mask_batch, 1, seq_length, seq_length])\n\n    # Position ids.\n    position_ids = paddle.arange(seq_length, dtype=\"int64\")\n    position_ids = position_ids.unsqueeze(0).expand_as(data)\n    # We need to clone as the ids will be modifed based on batch index.\n    if reset_position_ids:\n        position_ids = position_ids.clone()\n\n    if reset_position_ids or reset_attention_mask:\n        # Loop through the batches:\n        for b in range(micro_batch_size):\n\n            # Find indecies where EOD token is.\n            eod_index = position_ids[b, data[b] == eod_token]\n            # Detach indecies from positions if going to modify positions.\n            if reset_position_ids:\n                eod_index = eod_index.clone()\n\n            # Loop through EOD indecies:\n            prev_index = 0\n            for j in range(eod_index.shape[0]):\n                i = eod_index[j]\n                # Mask attention loss.\n                if reset_attention_mask:\n                    attention_mask[b, 0, (i + 1) :, : (i + 1)] = 0\n                # Reset positions.\n                if reset_position_ids:\n                    position_ids[b, (i + 1) :] -= i + 1 - prev_index\n                    prev_index = i + 1\n\n    # Convert attention mask to binary:\n    attention_mask = attention_mask < 0.5\n\n    return attention_mask, position_ids\n\n\ndef get_batch(\n    context_tokens, \n    micro_batch_size, \n    eod_token, \n    reset_position_ids=False,\n    reset_attention_mask=False,\n):\n    \"\"\"Generate batch from context tokens.\"\"\"\n    tokens = context_tokens.reshape([micro_batch_size, -1]).cuda()\n    # Get the attention mask and postition ids.\n    attention_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        eod_token,\n        reset_position_ids,\n        reset_attention_mask,\n    )\n\n    return tokens, attention_mask, position_ids\n\n\ndef top_k_logits(logits, top_k=0, top_p=0.0, filter_value=-float(\"Inf\")):\n    \"\"\"This function has been mostly taken from huggingface conversational\n    ai code at\n        https://medium.com/huggingface/how-to-build-a-state-of-the-art-\n             conversational-ai-with-transfer-learning-2d818ac26313\"\"\"\n\n    if top_k > 0:\n        # Remove all tokens with a probability less than the\n        # last token of the top-k\n        indices_to_remove = logits < paddle.topk(logits, top_k)[0][..., -1, None]\n        logits[indices_to_remove] = filter_value\n\n    if top_p > 0.0:\n        # Cconvert to 1D\n        sorted_logits, sorted_indices = paddle.sort(logits, descending=True, axis=-1)\n        cumulative_probs = paddle.cumsum(F.softmax(sorted_logits, axis=-1), axis=-1)\n\n        # Remove tokens with cumulative probability above the threshold\n        sorted_indices_to_remove = cumulative_probs > top_p\n        # Shift the indices to the right to keep also the first token\n        # above the threshold\n        sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()\n        sorted_indices_to_remove[..., 0] = 0\n        for i in range(sorted_indices.shape[0]):\n            indices_to_remove = sorted_indices[i][sorted_indices_to_remove[i]]\n            logits[i][indices_to_remove] = filter_value\n\n    return logits\n\n\ndef pad_batch(batch, pad_id, seq_length):\n    context_lengths = []\n    for tokens in batch:\n        context_length = len(tokens)\n        if context_length < seq_length:\n            tokens.extend([pad_id] * (seq_length - context_length))\n        context_lengths.append(context_length)\n    return batch, context_lengths\n\n\ndef forward_step(\n        model,\n        tokens,\n        seq_length,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=None,\n        prompt_length=None,\n        context_length=None,\n):\n    # Forward pass through the model.\n    output_tensor = model(\n        tokens,\n        position_ids,\n        attention_mask,\n        layer_past=layer_past,\n        get_key_value=get_key_value,\n        prompt_length=prompt_length,\n        context_length=context_length,\n    )\n\n    if get_key_value:\n        output_tensor, layer_past = output_tensor\n\n    if get_key_value:\n        return output_tensor, layer_past\n\n    return output_tensor\n\n\ndef get_token_stream(\n        model,\n        tokenizer,\n        seq_length,\n        out_seq_length,\n        context_tokens,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        micro_batch_size: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        greedy: bool = False,\n        recompute: bool = False,\n):\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eos_token_id, seq_length)\n\n    context_tokens_tensor = paddle.to_tensor(context_tokens, dtype=\"int64\")\n    context_length_tensor = paddle.to_tensor(context_lengths, dtype=\"int64\")\n    context_length = context_length_tensor.min().item()\n    tokens, attention_mask, position_ids = get_batch(\n        context_tokens_tensor, \n        micro_batch_size,\n        tokenizer.eos_token_id,\n    )\n\n    batch_token_iterator = sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens_tensor,\n        context_length_tensor,\n        attention_mask,\n        position_ids,\n        seq_length=seq_length,\n        out_seq_length=out_seq_length,\n        return_scores=return_scores,\n        prompt_length=prompt_length,\n        bad_ids=bad_ids,\n        temperature=temperature,\n        topp=topp,\n        topk=topk,\n        greedy=greedy,\n        recompute=recompute,\n    )\n\n    for tokens, lengths in batch_token_iterator:\n        context_length += 1\n        if tokens is not None:\n            yield tokens[:, :context_length], lengths\n        else:\n            yield None, None\n\n\ndef switch(val1, val2, boolean):\n    boolean = boolean.cast(val1.dtype)\n    return (1 - boolean) * val1 + boolean * val2\n\n\ndef sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens,\n        context_lengths,\n        attention_mask,\n        position_ids,\n        seq_length,\n        out_seq_length,\n        maxlen=None,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        recompute: bool = False,\n        greedy: bool = False,\n):\n    model.eval()\n    with paddle.no_grad():\n        context_length = context_lengths.min().item()\n        eos_id = tokenizer.eos_token_id\n\n        counter = 0\n        org_context_length = context_length\n\n        layer_past = None\n        batch_size = context_tokens.shape[0]\n        is_done = paddle.zeros([batch_size]).cast(\"uint8\").cuda()\n        tokens = context_tokens\n        if maxlen is None:\n            maxlen = seq_length - 1\n            if maxlen > (org_context_length + out_seq_length):\n                maxlen = org_context_length + out_seq_length\n\n        lengths = paddle.ones([batch_size]).cast(\"int64\").cuda() * maxlen\n        if return_scores:\n            scores = paddle.zeros([batch_size]).cast(\"float32\").cuda()\n\n        while context_length <= (maxlen):\n\n            if recompute:\n                logits = model(tokens,\n                               position_ids,\n                               attention_mask,\n                               prompt_length=prompt_length,\n                               context_length=context_length,\n                               )\n                logits = logits[:, context_length - 1, :]\n            else:\n                if counter == 0:\n                    tokens2use = tokens[:, :context_length]\n                    positions2use = position_ids[:, :context_length]\n                else:\n                    tokens2use = tokens[:, context_length - 1].reshape([\n                        batch_size, -1])\n                    positions2use = position_ids[:, context_length - 1].reshape([\n                        batch_size, -1])\n                logits, layer_past = model(tokens2use,\n                                           positions2use,\n                                           attention_mask,\n                                           layer_past=layer_past,\n                                           get_key_value=True,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length,\n                                           )\n                logits = logits[:, -1].reshape([batch_size, -1])\n\n            if bad_ids is not None:\n                for bad_id in bad_ids:\n                    logits[:, bad_id] = -10000\n            if greedy:\n                prev = paddle.argmax(logits, axis=-1).reshape([-1])\n            else:\n                logits = logits.cast(\"float32\")\n                if return_scores:\n                    orig_log_probs = paddle.log_softmax(logits, axis=-1)\n                logits /= temperature\n                logits = top_k_logits(logits, top_k=topk, top_p=topp)\n                log_probs = F.softmax(logits, axis=-1)\n                prev = paddle.multinomial(log_probs, num_samples=1).reshape([-1])\n\n            started = context_lengths <= context_length\n\n            new_tokens = switch(tokens[:, context_length].reshape([-1]), prev, started)\n\n            if not greedy and return_scores:\n                indices = prev.reshape([-1, 1])\n                new_scores = orig_log_probs.gather(1, indices).reshape([-1])\n                new_scores = new_scores * started\n                new_scores = new_scores * is_done.cast(\"bool\").logical_not()\n                scores += new_scores\n\n            tokens[:, context_length] = new_tokens\n            done_token = (prev == eos_id).cast(\"uint8\") & started.cast(\"uint8\")\n            just_finished = (done_token & ~is_done).cast(\"bool\")\n            lengths[just_finished.reshape([-1])] = context_length\n            is_done = is_done | done_token\n            done = paddle.all(is_done.cast(\"bool\"))\n            \n            if return_scores:\n                yield tokens, (lengths, scores)\n            else:\n                yield tokens, lengths\n                \n            context_length += 1\n            counter += 1\n            if done:\n                break\n"
  },
  {
    "path": "codegeex/paddle/pt_to_pdparams.py",
    "content": "import argparse\nimport paddle\nimport torch\n\nlinear_layer = [\n    \"mlp.dense_h_to_4h\",\n    \"mlp.dense_4h_to_h\",\n    \"attention.query\",\n    \"attention.key\",\n    \"attention.value\",\n    \"attention.dense\",\n]\n\n\ndef WalkDict(x):\n    for i in x:\n        if isinstance(x[i], dict):\n            WalkDict(x[i])\n        elif isinstance(x[i], torch.Tensor):\n            print(f\"Converting '{i}' from 'torch.Tensor' to 'numpy.ndarray'.\")\n            npy = x[i].cpu().numpy()\n            if any([f\".{layer}.weight\" in i for layer in linear_layer]):\n                print(f\"Transposing linear layer weight '{i}'.\")\n                x[i] = npy.T\n            else:\n                x[i] = npy\n\n\ndef parse_opt():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\n        \"--pt\",\n        type=str,\n        required=True,\n        help=\"Path to pt checkpoint.\"\n    )\n    parser.add_argument(\n        \"--pdparams\",\n        type=str,\n        required=True,\n        help=\"Path to pdparams checkpoint.\"\n    )\n    opt = parser.parse_args()\n    return opt\n\n\ndef main(opt):\n    state_dict = torch.load(opt.pt)\n    WalkDict(state_dict)\n    paddle.save(state_dict, opt.pdparams)\n\n\nif __name__ == \"__main__\":\n    opt = parse_opt()\n    main(opt)\n"
  },
  {
    "path": "codegeex/quantization/__init__.py",
    "content": "from .quantize import quantize\ntry:\n    from .quantize_oneflow import quantize_oneflow\n    from .quantize_oneflow import QuantizedLinear\nexcept ModuleNotFoundError:\n    pass\n"
  },
  {
    "path": "codegeex/quantization/quantize.py",
    "content": "import torch\n\nfrom torch.nn.parameter import Parameter\nfrom codegeex.kernels import extract_weight_to_half\nfrom codegeex.megatron.mpu.layers import RowParallelLinear, ColumnParallelLinear\nfrom codegeex.megatron.mpu.mappings import copy_to_tensor_model_parallel_region, gather_from_tensor_model_parallel_region, reduce_from_tensor_model_parallel_region, scatter_to_tensor_model_parallel_region\n\n\nclass W8A16Linear(torch.autograd.Function):\n    @staticmethod\n    def forward(ctx, inp: torch.Tensor, quant_w: torch.Tensor, scale_w: torch.Tensor, weight_bit_width):\n        ctx.inp_shape = inp.size()\n        ctx.weight_shape = quant_w.size()\n        ctx.weight_bit_width = weight_bit_width\n        out_features = quant_w.size(0)\n        inp = inp.contiguous().view(-1, inp.size(-1))\n        weight = extract_weight_to_half(quant_w, scale_w, weight_bit_width)\n        output = inp.mm(weight.t())\n        ctx.save_for_backward(inp, quant_w, scale_w)\n        return output.view(*(ctx.inp_shape[:-1] + (out_features,)))\n\n    @staticmethod\n    def backward(ctx, grad_output: torch.Tensor):\n        inp, quant_w, scale_w = ctx.saved_tensors\n        weight = extract_weight_to_half(quant_w, scale_w, ctx.weight_bit_width)\n        grad_output = grad_output.contiguous().view(-1, weight.size(0))\n        grad_input = grad_output.mm(weight)\n        grad_weight = grad_output.t().mm(inp)\n        return grad_input.view(ctx.inp_shape), grad_weight.view(ctx.weight_shape), None\n\n\nclass QuantizedLinear(torch.nn.Module):\n    def __init__(\n        self, \n        in_features: int,\n        out_features: int,\n        weight_bit_width: int, \n        weight: torch.Tensor = None, \n        bias: torch.Tensor = None, \n        *args, \n        **kwargs\n    ):\n        super(QuantizedLinear, self).__init__()\n        \n        self.in_features = in_features\n        self.out_features = out_features\n        self.weight_bit_width = weight_bit_width\n\n        if weight is None:\n            self.weight = torch.empty(\n                self.out_features, self.in_features * weight_bit_width // 8, dtype=torch.int8, device=kwargs[\"device\"]\n            )\n            self.weight_scale = torch.empty(self.out_features, dtype=kwargs[\"params_dtype\"], device=kwargs[\"device\"])\n        else:\n            self.weight_scale = (weight.abs().max(dim=-1).values / ((2 ** (weight_bit_width - 1)) - 1)).half()\n            self.weight = torch.round(weight / self.weight_scale[:, None]).to(torch.int8)\n            if weight_bit_width == 4:\n                self.weight = compress_int4_weight(self.weight)\n\n        if bias is None:\n            self.register_parameter('bias', None)\n        else:\n            self.bias = bias\n        \n        self.weight = Parameter(self.weight.to(kwargs[\"device\"]), requires_grad=False)\n        self.weight_scale = Parameter(self.weight_scale.to(kwargs[\"device\"]), requires_grad=False)\n\n    def forward(self, input_):\n        # Matrix multiply.\n        output = W8A16Linear.apply(input_, self.weight, self.weight_scale, self.weight_bit_width)\n        if self.bias is not None:\n            output = output + self.bias\n        \n        return output\n\n\nclass QuantizedColumnParallelLinear(ColumnParallelLinear):\n    def __init__(\n        self,\n        input_size: int,\n        output_size: int,\n        weight_bit_width: int, \n        weight: torch.Tensor = None, \n        bias: torch.Tensor = None, \n        *args, \n        **kwargs,\n    ):\n        super(QuantizedColumnParallelLinear, self).__init__(input_size, output_size, *args, **kwargs)\n        self.input_size = input_size\n        self.output_size = output_size\n        self.weight_bit_width = weight_bit_width\n        if \"skip_bias_add\" in kwargs:\n            self.skip_bias_add = kwargs[\"skip_bias_add\"]\n        else:\n            self.skip_bias_add = False\n        del self.weight\n\n        if weight is None:\n            self.weight = torch.empty(\n                self.output_size, self.input_size * weight_bit_width // 8, dtype=torch.int8, device=kwargs[\"device\"]\n            )\n            self.weight_scale = torch.empty(self.output_size, dtype=kwargs[\"params_dtype\"], device=kwargs[\"device\"])\n        else:\n            self.weight_scale = (weight.abs().max(dim=-1).values / ((2 ** (weight_bit_width - 1)) - 1)).half()\n            self.weight = torch.round(weight / self.weight_scale[:, None]).to(torch.int8)\n            if weight_bit_width == 4:\n                self.weight = compress_int4_weight(self.weight)\n\n        if bias is None:\n            self.register_parameter('bias', None)\n        else:\n            del self.bias\n            self.bias = bias\n            \n        self.weight = Parameter(self.weight.to(kwargs[\"device\"]), requires_grad=False)\n        self.weight_scale = Parameter(self.weight_scale.to(kwargs[\"device\"]), requires_grad=False)\n\n    def forward(self, input_):\n        # Set up backprop all-reduce.\n        input_parallel = copy_to_tensor_model_parallel_region(input_)\n        # Matrix multiply.\n        output_parallel = W8A16Linear.apply(input_parallel, self.weight, self.weight_scale, self.weight_bit_width)\n        if self.bias is not None and not self.skip_bias_add:\n            output_parallel = output_parallel + self.bias\n        if self.gather_output:\n            # All-gather across the partitions.\n            output = gather_from_tensor_model_parallel_region(output_parallel)\n        else:\n            output = output_parallel\n            \n        output_bias = self.bias if self.skip_bias_add else None\n        \n        return output, output_bias\n\n\nclass QuantizedRowParallelLinear(RowParallelLinear):\n    def __init__(\n        self,\n        input_size: int,\n        output_size: int,\n        weight_bit_width: int, \n        weight: torch.Tensor = None, \n        bias: torch.Tensor = None,  \n        *args, \n        **kwargs,\n    ):\n        super(QuantizedRowParallelLinear, self).__init__(input_size, output_size, *args, **kwargs)\n        self.input_size = input_size\n        self.output_size = output_size\n        self.weight_bit_width = weight_bit_width\n        if \"skip_bias_add\" in kwargs:\n            self.skip_bias_add = kwargs[\"skip_bias_add\"]\n        else:\n            self.skip_bias_add = False\n        del self.weight\n        \n        if weight is None:\n            self.weight = torch.empty(\n                self.output_size, self.input_size * weight_bit_width // 8, dtype=torch.int8, device=kwargs[\"device\"]\n            )\n            self.weight_scale = torch.empty(self.output_size, dtype=kwargs[\"params_dtype\"], device=kwargs[\"device\"])\n        else:\n            self.weight_scale = (weight.abs().max(dim=-1).values / ((2 ** (weight_bit_width - 1)) - 1)).half()\n            self.weight = torch.round(weight / self.weight_scale[:, None]).to(torch.int8)\n            if weight_bit_width == 4:\n                self.weight = compress_int4_weight(self.weight)\n\n        if bias is None:\n            self.register_parameter('bias', None)\n        else:\n            del self.bias\n            self.bias = bias\n            \n        self.weight = Parameter(self.weight.to(kwargs[\"device\"]), requires_grad=False)\n        self.weight_scale = Parameter(self.weight_scale.to(kwargs[\"device\"]), requires_grad=False)\n\n    def forward(self, input_):\n        # Set up backprop all-reduce.\n        if self.input_is_parallel:\n            input_parallel = input_\n        else:\n            input_parallel = scatter_to_tensor_model_parallel_region(input_)\n        # Matrix multiply.\n        output_parallel = W8A16Linear.apply(input_parallel, self.weight, self.weight_scale, self.weight_bit_width)\n        # All-reduce across all the partitions.\n        output_ = reduce_from_tensor_model_parallel_region(output_parallel)\n        if self.bias is not None and not self.skip_bias_add:\n            output = output_ + self.bias\n        else:\n            output = output_\n        output_bias = self.bias if self.skip_bias_add else None\n        \n        return output, output_bias\n    \n\ndef quantize(model, weight_bit_width, backend=\"torch\"):\n    \"\"\"Replace fp16 linear with quantized linear\"\"\"\n    \n    for i in range(len(model.language_model.transformer.layers) + 1):\n        if i == len(model.language_model.transformer.layers):\n            layer = model.language_model.transformer.topQueryLayer\n        else:\n            layer = model.language_model.transformer.layers[i]\n        \n        if backend == \"torch\":\n            layer.attention.query = QuantizedLinear(\n                in_features=layer.attention.query.in_features,\n                out_features=layer.attention.query.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.query.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.query.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.attention.query.weight.device,\n            )\n            layer.attention.value = QuantizedLinear(\n                in_features=layer.attention.value.in_features,\n                out_features=layer.attention.value.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.value.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.value.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.attention.value.weight.device,\n            )\n            layer.attention.key = QuantizedLinear(\n                in_features=layer.attention.key.in_features,\n                out_features=layer.attention.key.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.key.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.key.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.attention.key.weight.device,\n            )\n            layer.attention.dense = QuantizedLinear(\n                in_features=layer.attention.dense.in_features,\n                out_features=layer.attention.dense.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.dense.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.dense.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.attention.dense.weight.device,\n            )\n            layer.mlp.dense_h_to_4h = QuantizedLinear(\n                in_features=layer.mlp.dense_h_to_4h.in_features,\n                out_features=layer.mlp.dense_h_to_4h.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.mlp.dense_h_to_4h.weight.to(torch.cuda.current_device()),\n                bias=layer.mlp.dense_h_to_4h.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.mlp.dense_h_to_4h.weight.device,\n            )\n            layer.mlp.dense_4h_to_h = QuantizedLinear(\n                in_features=layer.mlp.dense_4h_to_h.in_features,\n                out_features=layer.mlp.dense_4h_to_h.out_features,\n                weight_bit_width=weight_bit_width,\n                weight=layer.mlp.dense_4h_to_h.weight.to(torch.cuda.current_device()),\n                bias=layer.mlp.dense_4h_to_h.bias.to(torch.cuda.current_device()),\n                params_dtype=torch.half,\n                device=layer.mlp.dense_4h_to_h.weight.device,\n            )\n        elif backend == \"megatron\":\n            layer.attention.query = QuantizedColumnParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.query.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.query.bias.to(torch.cuda.current_device()),\n                input_size=layer.attention.query.input_size,\n                output_size=layer.attention.query.output_size,\n                gather_output=False,\n                skip_init=True,\n                params_dtype=torch.half,\n                device=layer.attention.query.weight.device,\n            )\n            layer.attention.value = QuantizedColumnParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.value.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.value.bias.to(torch.cuda.current_device()),\n                input_size=layer.attention.value.input_size,\n                output_size=layer.attention.value.output_size,\n                gather_output=False,\n                skip_init=True,\n                params_dtype=torch.half,\n                device=layer.attention.value.weight.device,\n            )\n            layer.attention.key = QuantizedColumnParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.key.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.key.bias.to(torch.cuda.current_device()),\n                input_size=layer.attention.key.input_size,\n                output_size=layer.attention.key.output_size,\n                gather_output=False,\n                skip_init=True,\n                params_dtype=torch.half,\n                device=layer.attention.key.weight.device,\n            )\n            layer.attention.dense = QuantizedRowParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.attention.dense.weight.to(torch.cuda.current_device()),\n                bias=layer.attention.dense.bias.to(torch.cuda.current_device()),\n                input_size=layer.attention.dense.input_size,\n                output_size=layer.attention.dense.output_size,\n                input_is_parallel=False,\n                skip_init=True,\n                skip_bias_add=True,\n                params_dtype=torch.half,\n                device=layer.attention.dense.weight.device,\n            )\n            layer.mlp.dense_h_to_4h = QuantizedColumnParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.mlp.dense_h_to_4h.weight.to(torch.cuda.current_device()),\n                bias=layer.mlp.dense_h_to_4h.bias.to(torch.cuda.current_device()),\n                input_size=layer.mlp.dense_h_to_4h.input_size,\n                output_size=layer.mlp.dense_h_to_4h.output_size,\n                gather_output=False,\n                skip_init=True,\n                params_dtype=torch.half,\n                device=layer.mlp.dense_h_to_4h.weight.device,\n            )\n            layer.mlp.dense_4h_to_h = QuantizedRowParallelLinear(\n                weight_bit_width=weight_bit_width,\n                weight=layer.mlp.dense_4h_to_h.weight.to(torch.cuda.current_device()),\n                bias=layer.mlp.dense_4h_to_h.bias.to(torch.cuda.current_device()),\n                input_size=layer.mlp.dense_4h_to_h.input_size,\n                output_size=layer.mlp.dense_4h_to_h.output_size,\n                input_is_parallel=False,\n                skip_init=True,\n                params_dtype=torch.half,\n                device=layer.mlp.dense_4h_to_h.weight.device,\n            )\n            \n    return model"
  },
  {
    "path": "codegeex/quantization/quantize_oneflow.py",
    "content": "import numpy  as np\nimport oneflow as torch\nfrom oneflow.nn.parameter import Parameter\n\ndef _pack_int8_to_int4(x):\n    np_x = x.numpy()\n    l = np_x[..., 0::2]\n    r = np_x[..., 1::2]\n    l = np.left_shift(l, 4)\n    if x.dtype is np.int8:\n        even = np.bitwise_and(r, np.int8(0xF))\n    packed = torch.tensor(np.bitwise_or(l, r), device=x.device)\n    return packed\n\n\ndef _quantize(num_bits, symmetric, x, group_dim, group_size, quant_type):\n    x_float = x.float()\n    x_reshaped = x_float.reshape(\n        x.shape[:group_dim]\n        + (x.shape[group_dim] // group_size, group_size)\n        + x.shape[group_dim + 1 :]\n    )\n    if symmetric:\n        signed_max = float(2 ** (num_bits - 1)) - 1\n        offset = signed_max if quant_type is torch.uint8 else 0.0\n        scale_float = (\n            x_reshaped.abs().max(dim=group_dim + 1, keepdim=True).values / signed_max\n        )\n        quantized = (\n            torch.round(x_reshaped / scale_float + offset)\n            .reshape(x.shape)\n            .to(quant_type)\n        )\n        if num_bits == 4:\n            quantized = _pack_int8_to_int4(quantized)\n        return (quantized, scale_float.squeeze(group_dim + 1).to(x.dtype), None)\n    else:\n        unsigned_max = float(2 ** num_bits) - 1\n        mn = x_reshaped.min(dim=group_dim + 1, keepdim=True).values\n        mx = x_reshaped.max(dim=group_dim + 1, keepdim=True).values\n        scale_float = (mx - mn) / unsigned_max\n        quantized = (\n            torch.round((x_reshaped - mn) / scale_float).reshape(x.shape).to(torch.uint8)\n        )\n        if num_bits == 4:\n            quantized = _pack_int8_to_int4(quantized)\n        return (\n            quantized,\n            scale_float.squeeze(group_dim + 1).to(x.dtype),\n            mn.squeeze(group_dim + 1).to(x.dtype),\n        )\n\nclass QuantizedLinear(torch.nn.Module):\n    def __init__(\n        self, \n        in_features: int,\n        out_features: int,\n        weight_bit_width: int, \n        weight: torch.Tensor = None, \n        bias: torch.Tensor = None, \n        *args, \n        **kwargs\n    ):\n        super(QuantizedLinear, self).__init__()\n        \n        self.in_features = in_features\n        self.out_features = out_features\n        self.weight_bit_width = weight_bit_width\n        self.symmetric = True\n        self.group_dim = 1\n        self.group_size = in_features\n\n        self.weight, self.weight_scale, self.weight_zero = _quantize(\n            self.weight_bit_width, self.symmetric, weight, self.group_dim, self.group_size, torch.int8\n        )\n        if bias is None:\n            self.register_parameter('bias', None)\n        else:\n            self.bias = bias\n            self.bias = self.bias.to(kwargs[\"device\"])\n        \n        self.weight = Parameter(self.weight.to(kwargs[\"device\"]), requires_grad=False)\n        self.weight_scale = Parameter(self.weight_scale.to(kwargs[\"device\"]), requires_grad=False)\n        if self.bias is not None:\n            self.bias = Parameter(self.bias.to(kwargs[\"device\"]), requires_grad=False)\n        if self.weight_zero is not None:\n            self.weight_zero = Parameter(self.weight_zero.to(kwargs[\"device\"]), requires_grad=False)\n\n    def forward(self, input_):\n        # Matrix multiply.\n        output = torch._C.fused_linear_with_groupwise_quantized_weight(input_, \n                                                                        w=self.weight, \n                                                                        w_scale=self.weight_scale, \n                                                                        w_zero=self.weight_zero, \n                                                                        b=self.bias if self.bias is not None else None, \n                                                                        num_bits=self.weight_bit_width,\n                                                                        symmetric=self.symmetric,\n                                                                        group_dim=self.group_dim,\n                                                                        group_size=self.group_size)\n        \n        return output\n\ndef quantize_oneflow(model, weight_bit_width):\n    \"\"\"Replace fp16 linear with quantized linear\"\"\"\n    \n    for i in range(len(model.language_model.transformer.layers) + 1):\n        if i == len(model.language_model.transformer.layers):\n            layer = model.language_model.transformer.topQueryLayer\n        else:\n            layer = model.language_model.transformer.layers[i]\n        \n        layer.attention.query = QuantizedLinear(\n            in_features=layer.attention.query.in_features,\n            out_features=layer.attention.query.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.attention.query.weight.to(torch.cuda.current_device()),\n            bias=layer.attention.query.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.attention.query.weight.device,\n        )\n        layer.attention.value = QuantizedLinear(\n            in_features=layer.attention.value.in_features,\n            out_features=layer.attention.value.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.attention.value.weight.to(torch.cuda.current_device()),\n            bias=layer.attention.value.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.attention.value.weight.device,\n        )\n        layer.attention.key = QuantizedLinear(\n            in_features=layer.attention.key.in_features,\n            out_features=layer.attention.key.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.attention.key.weight.to(torch.cuda.current_device()),\n            bias=layer.attention.key.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.attention.key.weight.device,\n        )\n        layer.attention.dense = QuantizedLinear(\n            in_features=layer.attention.dense.in_features,\n            out_features=layer.attention.dense.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.attention.dense.weight.to(torch.cuda.current_device()),\n            bias=layer.attention.dense.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.attention.dense.weight.device,\n        )\n        layer.mlp.dense_h_to_4h = QuantizedLinear(\n            in_features=layer.mlp.dense_h_to_4h.in_features,\n            out_features=layer.mlp.dense_h_to_4h.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.mlp.dense_h_to_4h.weight.to(torch.cuda.current_device()),\n            bias=layer.mlp.dense_h_to_4h.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.mlp.dense_h_to_4h.weight.device,\n        )\n        layer.mlp.dense_4h_to_h = QuantizedLinear(\n            in_features=layer.mlp.dense_4h_to_h.in_features,\n            out_features=layer.mlp.dense_4h_to_h.out_features,\n            weight_bit_width=weight_bit_width,\n            weight=layer.mlp.dense_4h_to_h.weight.to(torch.cuda.current_device()),\n            bias=layer.mlp.dense_4h_to_h.bias.to(torch.cuda.current_device()),\n            params_dtype=torch.half,\n            device=layer.mlp.dense_4h_to_h.weight.device,\n        )\n        \n        \n    return model"
  },
  {
    "path": "codegeex/tokenizer/__init__.py",
    "content": "from .tokenizer import CodeGeeXTokenizer"
  },
  {
    "path": "codegeex/tokenizer/added_tokens.json",
    "content": "{\"<|extratoken_14|>\": 50270, \"<|extratoken_121|>\": 50377, \"<|extratoken_3|>\": 50259, \"<|extratoken_25|>\": 50281, \"<|extratoken_101|>\": 50357, \"<|extratoken_138|>\": 50394, \"<|extratoken_10|>\": 50266, \"<|extratoken_21|>\": 50277, \"<|extratoken_32|>\": 50288, \"<|extratoken_46|>\": 50302, \"<|extratoken_22|>\": 50278, \"<|extratoken_40|>\": 50296, \"<|extratoken_96|>\": 50352, \"<|extratoken_92|>\": 50348, \"<|extratoken_95|>\": 50351, \"<|extratoken_141|>\": 50397, \"<|extratoken_78|>\": 50334, \"<|extratoken_86|>\": 50342, \"<|extratoken_56|>\": 50312, \"<|extratoken_124|>\": 50380, \"<|extratoken_127|>\": 50383, \"<|extratoken_122|>\": 50378, \"<|extratoken_123|>\": 50379, \"<|extratoken_111|>\": 50367, \"<|extratoken_93|>\": 50349, \"<|extratoken_130|>\": 50386, \"<|extratoken_113|>\": 50369, \"<|extratoken_50|>\": 50306, \"<|extratoken_97|>\": 50353, \"<|extratoken_1|>\": 50257, \"<|extratoken_55|>\": 50311, \"<|extratoken_34|>\": 50290, \"<|extratoken_143|>\": 50399, \"<|extratoken_62|>\": 50318, \"<|extratoken_74|>\": 50330, \"<|extratoken_136|>\": 50392, \"<|extratoken_117|>\": 50373, \"<|extratoken_38|>\": 50294, \"<|extratoken_120|>\": 50376, \"<|extratoken_39|>\": 50295, \"<|extratoken_65|>\": 50321, \"<|extratoken_29|>\": 50285, \"<|extratoken_104|>\": 50360, \"<|extratoken_13|>\": 50269, \"<|extratoken_5|>\": 50261, \"<|extratoken_107|>\": 50363, \"<|extratoken_19|>\": 50275, \"<|extratoken_84|>\": 50340, \"<|extratoken_77|>\": 50333, \"<|extratoken_135|>\": 50391, \"<|extratoken_24|>\": 50280, \"<|extratoken_134|>\": 50390, \"<|extratoken_15|>\": 50271, \"<|extratoken_67|>\": 50323, \"<|extratoken_89|>\": 50345, \"<|extratoken_2|>\": 50258, \"<|extratoken_73|>\": 50329, \"<|extratoken_129|>\": 50385, \"<|extratoken_126|>\": 50382, \"<|extratoken_30|>\": 50286, \"<|extratoken_41|>\": 50297, \"<|extratoken_28|>\": 50284, \"<|extratoken_114|>\": 50370, \"<|extratoken_128|>\": 50384, \"<|extratoken_118|>\": 50374, \"<|extratoken_131|>\": 50387, \"<|extratoken_68|>\": 50324, \"<|extratoken_125|>\": 50381, \"<|extratoken_103|>\": 50359, \"<|extratoken_8|>\": 50264, \"<|extratoken_64|>\": 50320, \"<|extratoken_52|>\": 50308, \"<|extratoken_45|>\": 50301, \"<|extratoken_43|>\": 50299, \"<|extratoken_18|>\": 50274, \"<|extratoken_139|>\": 50395, \"<|extratoken_85|>\": 50341, \"<|extratoken_88|>\": 50344, \"<|extratoken_63|>\": 50319, \"<|extratoken_4|>\": 50260, \"<|extratoken_48|>\": 50304, \"<|extratoken_112|>\": 50368, \"<|extratoken_17|>\": 50273, \"<|extratoken_49|>\": 50305, \"<|extratoken_108|>\": 50364, \"<|extratoken_110|>\": 50366, \"<|extratoken_42|>\": 50298, \"<|extratoken_70|>\": 50326, \"<|extratoken_6|>\": 50262, \"<|extratoken_35|>\": 50291, \"<|extratoken_23|>\": 50279, \"<|extratoken_66|>\": 50322, \"<|extratoken_60|>\": 50316, \"<|extratoken_71|>\": 50327, \"<|extratoken_51|>\": 50307, \"<|extratoken_133|>\": 50389, \"<|extratoken_20|>\": 50276, \"<|extratoken_76|>\": 50332, \"<|extratoken_81|>\": 50337, \"<|extratoken_142|>\": 50398, \"<|extratoken_116|>\": 50372, \"<|extratoken_57|>\": 50313, \"<|extratoken_75|>\": 50331, \"<|extratoken_37|>\": 50293, \"<|extratoken_33|>\": 50289, \"<|extratoken_16|>\": 50272, \"<|extratoken_61|>\": 50317, \"<|extratoken_7|>\": 50263, \"<|extratoken_12|>\": 50268, \"<|extratoken_36|>\": 50292, \"<|extratoken_80|>\": 50336, \"<|extratoken_98|>\": 50354, \"<|extratoken_105|>\": 50361, \"<|extratoken_91|>\": 50347, \"<|extratoken_53|>\": 50309, \"<|extratoken_137|>\": 50393, \"<|extratoken_9|>\": 50265, \"<|extratoken_79|>\": 50335, \"<|extratoken_83|>\": 50339, \"<|extratoken_109|>\": 50365, \"<|extratoken_99|>\": 50355, \"<|extratoken_140|>\": 50396, \"<|extratoken_72|>\": 50328, \"<|extratoken_11|>\": 50267, \"<|extratoken_94|>\": 50350, \"<|extratoken_26|>\": 50282, \"<|extratoken_59|>\": 50315, \"<|extratoken_106|>\": 50362, \"<|extratoken_115|>\": 50371, \"<|extratoken_58|>\": 50314, \"<|extratoken_90|>\": 50346, \"<|extratoken_31|>\": 50287, \"<|extratoken_102|>\": 50358, \"<|extratoken_47|>\": 50303, \"<|extratoken_100|>\": 50356, \"<|extratoken_82|>\": 50338, \"<|extratoken_44|>\": 50300, \"<|extratoken_69|>\": 50325, \"<|extratoken_54|>\": 50310, \"<|extratoken_132|>\": 50388, \"<|extratoken_27|>\": 50283, \"<|extratoken_87|>\": 50343, \"<|extratoken_119|>\": 50375}\n"
  },
  {
    "path": "codegeex/tokenizer/merges.txt",
    "content": "#version: 0.2\nĠ t\nĠ a\nh e\ni n\nr e\no n\nĠt he\ne r\nĠ s\na t\nĠ w\nĠ o\ne n\nĠ c\ni t\ni s\na n\no r\ne s\nĠ b\ne d\nĠ f\nin g\nĠ p\no u\nĠa n\na l\na r\nĠt o\nĠ m\nĠo f\nĠ in\nĠ d\nĠ h\nĠan d\ni c\na s\nl e\nĠt h\ni on\no m\nl l\nen t\nĠ n\nĠ l\ns t\nĠ re\nv e\nĠ e\nr o\nl y\nĠb e\nĠ g\nĠ T\nc t\nĠ S\ni d\no t\nĠ I\nu t\ne t\nĠ A\nĠ is\nĠ on\ni m\na m\no w\na y\na d\ns e\nĠth at\nĠ C\ni g\nĠf or\na c\nĠ y\nv er\nu r\nĠ u\nl d\nĠs t\nĠ M\n' s\nĠ he\nĠ it\nat ion\nit h\ni r\nc e\nĠy ou\ni l\nĠ B\nĠw h\no l\nĠ P\nĠw ith\nĠ 1\nt er\nc h\nĠa s\nĠw e\nĠ (\nn d\ni ll\nĠ D\ni f\nĠ 2\na g\ner s\nk e\nĠ \"\nĠ H\ne m\nĠc on\nĠ W\nĠ R\nhe r\nĠw as\nĠ r\no d\nĠ F\nu l\nat e\nĠa t\nr i\np p\no re\nĠT he\nĠs e\nu s\nĠp ro\nĠh a\nu m\nĠa re\nĠd e\na in\nan d\nĠo r\nig h\nes t\nis t\na b\nr om\nĠ N\nt h\nĠc om\nĠ G\nu n\no p\n0 0\nĠ L\nĠn ot\nes s\nĠe x\nĠ v\nre s\nĠ E\ne w\nit y\nan t\nĠb y\ne l\no s\nor t\no c\nq u\nĠf rom\nĠha ve\nĠs u\ni ve\nou ld\nĠs h\nĠth is\nn t\nr a\np e\nigh t\nar t\nm ent\nĠa l\nu st\nen d\n- -\nal l\nĠ O\nac k\nĠc h\nĠ le\ni es\nre d\nar d\nâ Ģ\nou t\nĠ J\nĠa b\ne ar\ni v\nal ly\nou r\no st\ng h\np t\nĠp l\nas t\nĠc an\na k\nom e\nu d\nT he\nĠh is\nĠd o\nĠg o\nĠh as\ng e\n' t\nĠ U\nr ou\nĠs a\nĠ j\nĠb ut\nĠw or\nĠa ll\ne ct\nĠ k\nam e\nĠw ill\no k\nĠw he\nĠthe y\nid e\n0 1\nf f\nic h\np l\nt her\nĠt r\n. .\nĠin t\ni e\nu re\nag e\nĠn e\ni al\na p\nin e\nic e\nĠm e\nĠo ut\nan s\non e\non g\nion s\nĠwh o\nĠ K\nĠu p\nĠthe ir\nĠa d\nĠ 3\nĠu s\nat ed\nou s\nĠm ore\nu e\no g\nĠS t\nin d\ni ke\nĠs o\nim e\np er\n. \"\nb er\ni z\na ct\nĠon e\nĠsa id\nĠ -\na re\nĠyou r\nc c\nĠT h\nĠc l\ne p\na ke\nab le\ni p\nĠcon t\nĠwh ich\ni a\nĠ im\nĠab out\nĠwe re\nver y\nu b\nĠh ad\nĠ en\nĠcom p\n, \"\nĠI n\nĠu n\nĠa g\ni re\nac e\na u\nar y\nĠw ould\nas s\nr y\nĠ âĢ\nc l\no ok\ne re\ns o\nĠ V\nig n\ni b\nĠof f\nĠt e\nv en\nĠ Y\ni le\no se\nit e\nor m\nĠ2 01\nĠre s\nĠm an\nĠp er\nĠo ther\nor d\nul t\nĠbe en\nĠl ike\nas e\nan ce\nk s\nay s\now n\nen ce\nĠd is\nct ion\nĠan y\nĠa pp\nĠs p\nin t\nres s\nation s\na il\nĠ 4\nic al\nĠthe m\nĠhe r\nou nt\nĠC h\nĠa r\nĠ if\nĠthe re\nĠp e\nĠy ear\na v\nĠm y\nĠs ome\nĠwhe n\nou gh\nac h\nĠth an\nr u\non d\nic k\nĠo ver\nve l\nĠ qu\nĊ Ċ\nĠs c\nre at\nre e\nĠI t\nou nd\np ort\nĠal so\nĠp art\nf ter\nĠk n\nĠbe c\nĠt ime\nen s\nĠ 5\nop le\nĠwh at\nĠn o\nd u\nm er\nan g\nĠn ew\n-- --\nĠg et\nor y\nit ion\ning s\nĠj ust\nĠint o\nĠ 0\nent s\no ve\nt e\nĠpe ople\nĠp re\nĠit s\nĠre c\nĠt w\ni an\nir st\nar k\nor s\nĠwor k\nad e\no b\nĠs he\nĠo ur\nw n\nin k\nl ic\nĠ1 9\nĠH e\nis h\nnd er\nau se\nĠh im\non s\nĠ [\nĠ ro\nf orm\ni ld\nat es\nver s\nĠon ly\no ll\nĠs pe\nc k\ne ll\nam p\nĠa cc\nĠb l\ni ous\nur n\nf t\no od\nĠh ow\nhe d\nĠ '\nĠa fter\na w\nĠat t\no v\nn e\nĠpl ay\ner v\nic t\nĠc ould\nit t\nĠa m\nĠf irst\nĠ 6\nĠa ct\nĠ $\ne c\nh ing\nu al\nu ll\nĠcom m\no y\no ld\nc es\nat er\nĠf e\nĠbe t\nw e\nif f\nĠtw o\noc k\nĠb ack\n) .\nid ent\nĠu nder\nrou gh\nse l\nx t\nĠm ay\nrou nd\nĠp o\np h\nis s\nĠd es\nĠm ost\nĠd id\nĠad d\nj ect\nĠin c\nf ore\nĠp ol\non t\nĠag ain\ncl ud\nter n\nĠkn ow\nĠne ed\nĠcon s\nĠc o\nĠ .\nĠw ant\nĠse e\nĠ 7\nn ing\ni ew\nĠTh is\nc ed\nĠe ven\nĠin d\nt y\nĠW e\nat h\nĠthe se\nĠp r\nĠu se\nĠbec ause\nĠf l\nn g\nĠn ow\nĠâĢ ĵ\nc om\nis e\nĠm ake\nĠthe n\now er\nĠe very\nĠU n\nĠse c\nos s\nu ch\nĠe m\nĠ =\nĠR e\ni ed\nr it\nĠin v\nle ct\nĠsu pp\nat ing\nĠl ook\nm an\npe ct\nĠ 8\nro w\nĠb u\nĠwhe re\nif ic\nĠyear s\ni ly\nĠd iff\nĠsh ould\nĠre m\nT h\nI n\nĠe v\nd ay\n' re\nri b\nĠre l\ns s\nĠde f\nĠr ight\nĠs y\n) ,\nl es\n00 0\nhe n\nĠth rough\nĠT r\n_ _\nĠw ay\nĠd on\nĠ ,\nĠ1 0\nas ed\nĠas s\nub lic\nĠre g\nĠA nd\ni x\nĠ very\nĠin clud\not her\nĠim p\not h\nĠsu b\nĠâĢ Ķ\nĠbe ing\nar g\nĠW h\n= =\nib le\nĠdo es\nan ge\nr am\nĠ 9\ner t\np s\nit ed\nation al\nĠb r\nĠd own\nĠman y\nak ing\nĠc all\nur ing\nit ies\nĠp h\nic s\nal s\nĠde c\nat ive\nen er\nĠbe fore\nil ity\nĠwe ll\nĠm uch\ners on\nĠth ose\nĠsu ch\nĠ ke\nĠ end\nĠB ut\nas on\nt ing\nĠl ong\ne f\nĠth ink\ny s\nĠbe l\nĠs m\nit s\na x\nĠo wn\nĠpro v\nĠs et\nif e\nment s\nb le\nw ard\nĠsh ow\nĠp res\nm s\nom et\nĠo b\nĠs ay\nĠS h\nt s\nf ul\nĠe ff\nĠg u\nĠin st\nu nd\nre n\nc ess\nĠ ent\nĠY ou\nĠgo od\nĠst art\nin ce\nĠm ade\nt t\nst em\nol og\nu p\nĠ |\num p\nĠhe l\nver n\nul ar\nu ally\nĠa c\nĠm on\nĠl ast\nĠ2 00\n1 0\nĠst ud\nu res\nĠA r\nsel f\nar s\nmer ic\nu es\nc y\nĠm in\noll ow\nĠc ol\ni o\nĠm od\nĠc ount\nĠC om\nhe s\nĠf in\na ir\ni er\nâĢ Ķ\nre ad\nan k\nat ch\ne ver\nĠst r\nĠpo int\nor k\nĠN ew\nĠs ur\no ol\nal k\nem ent\nĠus ed\nra ct\nwe en\nĠs ame\nou n\nĠA l\nc i\nĠdiff ere\nĠwh ile\n---- ----\nĠg ame\nce pt\nĠs im\n.. .\nĠin ter\ne k\nĠre port\nĠpro du\nĠst ill\nl ed\na h\nĠhe re\nĠwor ld\nĠth ough\nĠn um\nar ch\nim es\nal e\nĠS e\nĠI f\n/ /\nĠL e\nĠre t\nĠre f\nĠtr ans\nn er\nut ion\nter s\nĠt ake\nĠC l\nĠcon f\nw ay\na ve\nĠgo ing\nĠs l\nu g\nĠA meric\nĠspe c\nĠh and\nĠbet ween\nist s\nĠD e\no ot\nI t\nĠe ar\nĠagain st\nĠh igh\ng an\na z\nat her\nĠex p\nĠo p\nĠin s\nĠg r\nĠhel p\nĠre qu\net s\nin s\nĠP ro\nis m\nĠf ound\nl and\nat a\nus s\nam es\nĠp erson\nĠg reat\np r\nĠs ign\nĠA n\n' ve\nĠs omet\nĠs er\nh ip\nĠr un\nĠ :\nĠt er\nire ct\nĠf ollow\nĠd et\nic es\nĠf ind\n1 2\nĠm em\nĠc r\ne red\ne x\nĠex t\nut h\nen se\nc o\nĠte am\nv ing\nou se\nas h\nat t\nv ed\nĠsy stem\nĠA s\nd er\niv es\nm in\nĠle ad\nĠB l\nc ent\nĠa round\nĠgo vern\nĠc ur\nvel op\nan y\nĠc our\nal th\nag es\niz e\nĠc ar\nod e\nĠl aw\nĠre ad\n' m\nc on\nĠre al\nĠsupp ort\nĠ1 2\n.. ..\nĠre ally\nn ess\nĠf act\nĠd ay\nĠb oth\ny ing\nĠs erv\nĠF or\nĠth ree\nĠw om\nĠm ed\nod y\nĠThe y\n5 0\nĠex per\nt on\nĠe ach\nak es\nĠc he\nĠc re\nin es\nĠre p\n1 9\ng g\nill ion\nĠg rou\nut e\ni k\nW e\ng et\nE R\nĠm et\nĠs ays\no x\nĠd uring\ner n\niz ed\na red\nĠf am\nic ally\nĠha pp\nĠI s\nĠch ar\nm ed\nv ent\nĠg ener\ni ent\np le\ni et\nre nt\n1 1\nv es\npt ion\nĠ2 0\nform ation\nĠc or\nĠoff ic\nie ld\nĠto o\nis ion\nĠin f\nĠ Z\nt he\no ad\nĠp ublic\nĠpro g\nr ic\n* *\nĠw ar\nĠp ower\nv iew\nĠf ew\nĠl oc\nĠdiffere nt\nĠst ate\nĠhe ad\n' ll\nĠp oss\nĠst at\nre t\nant s\nĠv al\nĠis s\nĠc le\ni vers\nan c\nĠex pl\nĠan other\nĠ Q\nĠa v\nth ing\nn ce\nW h\nĠch ild\nĠs ince\ni red\nl ess\nĠl ife\nĠde velop\nitt le\nĠde p\nĠp ass\nã ĥ\nĠt urn\nor n\nTh is\nb ers\nro ss\nĠA d\nĠf r\nĠres p\nĠsec ond\no h\nĠ /\nĠdis c\nĠ &\nĠsomet hing\nĠcomp le\nĠ ed\nĠf il\nĠmon th\na j\nu c\nĠgovern ment\nĠwith out\nĠle g\nĠd ist\nĠp ut\nĠqu est\nan n\nĠpro t\n2 0\nĠne ver\ni ence\nĠle vel\nĠar t\nĠth ings\nĠm ight\nĠeff ect\nĠcont ro\nĠc ent\nĠ1 8\nĠall ow\nĠbel ie\nch ool\not t\nĠinc re\nĠfe el\nĠres ult\nĠl ot\nĠf un\not e\nĠt y\nere st\nĠcont in\nĠus ing\nĠb ig\n2 01\nĠas k\nĠb est\nĠ )\nI N\nĠo pp\n3 0\nĠnum ber\nin ess\nS t\nle ase\nĠc a\nĠm ust\nĠd irect\nĠg l\nĠ <\nĠop en\nĠp ost\nĠcom e\nĠse em\nord ing\nĠwe ek\nate ly\nit al\nĠe l\nri end\nĠf ar\nĠt ra\nin al\nĠp ri\nĠU S\nĠpl ace\nĠfor m\nĠto ld\n\" :\nain s\nat ure\nĠTr ump\nĠst and\nĠ #\nid er\nĠF r\nĠne xt\nĠs oc\nĠp ur\nĠle t\nĠl ittle\nĠh um\nĠ i\nr on\n1 5\nĠ1 5\nĠcomm un\nĠm ark\nĠThe re\nĠw r\nĠTh at\nĠin formation\nw ays\nĠb us\na pp\nĠinv est\nm e\nĠh ard\nain ed\ne ad\nĠim port\nĠapp ro\nĠt est\nĠt ri\nĠre st\nos ed\nĠf ull\nĠc are\nĠS p\nĠc ase\nO N\nĠs k\nĠl ess\nĠ +\nĠpart ic\nĠP l\nab ly\nu ck\nis hed\nch n\nb e\nĠl ist\nat or\nĠto p\nĠad v\nĠB e\nru ct\nĠd em\nr ation\nl ing\ng y\nre en\ng er\nĠh ome\nĠle ft\nĠbet ter\nĠd ata\nĠ1 1\nĠatt ack\nĠpro ble\nl ine\nard s\nĠbe h\nr al\nĠH ow\nĠS he\nar ge\nĠ --\n: //\nĠb ro\nĠP h\nat s\nĠbu ild\nw w\nid ed\na im\nas es\nen cy\nĠm ain\nin ed\nĠinclud ing\nĠ {\nĠg ot\nĠint erest\nĠke ep\nĠ X\nĠe as\nain ing\nĠcl ass\nâĢ ¦\nĠN o\nĠv ar\nĠsm all\namp le\nA T\nĠ ide\nĠS o\nĠre ce\nĠpol it\nĠm ov\nĠpl an\nĠper cent\niv ing\nĠc amp\nĠp ay\n1 4\ns c\nis ed\nĠu nt\none y\npl oy\n== ==\nĠdid n\nĠI nd\nel s\nert ain\nĠp os\n__ __\ni ver\nĠpro cess\nĠprog ram\nif ied\nĠR ep\n1 6\nu ro\nolog y\nat ter\nin a\nĠn ame\nĠA ll\nĠf our\nĠret urn\nv ious\nb s\nĠcall ed\nĠm ove\nĠS c\nir d\nĠgrou p\nĠb re\nĠm en\nĠc ap\nt en\ne e\nĠd ri\nle g\nhe re\nuth or\nĠp at\nĠcur rent\nid es\nĠp op\nt o\nent ion\nĠal ways\nĠm il\nĠwom en\nĠ1 6\nĠo ld\niv en\nra ph\nĠO r\nr or\nent ly\nĠn ear\nĠE x\nre am\ns h\nĠ1 4\nĠf ree\niss ion\nst and\nĠC on\nal ity\nus ed\n1 3\nĠdes ign\nĠch ange\nĠch ang\nĠb o\nĠv is\nem ber\nĠb ook\nread y\nĠk ill\n2 5\npp ed\nĠa way\nĠab le\nĠcount ry\nĠcon st\nar n\nĠor der\nA R\ni or\ni um\nor th\n1 8\nail able\nĠs w\nĠm illion\nĠ1 3\nat ic\nt ed\nĠG o\nĠo per\nen g\nĠth ing\naj or\ncon om\nĠCom m\nĠwh y\nu red\nur al\nĠs chool\nb y\nĠM ar\nĠa ff\nĠd ays\nĠan n\nus h\nan e\nI f\ne g\nĠpro f\nĠhe alth\nou th\nB ut\nion al\n. ,\nĠs ol\nĠal ready\nĠ3 0\nĠchar act\nH e\nĠf riend\nE S\ni ans\nic le\n' d\nĠO n\nĠle ast\nĠp rom\nĠd r\nĠh ist\nit her\nĠ est\ni qu\n1 7\ns on\nĠte ll\nĠt alk\noh n\no int\nle ction\nA N\nĠunt il\nau gh\nĠl ater\nĠ ve\nĠv iew\nend ing\niv ed\nĠwor d\nw are\nĠc ost\nĠen ough\nĠg ive\nĠUn ited\nĠte chn\nare nt\nO R\nĠp ar\nĠD r\nĠ201 6\nr ist\ner ing\nĠ Â\nĠl arge\ns ide\nac y\ncc ess\nĠw in\nĠimport ant\nĠ19 9\nĠdoes n\nĠ1 7\nĠbus iness\nĠcle ar\nĠre se\n\" ,\nur y\nĠe qu\nas ter\nal f\nĠAmeric an\nn ect\nĠex pect\nivers ity\nĠo cc\nĠF l\nĠk ind\nĠme an\nĠp ast\nĠde v\nĠb as\nle t\nra ft\nĠor gan\nĠde l\nĠper form\nĠst ory\nĠse ason\nĠC ol\nĠcl aim\nĠc ame\nĠwith in\nĠl ine\nĠpro ject\nĠA t\nĠcontro l\nend ed\nĠS y\nĠa ir\niz ation\nĠ *\nle y\nĠm oney\nid d\nY ou\nf or\nĠfam ily\nĠm aking\nĠb it\nĠpol ice\nĠhapp en\nĠ vers\non y\nu ff\nĠW hen\nĠs it\nide o\nl f\nis on\nĠsu re\ng in\nĠapp ear\nĠl ight\nĠ es\no f\nĠw ater\nĠt imes\nn ot\nĠg row\nĠcomp any\nĠT e\now s\nĠm ar\nour ce\ni ol\nar m\nb r\nĠex ample\nĠcon c\nĠf ore\nĠT o\np ro\nE N\nri es\nĠ2 5\nĠC an\nne y\nĠact ually\nĠe ver\nur ity\nak en\nap s\nĠt ax\nĠm ajor\nam a\nĠof ten\ner al\nĠhum an\nĠj ob\nis ter\nĠav ailable\noc r\nen n\na id\niv id\nĠrec ord\n? \"\nĠs ing\nĠA m\nid ence\nĠnew s\nst er\nĠe conom\nĠfollow ing\nĠB r\nis ing\nĠh our\nm ost\num ent\nĠse x\nĠdes c\nĠbec ome\nĠE d\nĠto ok\nĠha ving\nĠprodu ct\na ult\nA s\nar ing\nĠme ans\nĠh op\nun e\nĠch o\nĠc ertain\nĠn on\nĠde al\n2 4\nle ment\noc i\nen e\nĠs ide\nĠP r\nĠM ay\nĠre ason\nu ed\nc hed\nul ation\nĠe lect\nĠoffic ial\nĠposs ible\nĠh old\nand s\not s\nĠc ity\nor ies\nĠse ver\nĠchild ren\nĠon ce\nĠact iv\nl er\nĠn ight\nit ions\nĠJ ohn\na pe\npl ay\nĠd one\nĠl im\nĠwork ing\nĠP res\nor ld\ne b\nĠC o\nĠb ody\nail s\nut es\nĠM r\nĠwhe ther\nĠa uthor\nro p\nĠpro per\nĠse en\n) ;\nĠf ac\nĠS u\nĠcon d\nit ing\nĠcour se\nĠ }\n-------- --------\na ign\nĠev ent\nĠen g\nĠp ot\nĠin tern\ni am\nĠsh ort\nem pt\nã Ĥ\nĠG od\nil ar\n8 0\nĠor ig\nI S\nour n\nab ility\nit ive\nĠd am\nĠ1 00\nĠp ress\nĠdo ing\nĠprot ect\nr ing\nĠthough t\nĠquest ion\nre w\nĠW ar\nĠsever al\nĠSt ate\nĠg iven\nĠf und\nĠT w\nĠw ent\nan ces\nw ork\np or\nm y\n4 0\nĠar g\nart ment\nust om\nĠpol ic\nĠme et\nĠc reat\n2 2\nĠSt ates\nĠg ames\nra w\nut ure\nĠunder stand\nur s\nĠO b\nl ish\ns y\nĠm akes\nĠw on\nag on\nĠh tt\nĠl ove\nent ial\nĠcomple te\np ar\nĠI m\nA L\nĠacc ount\nÂ ł\nore d\nver t\nĠ ident\nĠ201 5\nĠother s\nĠM in\ni ber\nver age\nThe re\nition al\nd d\nĠpro b\nĠyou ng\nĠal ong\nĠacc ording\nĠy et\nĠmem bers\nĠWh at\no id\nĠM an\nA nd\nĠam ong\na i\nĠem ploy\nĠR es\nĠ >\nĠinv ol\nĠl ow\na f\nĠC ar\nĠh ig\nĠO ne\nĠS ec\nin ation\nĠlike ly\nĠan t\nag ed\nĠR uss\nĠb en\nĠre le\nF or\nb ack\nĠN ot\nĠpres ident\nb all\nĠacc ess\nivid ual\nĠD em\nĠE uro\n6 0\nĠkn own\nir l\nĠG r\nĠear ly\nu se\niet y\nâĢ ĵ\nĠf ight\nĠs ent\nĠto day\nĠmark et\n\" .\nĠb ased\nĠstr ong\nur ther\nĠde b\nm ber\nĠproble m\nĠde ath\nĠsoc ial\nim ate\nA S\nort un\nĠcamp aign\ner y\nC h\nĠe y\ni ally\nĠm us\nw h\np os\nĠ er\nĠsa f\nĠmonth s\nir on\nĠv iol\nĠf ive\nĠst re\nĠplay ers\nin c\nal d\ny ear\na un\nĠsu ccess\nĠpres ent\nere nce\nĠ201 4\nĠsu gg\nĠpartic ular\nĠtr y\nĠsugg est\nĠCh rist\non es\nĠpri v\n2 3\nĠc rit\nĠl and\nĠloc al\nif y\n2 9\nĠa ut\nE D\nĠG u\nĠm ult\nĠpolit ical\nĠask ed\nĠfor mer\nit ter\nri pt\nĠcl ose\nĠp ract\nĠY ork\nĠget ting\nĠac ross\nĠcom b\nĠbelie ve\nĠ z\nĠto get\nĠtoget her\nĠC ent\nir c\nĠind ividual\nĠM c\n2 7\nis k\nĠE ng\nĠf ace\nĠ2 4\nĠval ue\nĠare a\ne v\nĠw rit\nĠPres ident\nĠv ot\nĠke y\nĠm om\np ut\nĠany thing\nĠexper ience\natt le\nĠm ind\na ff\nom m\nĠf uture\ng ed\nĠc ut\nĠto t\nit ch\nĠv ideo\nĠinvest ig\nĠn et\nĠM y\nr ict\ni en\n. )\nĠimp ro\nth ough\nward s\nĠcon nect\nĠM ed\nsel ves\nens ive\nm b\no ber\nat ors\nA n\nĠ5 0\nĠre du\nres ent\nĠab ove\nĠf re\nĠEuro pe\ns w\nĠam ount\nĠA pp\nĠe ither\nĠmil it\nĠan al\nĠf ail\nĠE n\nal es\nĠspec ial\nĠbl ack\nI T\nc her\nĠlook ing\nĠf ire\ny n\nĠal most\no on\nĠstud y\nĠm iss\nc hes\nro wn\nĠt re\nĠcommun ity\nĠmed ia\nĠf ood\nĠcom es\nĠUn iversity\nĠsing le\nWh at\nu ly\nĠh alf\nag ue\nh od\nĠRep ublic\nĠstart ed\nĠqu ick\not o\nb ook\nĠiss ue\nit or\nĠel se\nĠcons ider\n2 6\nro du\nĠt aken\n2 8\n9 9\nĠW ith\nĠtr ue\nĠw a\nĠtr ad\nĠag o\nĠm ess\nie f\nĠadd ed\no ke\nĠb ad\nĠf av\n3 3\nĠsim ilar\nas k\nĠD on\nĠcharact er\nort s\nĠH ouse\nĠreport ed\nĠty pe\nv al\ni od\nĠHow ever\nĠt arg\nĠent ire\npp ing\nĠhist ory\nĠl ive\nff ic\n.... ....\ned eral\nĠtr ying\nĠdisc uss\nĠH ar\nac es\nl ished\nĠse lf\nos p\nre st\nĠro om\nel t\nĠf all\nol ution\nĠe t\nĠ x\nĠis n\nĠide a\nb o\nĠs ound\nĠD ep\nĠsome one\nci ally\null y\nĠf oc\nĠob ject\nif t\nap er\nĠplay er\nĠr ather\nĠserv ice\nas hing\nĠD o\nĠP art\nru g\nm on\np ly\nĠm or\nĠnot hing\nĠprov ide\nI C\nun g\nĠpart y\nĠex ist\nĠm ag\n7 0\nĠr ul\nĠh ouse\nĠbeh ind\nĠhow ever\nĠW orld\nĠs um\nĠapp lic\nĠ ;\nĠfun ction\ng r\nĠP ol\nĠfr ont\n2 00\nĠser ies\nĠt em\nĠty p\nill s\nĠo pt\nĠpoint s\nĠbel ow\nitt ed\nĠspec ific\nĠ201 7\num b\nĠr a\nĠpre vious\nĠpre t\nre me\nĠc ustom\nĠcour t\nĠM e\nĠre pl\nĠwho le\ng o\nc er\nĠt reat\nĠA ct\nĠprob ably\nĠle arn\nend er\nĠA ss\nĠvers ion\nn ow\nĠche ck\nĠC al\nR E\nmin ist\nO n\nour ces\nĠben ef\nĠd oc\nĠdet er\nĠen c\nĠsu per\nĠadd ress\nĠv ict\nĠ201 3\nĠme as\nt r\nĠf ield\nW hen\nĠsign ific\nu ge\nĠfe at\nĠcomm on\nl oad\nĠbe gin\nĠbr ing\nĠa ction\ner man\nĠdesc rib\nĠind ust\nĠwant ed\nri ed\nm ing\nĠatt empt\n4 5\nf er\nĠd ue\nress ion\n# #\nĠsh all\nĠs ix\no o\nĠst ep\nĠp ub\nĠhim self\nĠ2 3\nĠc op\nĠd est\nĠst op\nA C\nib ility\nĠl ab\nic ult\nĠhour s\nĠcre ate\nĠf urther\nĠAmeric a\nĠC ity\nĠd ou\nhe ad\nS T\nĠN orth\nc ing\nĠn ational\nu le\nĠIn st\nĠt aking\nĠQ u\nir t\nĠre d\nĠrese arch\nv iron\nĠG e\nĠbre ak\nan a\nĠsp ace\nater ial\nĠrec ent\nĠA b\nĠgener al\nĠh it\nĠper iod\nĠevery thing\nive ly\nĠph ys\nĠsay ing\nan ks\nĠc ou\nĠc ult\nac ed\ne al\nu ation\nĠc oun\nl u\nĠinclud e\nĠpos ition\nĠA fter\nĠCan ad\nĠE m\nĠim m\nĠR ed\nĠp ick\nĠcom pl\nĠm atter\nre g\ne xt\nang u\nis c\no le\na ut\nĠcomp et\ne ed\nf ect\nĠ2 1\nĠS en\nĠThe se\nas ing\nĠcan not\nĠin it\nĠrel ations\nac hed\nĠb ar\nĠ4 0\nĠT H\nĠ201 2\nĠv ol\nĠg round\nĠsec urity\nĠup d\nil t\n3 5\nĠconc ern\nĠJ ust\nĠwh ite\nĠseem s\nĠH er\npe cially\ni ents\nĠann oun\nĠf ig\night s\nĠst ri\nl ike\nid s\nĠs us\nĠw atch\nĠ â\nĠw ind\nĠC ont\nĠit self\nĠm ass\nA l\ny le\niqu e\nĠN ational\nĠab s\nĠp ack\nĠout side\nĠan im\nĠp ain\net er\nĠman ag\ndu ct\nog n\nĠ ]\nĠSe pt\nse c\no ff\nĠJ an\nĠf oot\nad es\nĠth ird\nĠm ot\nĠev idence\nint on\nĠth reat\na pt\npl es\nc le\nĠl o\nĠde cl\nĠit em\nmed i\nĠrep resent\nom b\nam er\nĠsignific ant\nog raph\ns u\nĠc al\ni res\n00 00\nI D\nA M\nĠsim ply\nĠlong er\nĠf ile\nO T\nc he\nS o\nate g\nor g\nĠH is\nĠen er\nĠd om\nĠup on\nil i\n\": \"\nĠthem selves\nĠcom ing\nĠqu ite\nĠdiff icult\nĠB ar\nil ities\nre l\nend s\nc ial\n6 4\nĠwom an\nra p\ny r\nĠne cess\nip s\nĠte xt\nĠrequ ire\nĠmilit ary\nĠre view\nĠresp ons\n7 5\nĠsub ject\nĠinst ead\nĠiss ues\nĠg en\n\" ,\"\nĠmin utes\nĠwe ap\nr ay\nam ed\nt ime\nb l\nH ow\nĠc ode\nĠS m\nĠhig her\nĠSt e\nr is\nĠp age\nĠstud ents\nĠIn tern\nĠmet hod\nĠA ug\nĠP er\nĠA g\nĠpolic y\nĠS w\nĠex ec\nĠac cept\num e\nrib ut\nĠword s\nĠfin al\nĠchang es\nĠDem ocr\nĠfriend s\nĠres pect\nĠe p\nĠcomp an\niv il\nĠdam age\n** **\nog le\nviron ment\nĠne g\nent al\nĠa p\nĠtot al\niv al\n! \"\nl im\nĠneed s\nĠag re\nĠdevelop ment\nĠa ge\nip le\n2 1\nĠresult s\nĠA f\nS h\nĠg un\nĠOb ama\nro ll\nĠ @\nĠright s\nĠB rit\nĠrun ning\nĠwas n\nĠp ort\nĠr ate\nĠpret ty\nĠtarg et\nĠsa w\nĠc irc\nĠwor ks\nic ro\nal t\no ver\nww w\nTh at\nl ier\nĠevery one\nud e\nĠp ie\nidd le\nra el\nĠr ad\nĠbl ock\nĠw alk\nT o\nã ģ\nn es\nĠA ust\na ul\nro te\nĠS outh\ness ion\nop h\nĠshow s\nĠs ite\nĠj o\nĠr isk\ncl us\nl t\nĠin j\nid ing\nĠS pe\nĠch all\nir m\nĠ2 2\nitt ing\nst r\nĠh y\nL E\nke y\nĠbe gan\nat ur\nashing ton\nl am\nĠD av\nb it\nĠs ize\nĠP ar\n3 8\nourn al\nf ace\nĠdec ision\nĠl arg\nĠj ud\nre ct\nĠcontin ue\nĠO ct\nove red\nĠI nt\n==== ====\nĠp arent\nĠW ill\nĠeas y\nĠd rug\nang er\nĠs ense\nĠd i\nid ay\nĠener gy\nist ic\nĠass oci\nar ter\nob al\ne ks\nĠE l\nur ch\nĠg irl\no e\nit le\nĠ2 8\nĠC he\nĠrequ est\nĠso on\nĠh ost\nk y\nĠst ates\nom es\nĠm aterial\nle x\nĠmom ent\nĠan sw\non se\nĠes pecially\nĠn orm\nĠserv ices\np ite\nr an\nĠro le\n4 4\n) :\nĠc red\nC l\n____ ____\nĠm at\nĠl og\nĠCl inton\nO U\nĠoff ice\nĠ2 6\nĠch arg\nĠtr ack\nm a\nĠhe art\nĠb all\nĠperson al\nĠbuild ing\nn a\ns et\nb ody\nĠBl ack\nĠincre ase\nitt en\nĠneed ed\n3 6\n3 2\n= \"\nĠl ost\nĠbec ame\nĠgrou ps\nĠM us\nĠw rote\nĠP e\nĠpro p\nj oy\nÃ ©\nĠWh ite\nĠde ad\n. '\nĠhtt p\nĠwe bs\nO S\nĠins ide\nĠwr ong\nĠstat ement\nĠ ...\ny l\nĠfil m\nĠmus ic\nĠsh are\nific ation\nĠre lease\nĠfor ward\nĠst ay\nĠcomp ut\nit te\ns er\nĠorig inal\nĠc ard\nĠc and\nĠd iv\nat ural\nĠfav or\nO M\nĠc ases\nus es\nĠse ction\nĠle ave\ng ing\nov ed\nĠW ashington\n3 9\nĠG l\nĠrequ ired\nact ion\nap an\no or\nit er\nĠK ing\nĠcount ries\nĠG erman\nll ing\nĠ2 7\n3 4\nĠquest ions\nĠpr im\nĠc ell\nĠsh oot\nĠany one\nĠW est\nĠaff ect\nep end\nĠon line\nĠIs rael\nĠSept ember\nĠab ility\nĠcont ent\nis es\nĠre ve\nĠl aun\nĠind ic\nĠfor ce\nc ast\nĠso ld\nav ing\nf l\nĠso ft\nĠcompan ies\nce ed\nĠart icle\nĠa ud\nĠre v\nĠed uc\nĠplay ing\n0 5\nĠhe ld\nct or\nĠrele ased\nĠf ederal\n3 7\nĠad minist\nĠinter view\nĠinst all\nĠrece ived\nĠs ource\nu k\nP h\nĠser ious\nĠcre ated\nĠc ause\nĠim medi\nĠdef in\nu el\nĠDep artment\nct ions\nĠC our\nĠN ow\nz e\nit es\nit ution\nĠl ate\nĠspe ak\nn ers\nĠleg al\nar i\nĠC or\nĠwe eks\nĠmod el\nĠp red\nĠex act\nB C\nĠB y\nIN G\nos ing\nĠt akes\nĠreg ard\nĠopp ortun\nĠpr ice\nĠ19 8\nĠA pr\nf ully\nĠor d\nĠproble ms\nru ction\nh am\nĠC ount\nle ge\nĠlead ers\nE T\nle v\nĠde ep\nolog ical\nes e\nh aps\nĠS ome\nĠp ers\nĠcont ract\nĠrelations hip\ns p\nou d\nĠb ase\n4 8\nm it\nA d\nanc ial\nĠcons um\nĠpot ential\nĠl angu\nre m\net h\nĠrel ig\nress ed\n6 6\nĠl ink\nĠl ower\nay er\nĠJ une\nĠf em\nun t\ner c\nur d\nĠcont act\nĠ ill\nĠm other\nĠest ab\nh tt\nĠM arch\nĠB ro\nĠCh ina\nĠ2 9\nĠs qu\nĠprov ided\nĠa verage\nas ons\nĠ201 1\nĠex am\nl in\n5 5\nn ed\nĠper fect\nĠt ou\nal se\nu x\nĠbu y\nĠsh ot\nĠcol lect\nĠph ot\nĠplay ed\nĠsur pr\nĠofficial s\nĠsim ple\nav y\nĠindust ry\nĠhand s\ng round\nĠp ull\nĠr ound\nĠus er\nĠr ange\nu ary\nĠpriv ate\nop s\ne es\nĠw ays\nĠM ich\nĠve h\nĠex cept\nĠter ms\nim um\npp er\nI ON\nore s\nĠDr agon\nou l\nĠd en\nĠperform ance\nĠb ill\nc il\n4 7\nĠen vironment\nĠex c\nad d\nĠwor th\nĠp ict\nĠch ance\nĠ201 8\nb or\nĠspe ed\nict ion\nĠal leg\nĠJ apan\nat ory\nre et\nĠm atch\nĠI I\nĠst ru\nord er\nĠst e\nĠl iving\nĠst ruct\nin o\nĠse par\nher n\nĠresp onse\nĠen joy\nĠv ia\nA D\num ents\nace book\nĠmem ber\nib r\niz ing\nĠto ol\nĠM on\nĠWh ile\nh ood\nĠA ng\nĠD ef\nĠoff er\nT r\na ur\nĠturn ed\nĠJ uly\nd own\nan ced\nĠrec ently\nĠE ar\nĠc e\nĠSt ar\nĠC ong\nrough t\nĠbl ood\nĠhop e\nĠcom ment\nain t\nĠar ri\nil es\nĠpartic ip\nough t\nri ption\n0 8\n4 9\nĠg ave\nĠse lect\nĠkill ed\nsy ch\nĠgo es\ni j\nĠc oll\nĠimp act\nat ives\nĠS er\n0 9\nĠAug ust\nĠb oy\nd e\nĠD es\nĠf elt\nU S\nĠexpect ed\nĠim age\nĠM ark\ncc ording\no ice\nE C\nĠM ag\nen ed\nh old\nĠP ost\nĠpre vent\nN o\nĠinvol ved\nĠey es\nĠquick ly\nA t\nun k\nĠbeh av\nĠ ur\nĠl ed\nc ome\ne y\nĠcand id\nĠear lier\nĠfoc us\net y\nP ro\nled ge\nix ed\nill ed\nĠpop ular\nA P\nĠset t\nl ight\nĠvar ious\nin ks\nĠlevel s\nĠro ad\nell ig\nab les\nhe l\nitte e\nĠG ener\ny pe\nĠhe ard\nic les\nĠm is\nĠus ers\nĠS an\nĠimpro ve\nĠf ather\nĠse arch\nThe y\nv il\nĠprof ess\nĠkn ew\nĠl oss\nĠev ents\n6 5\nĠb illion\n0 7\n0 2\nĠNew s\nĠA M\nĠco ver\nw here\nens ion\nĠb ott\nĠare as\nen ces\nop e\nĠTw itter\na el\nĠget s\nĠGo ogle\nĠs n\ni ant\nĠv ote\nĠnear ly\nĠinclud ed\nĠrec ogn\nz z\nm m\nal ed\nĠhappen ed\n0 4\nĠh ot\nĠwho se\nĠc ivil\nĠsu ff\no es\nit iz\nĠSy ri\nĠresp ond\nĠh on\nĠfeat ures\nĠeconom ic\nĠApr il\nr im\nĠtechn ology\nĠo ption\nag ing\nĠpur ch\nR e\nĠl at\nch ie\nis l\nĠrec omm\nu f\nĠtr aining\nĠeffect s\nĠf ast\nĠ201 0\nĠocc ur\nĠwebs ite\nĠem ail\nĠs ens\ne ch\nĠo il\nĠinf lu\nĠcurrent ly\nĠS ch\nĠAd d\nĠgo al\nĠsc ient\nĠcon v\n1 00\nem y\nĠdec ided\nĠtra vel\nĠm ention\nL L\n0 3\nĠe lection\nĠph one\nĠlook s\nĠsit uation\nĠc y\nĠh or\nb ed\nĠCour t\na ily\nav es\nĠqu ality\nĠCom p\nw ise\nĠt able\nĠst aff\nĠW ind\net t\nĠtri ed\nide red\nĠadd ition\nĠb ox\nĠl ack\nar ily\nĠw ide\nĠm id\nĠbo ard\nys is\nĠant i\nh a\nĠd ig\nen ing\nĠd ro\nC on\n6 8\nĠsl ow\nb ased\nse qu\nĠp ath\nE x\nak er\nĠwork ed\nĠp en\nĠeng ine\nĠlook ed\nĠSu per\nĠS erv\nĠvict im\nU n\nĠproper ty\nĠint rodu\nĠexec ut\nĠP M\nL e\nĠcol or\nĠM ore\nĠ6 0\nĠnet work\nĠd ate\nc ul\nid ge\nĠext ra\n3 1\nĠs le\n6 7\nĠw ond\nĠreport s\nj ust\nĠAust ral\nĠcap ital\nĠen s\nĠcomm and\nĠallow ed\nĠpre p\nĠca pt\nh ib\nĠnum bers\nch an\nĠf air\nm p\nom s\nĠre ach\nW ith\nt ain\nĠbro ad\nĠcou ple\nec ause\nly ing\nĠF eb\nĠsc reen\nĠl ives\nĠpri or\nĠCong ress\nA r\nĠappro ach\nĠe mer\nar ies\nĠD is\ns erv\nĠN e\nĠbu ilt\nc ies\nĠre pe\nĠrul es\nfor ce\nĠP al\nĠfin ancial\nĠcons idered\nĠCh ar\nn ces\nĠI S\nĠb rought\nĠb i\ni ers\nĠS im\nO P\nĠproduct s\nĠvis it\nĠdoc ument\nĠcon duct\nĠcomplete ly\nin ing\nĠCal if\nib ly\nĠwr itten\nĠT V\nem ents\nĠd raw\nO ne\nĠpub lished\nĠsec ret\nr ain\nhe t\nĠF acebook\nond ay\nĠU p\nĠsex ual\nĠth ous\nĠP at\nĠ ess\nĠstand ard\nĠar m\ng es\nect ion\nĠf ell\nĠfore ign\nan i\nĠFr iday\nĠreg ular\nin ary\nĠincre ased\nĠus ually\nĠdem on\nĠd ark\nĠadd itional\nro l\nĠO f\nĠprodu ction\n! !\nund red\nĠintern ational\nid ents\nĠF ree\nrou p\nĠr ace\nĠm ach\nĠh uge\nA ll\nle ar\nove mber\nĠto wn\nĠatt ention\nĠO ff\ny ond\nĠThe n\nf ield\nĠter ror\nra z\nĠB o\nĠmeet ing\nĠP ark\nĠar rest\nĠf ear\nĠa w\nĠV al\nor ing\n' ,\nĠext reme\nar r\nĠwork ers\nA fter\nĠ3 1\nn et\nam ent\nĠdirect ly\nĠpop ulation\nub e\nĠOct ober\nĠI N\nĠJan uary\n5 9\nĠDav id\nĠc ross\nce mber\nĠF irst\nĠmess age\nir it\nĠn ation\nĠp oll\nis ions\nĠansw er\nn y\nis ode\nĠcar ry\nĠRuss ia\nĠhe ar\neng th\nro y\nĠn atural\nin ally\nĠdo g\nm itted\nĠtr ade\nĠsub st\nĠmult iple\nĠAf ric\nĠf ans\nĠs ort\nĠgl obal\nic ation\nĠW ed\nar a\nĠa chie\nĠlangu age\nve y\nĠt al\nĠnecess ary\nĠdet ails\nĠs en\nĠS und\nĠRe g\nĠR ec\n0 6\nĠs il\nress ive\nĠmed ical\nun ch\norn ia\nĠu nd\nf ort\noc ks\nĠM onday\nues day\nc raft\n7 7\nur t\nĠ ver\nĠH ill\nĠrece ive\nĠmor ning\nes tern\nĠb ank\nĠs at\nir th\nĠH igh\nĠdev ice\nĠTH E\nĠCent er\nĠsaf e\nĠp le\nĠCanad a\nĠsystem s\nĠass ist\nĠsur v\nĠb attle\nĠS oc\nvert is\nS he\nĠp aper\nĠgrow th\nĠc ast\nS c\nĠpl ans\nll ed\nĠpart s\nĠw all\nĠmove ment\nĠpract ice\nim ately\nĠdis play\nĠsomet imes\nom p\nĠP aul\nĠY es\nk ing\n5 8\no ly\nĠs on\nĠav oid\nok es\nĠJ ew\nĠto wards\nas c\nĠ //\nĠK ore\nĠtalk ing\nĠcor rect\nĠsp ent\nic ks\ni able\ne ared\nĠter m\nĠwant s\nom ing\nĠ ut\nĠdou b\nĠfor ces\nĠp lease\n6 9\nĠN ovember\nat form\nond on\nĠon es\nĠimmedi ately\nĠRuss ian\nĠM et\nĠde g\nĠparent s\nC H\nĠAmeric ans\nal y\nĠM od\nĠsh own\nĠcond itions\nĠst uff\nĠre b\nĠY our\nĠinclud es\nn own\nĠS am\nĠexper ien\nm ission\nĠE ven\naugh t\nĠannoun ced\nĠRepublic an\nĠdeter min\nĠdescrib ed\nĠCount y\n( )\nĠdo or\nĠchang ed\nĠne igh\nĠH ere\nĠcle an\nĠp an\nĠDe cember\nĠEurope an\nir ing\nap ter\nĠcl ub\nĠT uesday\nĠp aid\nĠN et\nĠattack s\nĠcharact ers\nĠal one\nĠdirect or\nd om\nĠ3 5\nĠl oad\nĠr out\nĠCalif ornia\nĠfin ally\nĠr ac\nĠcont r\nĠexact ly\nres h\np ri\nĠIs lam\nĠn ature\nĠcare er\nĠlat est\nĠcon vers\nĠS l\np ose\nci ent\nĠIn c\niv ity\n8 8\nĠA tt\nĠM or\nnes day\nĠwe ight\nk en\nĠnot e\nĠteam s\nĠ \\\nair s\nĠG reen\nĠh undred\non ent\nĠstre ng\nĠcons ist\nic ated\nĠreg ul\nĠl ic\nast ic\nĠt en\nurs day\nellig ence\nous ly\nĠU K\nB I\nĠcost s\nĠind epend\nĠA P\nĠnorm al\nĠh om\nĠob vious\nĠs we\nĠst ar\nĠread y\nac her\nĠimp lement\ng est\nĠs ong\nĠG et\nĠL ab\nĠinterest ing\nus ing\nĠg iving\nĠSund ay\nĠet c\nĠm iddle\nĠrem ember\nr ight\nos ition\nut ions\nĠm ax\n4 6\nĠyour self\nĠdem and\nĠtreat ment\nĠd anger\nĠC ons\nĠgu y\nĠBrit ish\nĠphys ical\nĠrel ated\nĠrem ain\nĠcould n\nĠref er\nĠc itiz\nb ox\nEN T\nbo ard\nĠin n\nI G\ner o\nĠSt reet\nosp ital\nren ch\ncher s\nĠst ra\nO L\nag er\nĠA N\nĠeas ily\nI A\nen ge\nin y\nĠcl os\nock ed\nĠus es\nĠC oun\nI m\nu ild\n? ?\nm ore\nĠan g\nĠwr ite\nol ute\n5 7\nĠlead er\nĠread ing\n< /\nĠaut om\nest s\n4 3\nĠleg isl\nĠG old\nĠdesign ed\nĠS T\nĠLe g\na res\nĠbe aut\nĠT ex\nĠappear s\nĠstru gg\nĠR om\nĠ 00\nĠcho ice\nĠparticular ly\nĠF rom\nop er\nĠL ondon\nann ed\nĠallow s\nob ile\nĠdiffere nce\nâĢ ¢\nĠV iew\nĠWed nesday\nĠal though\nĠrel ative\nĠapplic ation\nate ver\nĠare n\nĠmy self\nĠim ag\nĠdis e\nĠsoc iety\nĠfre qu\nĠEng lish\nĠpo or\nĠD ay\nĠwrit ing\nĠse ven\nĠstart ing\nĠb ud\nĠpr int\nĠTr ans\nuf act\nĠSt ud\nn ew\nĠcr im\nĠg ives\nĠco ol\na e\ni ance\nĠGener al\nĠthink ing\nĠsa ve\nĠlim ited\nĠPart y\nĠmean ing\np en\now ers\nĠJ ack\nE M\nĠn ice\nru pt\nĠg as\nĠe ight\nĠfe et\nĠeff ort\nĠ ign\nic it\nB l\nco in\nĠop in\nĠbr ain\nWh ile\nhe st\nĠTh ursday\nĠwould n\naugh ter\nĠtou ch\nle ments\nĠstud ies\nĠcent er\nc ont\nor ge\nĠcomput er\nĠinvestig ation\nP l\nor ks\nĠ200 8\nĠincre asing\nĠst ore\nĠcom ments\nĠb al\nm en\nĠdo ll\nĠl iber\nĠw ife\nĠlaw s\natur day\nit ness\nĠmod ern\nĠS k\nĠadminist ration\nĠopportun ity\nĠs al\nĠpower ful\nM y\nĠclaim s\nĠEar th\nord s\nĠt itle\nĠes c\nn ame\nN ot\nom en\nĠbe yond\nĠc amer\nĠse ll\nit ute\near ch\nĠapp l\nim ent\n4 2\nĠAr t\nĠun f\nĠviol ence\nur g\nĠE ast\nĠcomp ared\nĠopt ions\nĠthrough out\nĠv s\nig r\n. [\nac hes\n7 8\nĠfil es\nF L\nE L\nar ian\nĠJ ames\nĠA ir\nan ch\nĠdet ail\nĠpie ce\nP S\nĠn amed\nĠeduc ation\nĠdri ve\nĠitem s\nĠstud ent\nic ed\n: :\nic o\nĠth row\nĠsc ene\nĠcomple x\nĠ200 9\nĠpre c\nĠB re\n7 9\nĠcon cept\nĠstat us\nam ing\nĠd ied\nĠknow ledge\nĠbegin ning\nO D\nru ary\nĠcertain ly\nĠgu ys\nĠsl ight\nin n\nound s\nĠf ine\nĠf at\nic ations\nĠper haps\nĠA nt\nĠinc ome\nĠhtt ps\nĠmajor ity\nport s\nst on\nĠgreat er\nĠfe ed\nent ially\nĠsaf ety\nĠun ique\nand om\nĠg one\nĠshow ed\nĠhist or\nĠcoun ter\ni us\nid a\nĠlead ing\ni pe\nĠs end\nĠDon ald\ner ve\nĠdef ense\nines e\nĠy es\nĠF ire\nĠMus lim\nra q\nĠcontin ued\nos h\nĠprov ides\nĠpr ison\nĠP re\nĠhapp y\nĠeconom y\nĠtr ust\nag s\nĠG ame\nĠweap ons\num an\nĠC le\nit ation\nĠanal ysis\nĠT imes\nĠsc ience\n- >\nĠfig ure\nĠdis app\nent y\nĠsoft ware\nĠu lt\nĠoffic ers\nN ew\nI s\nĠrem ains\nĠInd ia\nĠp sych\nri ef\nĠc at\nes c\nĠob serv\nĠst age\nĠD ark\nĠent er\nch ange\nĠpass ed\nĠdes pite\nĠO ut\nĠmov ie\nr s\nĠv oice\nm ine\nĠPl ay\nĠto ward\nĠT er\nĠreg ion\nĠval ues\nor ters\nĠm ount\nĠoffic er\nĠO ther\nb an\nĠh ous\nw ood\nro om\nI V\nĠS un\nse e\nĠO ver\nro g\n9 0\nĠl ay\nĠT ur\na wn\nĠpress ure\nĠS ub\nĠbook s\ned om\nĠS and\nA A\nag o\nĠre asons\nf ord\nĠactiv ity\nU T\nN ow\nĠSen ate\nce ll\nn ight\nĠcall s\nin ter\nĠlet ter\nĠR ob\nĠJ e\nĠcho ose\nĠL aw\nG et\nB e\nĠro b\nĠtyp es\nĠpl atform\nĠqu arter\nR A\nĠT ime\nĠmay be\nĠC r\n9 5\np re\nĠmov ing\nĠl if\nĠgo ld\nĠs om\nĠpat ients\nĠtr uth\nĠK e\nur ance\nant ly\nm ar\nĠchar ge\nĠG reat\nĠce le\n---------------- ----------------\nĠro ck\nro id\nan cy\nĠcred it\na ud\nB y\nĠE very\nĠmov ed\ning er\nrib ution\nĠn ames\nĠstra ight\nĠHe alth\nĠW ell\nĠfe ature\nĠr ule\nĠsc he\nin ated\nĠMich ael\nber g\n4 1\nil ed\nb and\nĠcl ick\nĠAng el\non ents\nÂ Ń\nĠI raq\nĠS aturday\nĠa ware\np art\nĠpat tern\nO W\nĠL et\nĠgr ad\nign ed\nĠassoci ated\nĠst yle\nn o\ni ation\na ith\nil ies\nĠst ories\nur ation\nĠindividual s\nĠâĢ ¦\nm iss\nĠAss oci\nish ing\nab y\nĠsum mer\nĠB en\nĠ3 2\nĠar ch\nut y\nĠTex as\nh ol\nĠfull y\nĠm ill\nĠfollow ed\nĠB ill\nĠInd ian\nĠSec ret\nĠB el\nĠFeb ruary\nĠjob s\nĠseem ed\nĠGo vern\ni pped\nĠreal ity\nĠl ines\nĠp ark\nĠmeas ure\nĠO ur\nI M\nĠbro ther\nĠgrow ing\nĠb an\nĠest im\nĠc ry\nĠS chool\nĠme chan\nĠO F\nĠWind ows\nĠr ates\nĠO h\nĠpos itive\nĠcult ure\nist ics\nic a\nĠh ar\ny a\nite ly\ni pp\nĠm ap\nen cies\nĠWill iam\nI I\nak ers\n5 6\nĠM art\nĠR em\nĠal tern\nit ude\nĠco ach\nrow d\nD on\nĠk ids\nĠj ournal\nĠcor por\nĠf alse\nĠwe b\nĠsle ep\nĠcont ain\nĠst o\nĠb ed\niver se\nĠR ich\nĠCh inese\nĠp un\nĠme ant\nk nown\nĠnot ice\nĠfavor ite\na ven\nĠcond ition\nĠpur pose\n) )\nĠorgan ization\nĠchall eng\nĠman ufact\nĠsus p\nĠA c\nĠcrit ic\nun es\nuc lear\nĠm er\nvent ion\nĠ8 0\nĠm ist\nĠU s\nĠT or\nhtt p\nol f\nĠlarg er\nĠadv ant\nĠrese ar\nĠact ions\nm l\nĠke pt\nĠa im\n, '\nc ol\nĠbenef its\nif ying\nĠact ual\nĠIntern ational\nĠveh icle\nĠch ief\nĠeff orts\nĠLe ague\nĠM ost\nĠwa it\nĠad ult\nĠover all\nĠspe ech\nĠhigh ly\nĠfem ale\nĠer ror\nĠeffect ive\n5 4\nĠenc our\nw ell\nĠfail ed\nĠcons erv\nĠprogram s\nĠt rou\nĠa head\n5 00\nvertis ement\nI P\nĠF ound\np ir\nĠ %\nĠcr ime\nand er\nĠloc ation\nĠI ran\nĠbehav ior\naz ing\nĠr are\nĠem b\nĠca used\nĠsh ip\nĠact ive\nĠcont ribut\nĠg reen\nĠac qu\nĠref lect\nven ue\nĠf irm\nĠb irth\n] .\nĠclear ly\nĠem ot\nĠag ency\nri age\nĠmem ory\n9 8\nS A\nĠSe e\nac ing\nC C\nĠbig gest\nĠr ap\nĠbas ic\nĠb and\ne at\nĠsus pect\nĠM ac\nĠ9 0\nm ark\nist an\nĠsp read\nam s\nk i\nas y\nra v\nĠR ober\nĠdemon str\nr ated\nĠabs olute\nĠpl aces\nĠim pl\nibr ary\nĠc ards\nĠdest roy\nĠv irt\nve re\nĠapp eared\ny an\np oint\nĠbe g\nĠtem per\ns pe\nant ed\near s\nĠD irect\nĠl ength\nĠbl og\nam b\nĠint eg\nĠres ources\nac c\nif ul\nĠsp ot\nĠfor ced\nĠthous ands\nĠMin ister\nĠqu al\nĠF rench\nat ically\nĠgener ally\nĠdr ink\nĠth us\nI L\nod es\nĠappro pri\nĠRe ad\nĠwh om\nĠey e\nĠcol lege\nĠ4 5\nire ction\nĠens ure\nĠapp arent\nid ers\nĠrelig ious\nĠmin or\nol ic\nĠt ro\nĠWh y\nrib ute\nm et\nĠprim ary\nĠdevelop ed\nĠpe ace\nĠsk in\nst e\nav a\nĠbl ue\nĠfam ilies\nĠ ir\nĠapp ly\nĠin form\nĠSm ith\nC T\ni i\nĠlim it\nĠres ist\n........ ........\num n\nĠconf lic\nĠtw e\nud d\nĠT om\nĠl iter\nqu e\nb on\nĠha ir\nĠevent ually\nĠp us\nĠhelp ed\nĠag g\nor ney\nĠApp le\nĠf it\nĠS ur\nĠpre m\nĠs ales\nĠsecond s\nĠstreng th\nĠfeel ing\n¿ ½\nĠt our\nĠknow s\no om\nĠex erc\nĠsom ew\nï ¿½\n> >\nĠsp okes\nĠide as\nĠreg ist\nso ft\nĠD el\nĠP C\nĠpro pos\nĠlaun ch\nĠbott om\nT H\nĠP lease\nv est\nit z\nĠIn ter\nĠsc ript\nĠr at\nar ning\nĠ il\nĠJ er\nĠA re\nĠwh atever\nok en\nci ence\nĠmod e\nĠag ree\nĠs ources\nĠinit ial\nĠrest rict\nĠwond er\nus ion\n## ##\nĠS il\nvil le\nĠb urn\nt w\nas ion\nĠÂ £\nĠn or\nu ing\nĠre ached\nĠs un\nĠc ateg\nig ration\nĠc ook\nĠprom ot\nĠm ale\nĠcl imate\nĠf ix\nĠalleg ed\nU R\nall ed\nĠim ages\nC ont\not a\nĠschool s\ni os\nĠd rop\nĠst ream\nĠM o\nĠprevious ly\nal ing\nĠp et\nĠdou ble\nĠ( @\nann el\nĠdef ault\nt ies\nĠr ank\nĠD ec\nĠCoun cil\nĠweap on\nĠst ock\nĠanal y\nĠSt r\nĠpict ure\nĠPol ice\nf erence\nĠcent ury\nĠcitiz ens\nĠon to\nĠexp and\nĠhe ro\nĠS ol\nĠw ild\nĠupd ate\nĠcustom ers\nr ont\nd ef\nĠl ik\nĠcrim inal\nĠChrist ian\nS P\n7 6\nĠle aving\nĠother wise\nĠD ist\nĠbas is\n5 2\n5 3\nic ip\nĠB er\nĠrecomm end\nĠfl oor\nĠc rowd\nol es\nĠ7 0\nĠcent ral\nĠE v\nĠd ream\nĠdown load\nĠconf ir\nĠTh om\nĠwind ow\nĠhapp ens\nĠun it\nĠt end\nĠs pl\nĠbec omes\nĠfight ing\nĠpred ict\nĠP ress\nĠP ower\nĠhe avy\nak ed\nĠf an\nor ter\nate gy\nB A\niz es\nĠsp end\nH ere\nĠ200 7\nĠad op\nĠH am\nĠfoot ball\nĠP ort\nod ay\n5 1\namp ions\nĠtrans fer\nh t\nĠ3 8\nter m\nac ity\nĠb ur\n] ,\ntern al\nr ig\nb ut\nĠthere fore\nĠB ecause\nres p\nre y\nĠm ission\nS ome\nĠnot ed\nĠass um\nĠdise ase\nĠed it\nĠprog ress\nr d\nĠB rown\noc al\nĠadd ing\nĠra ised\nĠAn y\nĠt ick\nĠsee ing\nĠPe ople\nĠagre ement\nĠser ver\nĠw at\nĠdeb ate\nĠsupp osed\nil ing\nĠlarg est\nĠsuccess ful\nĠP ri\nĠDemocr atic\nĠj ump\nĠSyri a\nĠown ers\nĠoff ers\nĠshoot ing\nĠeff ic\nse y\nĠha ven\nver se\nte red\nĠL ight\nim al\nĠB ig\nĠdef end\nĠbe at\nĠrecord s\n% )\nĠsc en\nĠemploy ees\nĠdev ices\nhe m\nĠcom mer\nĠM ex\nĠbenef it\nĠPro f\nĠil leg\nĠsur face\nĠAl so\nĠh arm\ning ly\nw ide\nĠA lex\nĠsh ut\nĠC ur\nĠl ose\np m\nĠchall enge\nse mb\nĠst ation\nĠint elligence\nĠacc ur\nĠFl or\nĠrequ ires\nĠM al\nb um\nĠh ospital\nĠsp irit\nĠoff ered\nĠprodu ce\nĠComm un\nĠcreat ing\nĠcr is\ns pect\nĠend ed\nĠd aily\nĠvot ers\nland s\ni as\ni h\non a\nĠsm art\nĠOff ice\nĠL ord\nri al\nĠIntern et\nĠcirc um\nĠextreme ly\n' .\nĠopin ion\nĠM il\nĠg ain\nB S\nĠF in\ny p\nĠuse ful\nĠbud get\nĠcom fort\nis f\nĠback ground\nel ine\nĠep isode\nĠen emy\nĠtri al\nĠestab lish\nd ate\nĠC ap\nĠcontin ues\nĠshow ing\nĠUn ion\nw ith\nĠpost ed\nĠSy stem\nĠe at\nri an\nĠr ise\nĠGerman y\nil s\nĠsign ed\nĠv ill\nĠgr and\nm or\nĠEng land\nĠproject s\num ber\nĠconf erence\nz a\nĠrespons ible\nĠAr ab\nĠlearn ed\nâĢĶ âĢĶ\ni pping\nĠGe orge\nO C\nĠreturn ed\nĠAustral ia\nĠb rief\nQ u\nĠbr and\nill ing\nab led\nĠhig hest\nĠtr ain\nĠComm ission\nwh ile\nĠn om\ncept ion\nĠm ut\nĠBl ue\nĠinc ident\nv ant\n8 6\nĠI D\nĠn uclear\n7 4\nĠL ike\nĠR E\nĠM icro\nl i\nm ail\nĠcharg es\n8 9\nĠad just\nad o\nĠear th\nN A\nĠpr ices\nP A\nĠd raft\nĠrun s\nĠcandid ate\nens es\nĠmanag ement\nĠPh il\nĠM iss\nĠte ach\ng ram\nĠunderstand ing\na it\nic ago\nA dd\nĠE p\nsec ut\nĠsepar ate\nĠinst ance\nĠe th\nĠun less\n**** ****\nĠF ore\nin ate\nĠoper ations\nS p\nĠf aith\ng ar\nĠCh urch\nron ic\nĠconf ig\nos ure\nĠactiv ities\nĠtrad itional\nĠ3 6\nĠd irection\nĠmach ine\nĠsur round\nĠp ush\nun ction\nĠE U\nĠeas ier\nĠarg ument\nG B\nĠm icro\nĠsp ending\niz ations\nĠthe ory\nad ow\nĠcall ing\nĠL ast\nĠd er\nĠinflu ence\nĠcomm it\nĠph oto\nĠun c\nist ry\ng n\nast e\nack s\nĠdis p\nad y\nd o\nĠG ood\nĠ `\nĠw ish\nĠreve aled\nÂł Âł\nl ig\nĠen force\nĠComm ittee\nĠche m\nĠmil es\nĠinterest ed\nĠsol ution\nic y\nin ct\nĠ- >\nĠD et\nĠrem oved\nĠcomp ar\ne ah\nĠpl ant\nĠS ince\nĠachie ve\nĠadvant age\nĠslight ly\nb ing\nĠpl aced\nu nder\n201 5\nĠM ad\nĠt im\nos es\nĠc ru\nĠR ock\nĠmost ly\nĠneg ative\nĠset ting\nĠprodu ced\nĠm ur\nĠconnect ion\nĠM er\nĠdri ver\nĠexecut ive\nĠass ault\nĠb orn\nĠV er\nt ained\nĠstruct ure\nĠredu ce\nĠdec ades\nĠd ed\nu ke\nĠM any\nidd en\nĠle ague\nS e\nĠjo in\nĠdis co\nĠd ie\nc ks\nact ions\nĠass ess\nag n\nĠgo als\nour s\nI R\nĠsen ior\nill er\nm od\nip ment\noc ol\nu y\nĠQ ue\nĠpart ies\nir gin\nĠle arning\nit able\nĠstre et\nĠcamer a\nA pp\nĠsk ills\nb re\nc ious\nĠcele br\nĠFr anc\nĠexist ing\nĠwill ing\nl or\nĠ id\nĠSp ace\nĠcrit ical\nĠL a\nortun ately\nĠser ve\nĠc old\nĠspec ies\nT S\nĠanim als\nĠB ay\nĠold er\nĠU nder\nest ic\nĠT re\nĠte acher\nĠpre fer\nv is\nĠth read\nĠM att\nĠmanag er\nãĥ »\nĠprofess ional\nĠV ol\nĠnot es\nThe se\nul a\nĠf resh\nent ed\nu zz\ned y\nclus ion\nĠR el\nĠdoub t\nE O\nĠopen ed\nĠB it\nAd vertisement\nĠgu ess\nĠU N\nĠse qu\nĠexpl ain\nott en\nĠatt ract\nak s\nĠstr ing\nĠcont ext\noss ible\nĠRepublic ans\nĠsol id\nĠc ities\nĠask ing\nĠr andom\nu ps\nur ies\nar ant\ndd en\ng l\nĠFlor ida\nĠdep end\nĠSc ott\nĠ3 3\nĠi T\nic on\nĠmention ed\nĠ2 000\nĠclaim ed\nĠdefin itely\nul f\nĠc ore\nĠopen ing\nĠCon st\nwh ich\nĠT ra\nA G\n7 2\nĠbelie ved\nad a\nĠ4 8\nĠSec urity\nyr ight\nĠP et\nĠL ou\nĠhold ing\n======== ========\nĠ ice\nĠb row\nĠauthor ities\nh ost\nw ord\nĠsc ore\nĠD iv\nĠcell s\nĠtrans l\nĠneigh bor\nĠrem ove\nu ct\nĠdist rict\nĠA ccording\nĠwor se\nĠconcern s\nĠpresident ial\nĠpolic ies\nĠH all\n7 3\nĠh us\nA Y\nĠ200 6\nĠJ ud\nĠindepend ent\nĠJust ice\nili ar\npr int\nigh ter\nĠprotect ion\nz en\nĠsu dden\nh ouse\nĠJ es\nP R\nĠIn f\nĠb ul\nĠ _\nĠServ ice\nĠP R\nĠstr ategy\nff ect\nĠgirl s\nĠmiss ing\noy al\nĠTe am\nul ated\nĠd at\nĠpolit ics\nab or\nA ccording\nĠspe ll\nĠg raph\nort hern\nT C\nA b\nĠlab or\nis her\nĠk ick\nĠiT unes\nĠstep s\npos es\nĠsmall er\nE n\nber t\nĠro ll\nĠresear chers\nĠcl osed\nĠtrans port\nĠlaw y\n________ ________\nĠCh icago\nĠas pect\nĠn one\nĠmar riage\n9 6\nĠe lements\nĠF re\nĠS al\nĠd ram\nF C\nt op\ne qu\nĠhe aring\nĠsupport ed\nĠtest ing\nco hol\nĠmass ive\nĠst ick\nĠgu ard\nis co\nph one\nF rom\nHow ever\nĠb order\nĠcop y\nograph y\nl ist\n7 1\nĠown er\ncl ass\nru it\nr ate\nĠO nce\nĠdig ital\nĠt ask\nER S\nĠinc red\nt es\n+ +\nĠFr ance\nĠb reat\now l\nĠiss ued\nĠW estern\nĠdet ect\nĠpart ners\nĠsh ared\nĠC all\nĠcan cer\nac he\nrib e\nĠexpl ained\nĠhe at\n{ \"\nĠinvest ment\nĠB ook\nĠw ood\nĠtool s\nĠAl though\nĠbelie f\nĠcris is\nĠg e\nĠM P\nĠoper ation\nty pe\n~ ~\ng a\nĠcont ains\nant a\nĠexp ress\nĠG roup\nĠJ ournal\nk a\nĠam b\nĠUS A\nĠfind ing\nĠfund ing\nh ow\nĠestab lished\nide os\nĠdeg ree\nĠdanger ous\nang ing\nĠfre edom\npp ort\nout hern\nĠch urch\nĠc atch\nĠTw o\nĠpres ence\nĠGu ard\nU p\nĠauthor ity\nĠPro ject\nĠbut ton\nĠcon sequ\nĠval id\nĠwe ak\nĠstart s\nĠref erence\nĠM em\n\" )\nU N\nor age\nĠO pen\nĠcol lection\ny m\ng ency\nĠbeaut iful\nro s\nĠtell s\nĠwa iting\nn el\nĠprov iding\nĠDemocr ats\nĠd aughter\nĠm aster\nĠpur poses\nĠJapan ese\nĠequ al\nĠturn s\nĠdoc uments\nĠwatch ing\nR es\nĠr an\n201 4\nĠre ject\nĠKore a\nĠvictim s\nLe vel\nere nces\nĠw itness\nĠ3 4\nĠre form\ncom ing\nĠocc up\nĠc aught\nĠtra ffic\nad ing\nĠmod els\nar io\nĠserv ed\nĠb atter\nu ate\nĠSecret ary\nĠagre ed\nĠtr uly\nyn am\nĠR et\nĠun its\nĠRes earch\nh and\naz ine\nĠM ike\nĠvar iety\not al\nĠam azing\nĠconfir med\nĠentire ly\nĠpurch ase\nĠe lement\nĠc ash\nĠdeter mine\nD e\nĠc ars\nĠW all\nâ ĸ\nĠview s\nĠdrug s\nĠdep artment\nĠSt ep\nu it\nĠ3 9\nas ure\nĠCl ass\nĠc overed\nĠB ank\nĠme re\nu ana\nĠmult i\nĠm ix\nĠun like\nlev ision\nĠsto pped\nĠs em\nĠG al\nul es\nĠwe l\nĠJohn son\nl a\nĠsk ill\nĠbec oming\nri e\nĠappropri ate\nf e\nell ow\nĠPro t\nul ate\noc ation\nĠweek end\nod ies\nĠsit es\nĠanim al\nĠT im\nĠsc ale\nĠcharg ed\nĠinst ruct\nill a\nĠmethod s\nĠc ert\nĠjud ge\nĠH el\nĠdoll ars\nĠstand ing\nĠS qu\nĠdeb t\nl iam\nĠdri ving\nĠS um\nĠEd ition\nĠal bum\nand on\nI F\nĠU k\n6 3\nad er\nĠcommer cial\nes h\nĠGovern ment\nĠdisc overed\nĠout put\nĠHill ary\nĠCar ol\nĠ200 5\nĠab use\nanc ing\nĠsw itch\nĠann ual\nT w\nĠst ated\nag ement\nin ner\nĠdem ocr\nĠres idents\nĠallow ing\nĠfact ors\nod d\nĠf uck\nem ies\nĠoccur red\not i\nĠn orth\nĠP ublic\nĠinj ury\nĠins urance\nC L\noll y\nã Ģ\nĠrepe ated\nĠar ms\nang ed\nĠconst ruction\nĠf le\nP U\nic ians\nĠfor ms\nĠMc C\nant ic\nĠm ental\np ire\nĠequ ipment\nĠf ant\nĠdiscuss ion\nĠregard ing\nk in\nar p\nĠch air\nog ue\nĠpro ceed\nĠI d\nO ur\nĠmur der\nM an\nĠ4 9\nas p\nĠsupp ly\nĠin put\nĠwe alth\nliam ent\nĠpro ced\nor ial\nĠSt at\nĠN FL\nhen s\nĠInst itute\nĠput ting\nourn ament\net ic\nĠloc ated\nĠk id\ner ia\nr un\nĠpr inc\nĠ !\ngo ing\nĠB et\nĠcl ot\nĠtell ing\nĠprop osed\ni ot\nor ry\nĠfund s\ng ment\nĠL ife\nĠb aby\nĠB ack\nĠsp oke\nIm age\nĠear n\nĠA T\ng u\nĠex change\nĠL in\nov ing\nĠp air\nM ore\naz on\nĠarrest ed\nĠkill ing\nc an\nĠC ard\ny d\nĠident ified\nĠm obile\nĠthan ks\nony m\nĠF orm\nĠhundred s\nĠCh ris\nĠC at\nĠtre nd\nh at\nĠA v\nom an\nĠelect ric\nĠW il\nS E\nO f\nĠrest aur\not ed\nĠtr ig\nĠn ine\nĠb omb\nWh y\nÂ ¯\nĠco verage\nĠapp eal\nĠRober t\nĠS up\nĠfin ished\nĠfl ow\nĠdel iver\nĠcal cul\nĠphot os\nĠph il\nĠpie ces\nĠapp re\nk es\nĠr ough\nD o\nĠpart ner\nĠconcern ed\nĠ3 7\nĠG en\nC ol\nct ors\nĠ= >\nst ate\nĠsuggest ed\nĠFor ce\nC E\nĠher self\nĠPl an\nw orks\no oth\nren cy\nĠcor ner\nĠhus band\nĠintern et\nĠA ut\nem s\nos en\nĠAt l\ng en\nĠbal ance\n6 2\nĠsound s\nte xt\nĠar r\nov es\nĠmill ions\nĠrad io\nĠsat isf\nĠD am\nM r\nG o\nS pe\nĠcomb at\nr ant\nĠG ree\nĠf uel\nĠdist ance\nĠtest s\nĠdec re\nĠE r\nĠman aged\nD S\nĠt it\nĠmeas ures\nĠL iber\nĠatt end\nas hed\nĠJ ose\nĠN ight\nd it\nĠN ov\nĠE nd\nout s\nĠgener ation\nĠadv oc\ny th\nĠconvers ation\nĠS ky\nact ive\nce l\nri er\nĠFr ank\nĠg ender\nĠcon cent\nĠcar ried\nand a\nĠV irgin\nĠarri ved\nic ide\nad ed\nĠfail ure\nĠmin imum\nle ts\nĠwor st\nĠkeep ing\nĠint ended\nĠilleg al\nĠsub sc\nĠdetermin ed\nĠtri p\nY es\nĠra ise\nĠ ~\nĠfeel s\nĠpack age\nĠJ o\nh i\n201 6\nre al\nĠf ra\nĠsy mb\nM e\nuck y\np ret\nĠK h\nĠEd it\nĠWe b\nem ic\nĠCol or\nĠjust ice\nI nt\nĠfar m\nck now\n\" >\nel ess\nĠredu ced\nĠ5 00\nx x\nĠR ad\nĠW ood\nĠcl in\nĠhy p\nil er\nur a\nk ins\n8 5\n6 1\nĠThe ir\nĠM ary\nĠs an\nĠno vel\nĠWh o\nĠcap acity\nĠimp ossible\nĠpl ays\nĠmin ister\nij uana\nic ate\nĠS et\nĠf ram\nĠ ing\nĠcommun ities\nĠF BI\nit a\nĠb on\nĠstr ateg\nĠinterest s\nl ock\ng ers\nm as\nĠAN D\nĠconflic t\nĠrequire ments\nĠs ac\nĠoper ating\nin i\nrel ated\nĠcomm itted\nĠrelative ly\nĠs outh\nÂ¯ Â¯\nĠaff ord\nĠident ity\nĠdec isions\nĠacc used\npl ace\nĠvict ory\no ch\ni at\nN ame\nC om\nt ion\ned s\nĠsee k\nĠt ight\nĠIm ages\nĠinit i\nĠhum ans\nĠfam iliar\nĠaud ience\nĠintern al\nvent ure\nĠs ides\nĠT O\nĠd im\nĠcon clud\nĠapp oint\nĠenforce ment\nĠJ im\nĠAssoci ation\nĠcircum st\nĠCanad ian\nĠjo ined\nĠdiffere nces\nĠL os\nĠprot est\nĠtw ice\nw in\nĠgl ass\nars h\nĠAr my\nĠexp ression\nĠdec ide\nĠplan ning\nan ia\nĠhand le\nĠMicro soft\nĠN or\nĠmax imum\nĠRe v\nĠse a\nĠev al\nĠhel ps\nre f\nĠb ound\nĠm outh\nĠstand ards\nĠcl im\nĠC amp\nĠF ox\ncl es\nĠar my\nĠTe chn\nack ing\nx y\nS S\nĠ4 2\nĠbu g\nĠUk rain\nĠM ax\nĠJ ones\nĠSh ow\nl o\nĠplan et\nĠ7 5\nĠwin ning\nĠf aster\nĠspe ct\nĠbro ken\nT R\nĠdef ined\nĠhealth y\nĠcompet ition\nhtt ps\nĠIs land\nĠF e\nĠannoun ce\nĠC up\nĠInst ead\nĠcl ient\nĠposs ibly\nse ction\nock et\nl ook\nĠfin ish\nĠcre w\nĠres erv\nĠed itor\nĠh ate\nĠs ale\nĠcontro vers\nĠp ages\nw ing\nĠnum er\nĠopp osition\nĠ200 4\nĠref uge\nĠfl ight\nĠap art\nĠL at\nA meric\nĠAfric a\nĠapplic ations\nĠPal est\nĠB ur\nĠg ar\nĠSoc ial\nĠup gr\nĠsh ape\nĠspe aking\nans ion\na o\nĠS n\nĠwor ry\nĠBrit ain\nP lease\nrou d\nĠh un\nĠintrodu ced\nĠd iet\nI nd\nĠSec ond\nĠfun ctions\nut s\nĠE ach\nĠJe ff\nĠst ress\nĠaccount s\nĠgu arant\nĠAn n\ned ia\nĠhon est\nĠt ree\nĠAfric an\nĠB ush\n} ,\nĠs ch\nĠOn ly\nĠf if\nig an\nĠexerc ise\nĠEx p\nĠscient ists\nĠlegisl ation\nĠW ork\nĠS pr\nÃ Ĥ\nĠH uman\nĠ è\nĠsur vey\nĠr ich\nri p\nĠmain tain\nĠfl o\nĠleaders hip\nst ream\nĠIslam ic\nĠ 01\nĠCol lege\nĠmag ic\nĠPr ime\nĠfig ures\n201 7\nind er\nx ual\nĠDe ad\nĠabsolute ly\nĠfour th\nĠpresent ed\nresp ond\nrib le\nĠal cohol\nat o\nĠD E\npor ary\nĠgr ab\nĠvar i\nĠqu ant\nĠPh oto\nĠpl us\nr ick\nar ks\nĠaltern ative\nĠp il\nĠappro x\nth at\nĠobject s\nĠR o\nĠAnd roid\nĠsignificant ly\nĠR oad\nk ay\nR ead\nav or\nĠa cknow\nĠH D\nĠS ing\nO r\nĠM ont\nĠun s\npro f\nĠneg oti\nĠAr ch\nik i\nĠte levision\nĠJew ish\nĠcomm ittee\nĠmot or\nĠappear ance\nĠs itting\nĠstri ke\nĠD own\ncom p\nĠH ist\nĠf old\nac ement\nĠLou is\nĠbel ong\nĠâĢ ¢\nĠm ort\nĠprep ared\nĠ6 4\nĠM aster\nĠind eed\nĠD en\nĠre nt\nT A\nour ney\nar c\nS u\n9 7\nĠadv ice\nĠchang ing\nĠlist ed\nĠlaun ched\nis ation\nĠP eter\nis hes\nĠl ived\nĠM el\nĠSup reme\nĠF ederal\nĠ) ;\nruct ure\nĠset s\nĠphil os\nu ous\nĠÂ ł\nĠappl ied\nĠN OT\nĠhous ing\nĠM ount\nĠo dd\nĠsu st\nD A\nffic ient\nĠ ?\nol ved\nĠp owers\nĠth r\nĠrem aining\nĠW ater\nL C\nĠca uses\nãģ ®\nĠman ner\nad s\nĠsuggest s\nĠend s\nstand ing\nf ig\nĠD un\nid th\nĠg ay\nĠter min\nĠAngel es\nM S\nĠscient ific\nĠco al\nap ers\nb ar\nĠThom as\nĠsy m\nĠR un\nth is\nP C\nigr ants\nĠmin ute\nĠDist rict\ncell ent\nĠle aves\nĠcomple ted\nam in\nĠfoc used\nĠmon itor\nĠveh icles\nM A\nĠM ass\nĠGr and\nĠaffect ed\nitution al\nĠconst ruct\nĠfollow s\nĠt on\nre ens\nĠh omes\nĠE xt\nĠLe vel\nr ast\nĠI r\nĠel im\nĠlarge ly\nĠJ oe\nĠvot es\nall s\nĠbusiness es\nĠFound ation\nĠCent ral\nĠy ards\nĠmaterial s\nul ner\nĠgu ide\nĠclos er\num s\nĠsp orts\ned er\nJ ust\nĠtax es\n8 4\nĠO ld\nĠdec ade\nol a\nĠv ir\nĠdro pped\nĠdel ay\nit ect\nĠsec ure\nste in\nle vel\nĠtre ated\nĠfil ed\nain e\nĠv an\nĠm ir\nĠcol umn\nict ed\ne per\nĠro t\nĠcons ult\nĠent ry\nĠmar ijuana\nĠD ou\nĠapparent ly\nok ing\nclus ive\nĠincre ases\nan o\nĠspecific ally\nĠte le\nens ions\nĠrelig ion\nab ilities\nĠfr ame\nĠN ote\nĠLe e\nĠhelp ing\nĠed ge\nost on\nĠorgan izations\nÃ ĥ\nĠB oth\nhip s\nĠbig ger\nĠbo ost\nĠSt and\nĠro w\nul s\nab ase\nĠr id\nL et\nare n\nra ve\nĠst ret\nP D\nĠv ision\nĠwe aring\nĠappre ci\nĠa ward\nĠU se\nĠfact or\nw ar\nul ations\n) (\nĠg od\nĠter rit\nĠpar am\nast s\n8 7\nĠen emies\nĠG ames\nF F\nĠacc ident\nW ell\nĠMart in\nT ER\nĠat h\nĠHe ll\nĠfor g\nĠve ter\nĠMed ic\nf ree\nĠst ars\nĠexp ensive\nĠac ad\nra wn\nĠW he\nĠl ock\nĠform at\nĠsold iers\ns m\nĠag ent\nĠrespons ibility\nor a\nĠS cience\nĠrap id\nĠt ough\nĠJes us\nĠbelie ves\nM L\nĠwe ar\nle te\nÃĥ ÃĤ\nĠD ri\nĠcomm ission\nĠB ob\nO h\nap ed\nĠwar m\nÃĥÃĤ ÃĥÃĤ\nĠ200 3\nort ion\nĠhas n\nust er\nĠun ivers\nĠI ll\nĠk ing\nolog ies\n9 4\nĠT em\nĠM os\nĠpat ient\nĠMex ico\nce an\nĠDe ath\nĠSand ers\ny ou\nĠC ast\nĠComp any\npt y\nĠhappen ing\nF P\nĠB attle\nĠb ought\nA m\nM od\nU s\nut ers\nĠC re\nĠTh ose\nĠ4 4\nis er\nĠs oul\nĠT op\nĠHar ry\nĠA w\nĠse at\nff ee\nĠrev olution\nĠ( \"\nĠD uring\net te\nĠr ing\nĠoff ensive\nĠreturn s\nĠv ideos\nĠdis cl\nĠfam ous\nen ced\nĠS ign\nĠR iver\nĠ3 00\nP M\nĠB us\nĠC H\nĠcandid ates\nard en\nĠpercent age\nĠvis ual\nĠthan k\nĠtrou ble\nner gy\nĠ200 1\nĠpro ve\nash ion\nĠen h\nĠL ong\nU M\nĠconnect ed\nĠposs ibility\nO ver\nĠexper t\nĠl ibrary\nart s\nĠDirect or\nĠfell ow\n9 2\nir ty\nĠd ry\nĠsign s\nĠL ove\nĠqu iet\nf oot\nĠp ure\nĠH un\nĠf illed\nph as\nĠE lect\nend ment\nĠEx pl\nĠun able\nn s\nm o\nĠv ast\nob e\nĠident ify\napp ing\nĠCarol ina\ng ress\nĠpro te\nĠf ish\nĠcircumst ances\nraz y\nĠPh ot\nĠb odies\nĠM ur\nĠdevelop ing\nĠA R\nĠexperien ced\nĠsubst ant\nĠBo ard\nes ome\nĠdom estic\nĠcomb ined\nĠP ut\nĠchem ical\nĠCh ild\nĠpo ol\nĠC y\nĠe gg\nc ons\nst ers\nĠh urt\nĠmark ets\nĠconserv ative\nĠsupp orters\nĠag encies\nid el\nO b\nur b\nĠ4 3\nĠDef ense\ny e\nĠA p\ndu le\nĠtemper ature\nĠconduct ed\nĠCh ief\nĠpull ed\nĠf ol\nL ast\nont o\nos is\nV ER\nD es\nĠP an\nF irst\nĠadv ance\nĠlic ense\nr ors\nĠJ on\nĠimag ine\nĠhe ll\nĠf ixed\nĠinc or\nos ite\nĠL og\nick en\n] :\nĠsurpr ise\nh ab\nĠc raft\nol t\nĠJ ul\nĠd ial\nĠrele vant\nĠent ered\nĠlead s\nĠA D\nĠCle an\nĠpict ures\ness or\nĠal t\nĠpay ing\nP er\nĠMark et\nĠupd ates\nam ily\nĠT ype\nĠH ome\nĠ5 5\nsemb ly\nrom e\n8 3\nĠgreat est\nĠhe ight\nĠhe av\nain ts\nĠlist en\nas er\nĠS H\nĠcap able\nac le\nĠpers pect\nin ating\nĠoff ering\nry pt\nĠDe velop\nab in\nr c\nĠbr ight\nal ty\nar row\nĠsupp l\nind ing\nack ed\ngy pt\nĠAn other\np g\nĠVirgin ia\nĠL u\nĠpl anned\nĠp it\nĠswe et\nT ype\nĠD i\nĠtyp ically\nĠFranc isco\nĠpro spect\nĠD an\nĠte en\nre es\nĠsc hed\nĠh ol\nĠsc r\nĠlot s\nl ife\nĠnews p\nĠfor get\nĠN one\nĠM iddle\nĠR yan\ned d\nĠse vere\nĠsu it\nll er\n9 3\nĠcor respond\nĠexpl os\nu ations\nĠfl ag\ng ame\nr id\nĠpr in\nĠD ata\nĠde ploy\nĠEn ter\nsu it\ngh an\nĠM en\nĠthough ts\nĠmat ters\nĠad apt\nĠA ri\nĠf ill\nĠfor th\nĠs am\nĠ4 1\nĠpay ment\nĠH or\nĠsp ring\ndu c\nĠl osing\nĠbring ing\nF O\nal a\nĠdist ribution\nhe red\nb our\nĠIsrael i\nom a\nĠcomb ination\nĠpl enty\nV E\nC an\nĠH aw\nĠper man\nĠSpe cial\nĠto w\nĠsee king\nĠexam ples\nĠclass es\nc r\nĠbe er\nĠmov es\nĠI P\nĠK n\nĠpan el\nE ven\nĠproper ly\nĠr is\nĠpl ug\nĠestim ated\nE very\nĠdef ensive\nag raph\nĠpre gn\nĠinst it\nĠV ict\nĠvol ume\nĠpos itions\nĠl inks\nĠPro gram\nĠWe ek\nag ues\nĠtrans form\nk er\nĠC EO\nĠc as\nĠopp onent\nĠtwe et\nĠC ode\nĠsh op\nĠf ly\nĠtal ks\nĠb ag\nPh one\nĠa id\nĠpl ants\nĠ6 5\nĠatt orney\nar ters\nqu est\nĠMag ic\nĠbeg ins\nĠmy ster\nĠenvironment al\nĠst orage\nN N\nĠm arg\nĠs ke\nĠmet al\nell y\nĠord ered\nĠrem ained\nĠl oved\nĠprom pt\nĠupd ated\nĠexper ts\nĠwalk ing\nĠan cient\nĠperform ed\nAT E\nĠne ither\ni ency\nĠmanufact ure\nĠP ak\nĠselect ed\nĠm ine\nĠult imately\nĠexpl an\nĠlab el\nĠServ ices\nribut ed\nTr ump\nĠsy n\nĠU lt\nS C\nĠme at\nĠg iant\nĠW ars\nĠO N\nĠad m\nĠinter pret\nĠeven ing\nĠev il\nĠB oston\nĠW ild\nĠ Ã\nĠBit coin\nĠAm azon\nD r\nĠIn formation\nĠobvious ly\nĠadv anced\nPh oto\nol ar\nĠwe ather\nĠsymb ol\nĠso le\nĠpot entially\nost er\nĠorig inally\nm un\n3 00\naz e\ness ions\nĠde ck\nĠst ood\nĠyou th\nĠB ern\nR ep\nĠT est\nĠbas ically\not ic\nĠinvol ve\nol it\nly n\nS ee\nĠair craft\nĠconf irm\nE W\nĠmess ages\nĠRich ard\nĠk it\nĠpro hib\nĠv ulner\nis ters\nĠexist ence\nĠturn ing\nĠS P\nĠdes ire\nĠfl at\nĠm ent\nse ason\nang es\nĠneighbor hood\nĠL ake\nAT ION\nĠpoint ed\nb ur\nĠinn ov\nuc ks\nU L\nĠprofess or\nĠexp ressed\nA B\nic ious\nĠ200 2\nĠDe v\nĠs ession\nĠb are\ns en\nĠdis s\nĠC ath\nĠP ass\nĠP oint\nĠdo ctor\nor row\nail ed\nĠR ub\nĠD C\nĠChar l\np erson\nĠwrit er\nigh ters\nure au\nĠob lig\nĠrecord ed\nĠbro ke\nĠord ers\nil ty\nĠmot ion\nin ity\nl aw\nad ium\nĠimm igration\nĠcontr ast\nĠb att\nĠex cellent\nĠtechn ical\nam i\nĠt un\nĠcl oud\nĠY ear\nge on\nĠcre ation\nĠstr ange\nĠa uth\nĠfor t\nb orn\nĠext ent\nĠT oday\nĠCl ub\nĠr ain\nĠs ample\nĠaccept ed\nĠt act\nĠf ired\nĠS on\nĠstand s\nĠb oot\nĠ4 7\nĠstat ements\nĠvers ions\nĠse lling\nound ed\nĠ199 0\nĠwere n\nĠW atch\nĠexper iment\nP ost\nĠret ail\nul ed\nIn st\nun te\nãĥ ¼\nĠdep art\nĠb ond\ni very\nom pl\nĠre action\nĠSyri an\nĠP ac\napp ed\nani el\nD P\nĠres olution\nĠre act\nĠappro ved\non om\nm ond\nĠO ffic\n-- -\nĠrepl ace\nĠt ack\nĠsp ort\nĠch ain\nĠemer gency\nr ad\nĠPalest in\nĠ4 6\nĠautom atically\nĠrout e\nĠp al\nĠb anks\nĠPar is\nĠMed ia\nro ad\nic ing\ni xt\nist ed\nĠg rew\nĠco ord\nĠW here\nom in\nĠsub s\nï¿½ ï¿½\nĠÂ ±\nĠcorpor ate\nĠse lection\nn oon\nĠRep ort\nc s\nclud ing\nord ers\nanc he\nĠIt s\nĠslow ly\nĠE gypt\nĠA cc\nĠcol le\niqu es\nE X\nĠattempt s\nur l\nĠC ross\nĠfind ings\nĠS C\nĠO R\nĠind ex\nens ity\nĠW ay\nĠL and\nĠsh ock\nd is\nĠd ynam\nĠc art\nm osp\nS ince\ni est\nĠB oy\nĠst orm\nĠCont in\n201 3\nhe w\nil it\nĠess ential\niqu id\nO ther\nive red\nĠreason able\nA ct\nĠsub sequ\nĠP ack\nĠF ort\nĠconsider ing\nĠun iversity\nl og\nĠmar ried\nĠill ust\nĠTr ue\n£ ı\nĠnumer ous\nrast ructure\nĠserious ly\nĠrefer red\nu a\nĠconsist ent\non na\nĠRe al\nru ption\nci ples\nĠfact s\n9 1\not es\ner g\nThe n\nĠacc ompl\nN ote\nĠre venue\nĠpass ing\nĠm al\ne en\nĠY et\nĠg ather\nter day\new ork\nĠA uthor\nP e\nĠopt im\nĠr ub\nĠè £ı\nĠun known\nst one\nĠun ion\nol ve\nĠopportun ities\nĠbrow ser\nĠW al\nĠC ost\nĠreport ing\nst s\np et\nĠs and\nĠsudden ly\nĠsurpr ising\nĠV R\nĠsomew hat\nĠB as\nult ure\niz z\nĠC D\nĠchalleng es\nĠsett ings\nĠexperien ces\nĠF ull\nĠcan n\nĠrece iving\nES T\nĠj oint\nĠcult ural\nĠa st\n8 2\nas tern\nce ived\nĠC ru\nĠb ull\np ired\nam m\nĠfac ing\np ower\nĠb oss\nĠH ol\nĠinst r\nĠincreasing ly\nĠsh ift\nĠstre ets\nĠWilliam s\nab b\nĠl ie\nĠl augh\nĠC a\nP L\nĠadult s\nĠcustom er\nĠob tained\nĠsupport ing\nht ml\nf ire\nĠdetail ed\nĠpick ed\nĠR ight\nld er\nE E\nst ood\nĠK im\nĠw ire\nĠs ight\nĠdevelop ers\nĠpers ons\nĠs ad\nĠc up\nĠwar ning\nĠboy s\nl ong\nĠb ird\nf o\nĠw al\nĠobserv ed\nĠz one\niven ess\nĠch annel\nc ript\nĠref used\nĠAg ain\nĠsu c\nĠspokes man\nĠRe f\nr ite\nou ston\nãĥ ³\nĠS her\nĠact s\nĠN ame\nĠstrugg le\nar ry\nomet imes\nĠdisc rim\nH T\nĠcateg ory\nĠreal ize\nĠemploy ee\nĠAf ghan\nen ger\nĠgun s\nĠSte ve\nĠM ot\nĠO l\nok ed\nĠth ick\nĠfair ly\nill y\nĠsur ve\nĠM at\nwe ight\nâ Ķ\nĠtro ops\nĠag ents\nĠbatter y\nĠmot iv\nÃ ¡\nS ec\nd en\no very\nL S\nĠfl u\nĠconf ident\nĠO per\nĠem pty\nĠp hen\nĠse ctor\nĠexc ited\nĠrem ote\nap h\no en\nĠdestroy ed\nĠmor al\nĠH P\nĠR on\nĠd ress\nĠB at\nĠl it\nĠM S\nĠa f\nH L\nr um\nis ms\nĠshould n\nĠsym pt\nĠTor onto\nhet ic\nĠcar bon\nĠinstall ed\nĠviol ent\nĠsol ar\nj a\nĠpract ices\nĠr ide\nĠP enn\nĠimpro ved\nĠaud io\nĠbehav i\nĠP S\nĠe ating\nD ata\nĠRe view\np ass\ncl aim\nu ated\nang ers\nc hen\nĠproper ties\nĠany where\nAn other\nĠbl ow\nĠJack son\nĠp roud\nĠplan e\nl ines\nĠsqu are\nĠpro of\nans as\nĠtalk ed\nm akers\nĠs ister\nĠhold s\nĠres ident\nĠ= =\nĠresist ance\nĠspl it\nĠpro secut\nĠconf idence\nres ents\nĠcut s\nĠexcept ion\nĠz ero\nGet ty\nĠcop yright\nĠtot ally\norm al\nific ations\nĠAustral ian\nĠs ick\nĠ1 50\nĠhouse hold\nĠfe es\nĠdri vers\nog en\nĠN Y\nĠnecess arily\nĠregul ations\near ing\ns l\nĠperspect ive\nc are\nic ial\nH is\nĠesc ape\nĠsurpr ised\nĠV an\nur rent\nĠv ac\n8 1\nĠTh us\nĠem phas\nĠCh ampions\nĠI ce\nĠn arr\nĠhead s\nĠca using\nb el\nf ortunately\nĠM a\nĠtarg ets\nci pl\nĠafter noon\nĠadd s\nĠMay be\nĠF our\ness ed\nple te\nĠus ual\nch o\ning u\nĠwith d\nĠE nergy\nĠE conom\nO O\nĠart icles\nĠinj ured\nĠman age\nĠexpl ains\nĠdi agn\nR ec\nat ures\nĠlink ed\nĠdiscuss ed\nĠexpl o\nĠocc asion\nath an\nĠopp osite\nĠfac es\nĠden ied\nĠK night\nĠn ut\nĠapprox imately\nĠdisapp oint\nonym ous\nĠB est\nĠL o\nĠH y\nĠA ff\nĠvot ing\nan while\nĠII I\nĠinstit utions\nag ram\nĠD aily\nĠdr ag\nĠnear by\nĠgu ilty\nĠcon ver\nP re\ns hip\nĠre ward\nĠphilos oph\nĠS S\nu gh\nĠapp s\nf riend\nĠu pper\nĠad vert\nĠs now\nĠfr ust\nĠour selves\nF r\nĠD ie\namp ion\nĠdis miss\nĠc ere\nĠsign al\nf rom\nĠ ).\nĠ5 2\nĠcr imes\nit ors\nest ival\nuse um\nĠcoun cil\nĠS aud\nM ay\nĠG un\nic ian\net her\nĠsu fficient\nĠH en\nso le\nĠhistor ical\nĠF ar\nĠT urn\nĠp in\nĠsuc ceed\nm at\nly mp\nĠtrad ition\nĠO k\nĠc ro\nĠdesc ription\nal le\nĠsk y\nT e\nĠwide ly\nĠw ave\nĠdefin ition\nĠJew s\nĠcy cle\nĠref ere\nĠbr ings\nus al\nĠal ive\nĠfrequ ently\nĠint ention\nĠCont rol\nl v\ny stem\nĠpriv acy\ng ent\nren ce\nĠQu est\nĠChrist mas\nĠr ail\nĠco oper\nĠtest ed\nĠC apt\nas ks\nĠcomfort able\nĠdel ivered\nsc ape\nĠdep th\nĠG OP\nĠwrit es\nĠass ets\nĠsa v\nim ents\nĠtrans ition\nĠart ist\nĠL ook\nĠl ob\nĠcomp onents\nar ity\nĠwalk ed\nĠro ot\nĠparticip ants\nĠnot iced\nĠres c\nĠn av\nĠAd minist\nd a\nut ral\npl ate\nĠimport ance\nĠass ert\nious ly\nc ription\nĠinj uries\nĠChe ck\nĠregist ered\nĠint ent\nĠmiss ed\nograph ic\nĠsent ence\noun ter\nĠassist ance\nev in\nĠdat abase\nĠbuild ings\nĠclass ic\nĠth inks\nĠOh io\nP r\nug g\nĠfe e\np an\nĠeffect ively\nĠfac ility\nĠbe ar\nĠch apter\nĠdog s\nĠCol umb\nĠl atter\nit ial\nĠad mitted\nT V\nĠGe org\nĠpost s\n\\ \\\nĠlawy er\nĠequ ival\nĠm and\nĠcontro lled\nĠW alk\nĠAnd rew\nĠmen u\nam ental\nĠprotect ed\nv a\nĠadminist r\nor al\nĠre in\nĠS ar\nĠamount s\nĠn ative\nĠM oon\nĠrep resents\nĠab andon\nĠcarry ing\nĠt ank\nm ary\nĠdecl ared\nT ube\nĠh at\nĠpun ish\nel lect\nm es\nĠun iverse\nĠR od\nph y\nĠinf rastructure\nĠ5 1\nĠopp osed\now nt\nc a\nĠM ake\nĠhard ware\nĠco ffee\nR el\nb al\nw orld\nĠS af\nĠSe a\nin als\nĠown ed\nĠh all\ners ion\nĠdescrib e\nĠP ot\nĠport ion\nĠat mosp\nĠgovern ments\nĠdep ending\nĠoff ense\nĠtr ick\naw a\nĠL ine\nĠV is\nĠH ard\nĠOr ig\nĠCl ick\nĠdes k\nĠVal ley\nĠS ov\nĠmov ies\nĠrem ark\nĠm ail\nĠcons cious\nĠrul ing\nĠR ights\nĠmed ic\nhe nt\nĠW omen\n> <\nĠrepl aced\nĠP rem\nĠTh anks\nĠre new\nĠB all\nif orm\nĠsh ots\nC omm\nĠar med\nĠconst ant\nĠt aste\nĠreal ized\nĠbu ff\nĠm o\nĠeffic ient\nM ost\nor ation\nif ies\nĠcommun ication\nĠfl ood\nĠconsequ ences\nĠany way\nig g\nĠG M\nĠTh ank\nĠ iron\nĠev olution\nĠC op\ntw itter\nĠ9 5\nĠrelationship s\nad el\nĠYou ng\nĠpropos al\nay ers\nuild ing\nĠH ot\nOR E\nc os\nĠcoll abor\nP G\nax y\nĠknow ing\nĠsupport s\now ed\nĠcontrol s\nĠmere ly\num er\nĠath let\nĠf ashion\np ath\nĠg ift\nĠer a\nAN D\nĠkind s\nĠKore an\nĠleg it\nul ous\nĠess entially\nĠthe rap\nn ic\nĠsuff ered\nĠh ur\nĠprom ise\nĠex cess\nĠover w\nĠpr ime\nĠH ouston\ner ry\nĠM s\nR S\n201 2\nĠst ores\nĠO lymp\nĠj ourney\nAl though\nS ub\nĠE duc\nĠCh apter\nĠrequest s\nĠconsum ers\nĠt iny\nĠis ol\nĠF air\nb a\nĠY OU\nĠcr ash\nce ler\nĠemot ional\nĠgood s\nĠelect ed\nĠmod er\nĠLin ux\nĠbl ocks\nĠis land\nĠSoc iety\nĠelect ions\nĠbroad cast\nĠche ap\nĠn ations\nĠse asons\n4 00\nĠwas te\nĠS at\nĠfield s\nem ploy\nĠprof ile\nĠauth ors\nAL L\nĠG ra\nw est\nĠT y\nĠdeath s\nĠv acc\nĠfor med\nĠd u\nĠon going\nĠMuslim s\nel f\nig ure\nĠass ume\nĠUkrain e\nw ater\nĠco ast\nĠvot ed\ng or\nĠA S\nĠMich igan\naz a\nĠAr m\ni ro\nĠf lex\nas ters\n' '\nĠwel come\nar l\nĠloc ations\nig ation\nĠF il\nĠbu ying\nĠarch itect\nĠhard er\nĠC ub\nĠinter face\nĠrestaur ant\nĠdisco ver\nĠex ceed\nĠfav our\nger y\nĠd uty\nĠp itch\nad or\nĠM ach\nb oy\nĠrespond ed\nĠext ended\nher s\nM any\nra id\nif er\nĠIn s\nS er\nĠmed ium\ns he\nĠS ports\nĠmag azine\nut ation\nĠlim its\nĠG all\nĠex ternal\nraz il\nĠyoung er\nt le\nĠrem ind\nĠC ON\nĠimmedi ate\nĠh idden\nĠvol unte\nĠsim pl\nod cast\nĠph ase\nd r\nĠpl ot\nĠexp osure\nR I\nog rap\nv in\nan ish\nĠAc ad\nĠEng ine\nĠexp ansion\nĠP ay\nY our\nĠpus hed\nĠE ll\nĠHe ad\nĠmarket ing\nĠA C\nk et\nĠh its\nĠg ro\nĠA ge\nĠSc ot\n] [\nĠst im\nĠi Phone\nĪ Ĵ\nĠn arrow\nĠGet ty\nĠTur key\nĠperfect ly\nĠen able\nut ch\nĠprec ise\nĠreg ime\nĠsh if\nĠcomp ens\ng un\nd iv\nĠch osen\nĠK en\nAn y\nĠtre es\nĠrecomm ended\nĠR en\nu able\nĠH T\nF ollow\nE G\nĠH and\nĠK enn\nĠarg uments\nĠex ists\nĠb ike\nĠCons erv\nĠbre aking\nĠG ar\nĠc razy\nĠvirt ual\nay lor\nix el\nĠ19 80\nĠper mission\nĠSer ies\nĠconsum er\nĠclose ly\nc alled\nĠ5 4\nĠhop es\nĠar ray\nĠW in\nĠLab our\nĠsp ons\nĠI re\nĠp ow\nĠread ers\nĠemploy ment\nĠcreat ure\nĠresult ing\nĠaccur ate\nĠmom ents\nĠarg ued\nĠp ed\nD uring\nĠ5 3\nĠT al\nĠs ought\nĠsuff ering\nĠ icon\nle e\nĠ( $\nal ian\nÂ °\nĠp ra\nĠbon us\n( \"\nk o\nĠact ing\nD E\nf all\nĠcompar ison\nĠsm ooth\nĠN AS\nu pp\nĠJose ph\nep ing\nĠT ake\nĠM id\nĠs ending\nf ast\nĠF all\nĠdeal ing\nus er\nĠOr gan\nC o\nĠatt ached\nĠse es\n% .\nĠtyp ical\nAR T\nĠfind s\nĠAs ia\num in\nĠC ore\nĠE nt\nin ent\nu ce\nĠBl ood\nĠN ever\nĠem ails\nĠhigh light\nĠconf ront\nat us\nut ed\nĠun us\nĠtop ic\nĠAd am\nĠb le\nat i\nĠunder stood\nS et\nst ruct\nT P\nĠm ob\na a\nĠSt art\npect ed\nse ll\nĠded icated\nĠC A\nu an\nĠsong s\nesc ription\nĠte ch\nĠr ape\nĠas ide\nĠgr ant\nĠ5 6\ns ub\nĠarg ue\nĠcont aining\nĠsche dule\nĠliber al\nĠpublic ly\nĠheav ily\nĠU t\nin er\nĠS ection\nĠC are\nwe et\nl s\nD is\nâĶ Ģ\nĠF ollow\nB ack\nĠI T\nĠb es\nj i\nĠH it\nest ed\nĠevery body\nĠSw ed\nĠfem in\nĠfac ilities\nĠcon ven\nC omp\nĠO S\nc ore\nĠan x\nĠdiv ision\nĠC am\nĠSt an\nm ates\nĠexpl ore\npl om\nĠsh ares\npl oad\nan es\nĠide al\net ers\nĠB ase\nĠpl astic\nĠdist inct\nĠNet work\nĠSe attle\nĠtrad ing\nens us\nint end\nĠex hib\nĠinit ially\nĠF ood\nĠthous and\nĠBus iness\nact er\nĠpar agraph\nĠrough ly\nĠw ww\nĠcreat ive\nĠCon f\nĠconsum ption\nĠfil ms\nag an\nĠob tain\nĠt all\nĠt or\nĠacknow led\nĠg rown\nal o\nK E\nĠ4 00\nend ers\nt aining\nU G\nĠsu icide\nĠwat ched\nĠL ist\nal i\nre hens\nĠsurround ing\nĠp ip\nĠf lying\nĠJ ava\nord an\nĠserv ing\nin ations\np ost\nĠsh o\nA v\nĠj ail\nz y\nĠ199 9\nĠ< /\nĠliter ally\nĠS ir\nĠexp osed\nĠl ies\nst ar\nĠb at\nĠear ned\nĠD ig\nĠspec ified\nĠSe ason\nĠdeg rees\nDon ald\nĠcent re\nĠsh aring\nĠwin ter\nĠC O\nC he\nĠ Î\nM P\nĠun w\nĠfew er\nĠM ir\nĠsomew here\nĠK ey\nĠattack ed\nĠK ir\nĠdom ain\nĠstrong er\nĠ9 9\nĠpen alty\nI d\nSc ript\nĠdecl ined\nĠne ck\nĠfra ud\nĠcur rency\nĠr ising\nR C\nâĢ¦ âĢ¦\nH z\nĠt ab\nĠtal ent\nn am\nĠN BA\nĠvill age\nĠleg s\nĠN ext\nE d\nĠac id\nĠhy d\n8 00\nĠinvol ving\nĠIm age\nĠBe fore\nF l\nĠyes terday\nS ource\nĠterror ist\nĠsu p\nĠsy nt\nĠSaud i\nĠw est\nĠr u\nb urg\nĠvis ible\nĠstru ck\nr ison\nĠaw esome\nĠd rawn\nĠansw ers\nĠG irl\nĠR am\nĠthreat s\nĠdef eat\nos it\nĠv ent\natur ally\nAmeric an\nend a\nĠH oly\nĠr um\n% ,\nc ase\nĠHist ory\nĠYou Tube\nĠsit uations\nĠD NA\nS te\nĠsa ved\nIt em\nĠrec ip\nolog ist\nĠfac ed\nĠel ig\nO nce\nĠL i\nu h\nĠmist ake\nĠDiv ision\nĠB ell\nĠsympt oms\nÂ ®\nĠdom in\nĠfall ing\nĠend ing\nas hes\nĠmat ches\nĠOn line\nĠexplan ation\nD ef\nred it\nĠany more\nĠT otal\nĠF OR\nus hed\nĠlet ters\nĠris ks\nĠO K\nĠreported ly\n: \\\nĠpl ate\nĠsubject s\nĠattempt ed\nif ier\nian a\nĠunlike ly\nĠTh ough\num a\nĠIn vest\nĠPr in\nic an\nĠD ar\nĠColor ado\nau g\nĠve get\na os\nri a\nĠshe l\nĠmark ed\nĠ( )\nĠsp r\np o\nĠL ink\nĠdef e\nĠJ r\nĠthem e\nĠpass ion\nĠP en\nĠinf o\niz er\nĠsh it\nĠC ivil\nap se\nc re\nĠpo ly\nĠcomp onent\nĠChar les\nĠIre land\nĠPro v\nĠdo ctors\nĠgr anted\nĠpain t\nĠhon or\nĠsm oke\nĠpay ments\nĠprim arily\nĠKing dom\nr ich\nate ll\nĠde als\nĠsched uled\nĠfund amental\nĠprote in\nĠnewsp aper\nĠcl ients\nyth on\nĠD ate\nh us\nĠfeed back\nĠstret ch\nĠc ock\nĠhot el\nĠQue en\nĠsu gar\nĠj u\nĠmil k\nĠappro val\nĠL ive\nĠequival ent\nef ully\nĠins ert\nz ona\nĠext ension\nd ri\nJ ohn\nĠacc omp\nS m\nĠF und\nĠconst antly\nĠ` `\nĠgener ated\nĠA ction\nĠP sych\nĠT ri\nĠrecogn ize\nĠv ary\nph a\nĠR a\nd f\net ch\nĠSov iet\nTw o\nĠpattern s\nĠprof ession\nan ing\nT ime\nĠL im\nĠcol ors\nĠA z\nĠT R\nĠinf ect\nĠphen omen\nĠshe ll\nAl so\nĠput s\nĠdel ivery\nĠbro wn\nĠprocess ing\nĠlight s\ness age\nĠBro ok\nĠA ud\nl ation\nĠindust rial\nL ike\nĠB razil\nrou s\nES S\nĠL uc\nĠsome how\nĠ8 5\nĠpro port\nĠpolit icians\nĠindic ate\nĠh ole\nĠtechn iques\nĠcompet itive\nĠph r\nĠv o\nist ent\nĠD ream\nĠcamp us\nĠaspect s\nĠhelp ful\nĠsh ield\nor se\nĠtrig ger\nm al\nĠ5 8\nĠt ort\nĠperson ally\nĠt ag\nĠkeep s\nĠV ideo\nĠben ch\nĠg ap\na ire\nĠe ast\nĠrec overy\nper ial\nĠprof it\nĠM ic\nĠ5 7\nĠcol on\nĠstrong ly\nst yle\nĠalleg ations\nh an\nĠrep orters\nj o\nr ine\narg et\nand al\nĠ0 3\nĠfl ash\ntr ans\nĠstr ict\nĠpark ing\nĠPak istan\nĠl i\nĠwe ird\nĠE ric\nĠreg ions\nĠJ un\nĠint ellect\nĠW H\nod ing\nrib utes\nup id\nĠT it\nĠf inger\nor ia\nĠe lev\nĠF ield\nĠcon clusion\n; ;\nĠfeel ings\nĠext ensive\nĠm ixed\nĠne uro\nv y\nĠhar ass\nĠC irc\nou ch\nĠterrit ory\nĠsuccess fully\nM ar\nĠing red\nĠoverw hel\nĠl ayer\nV iew\nĠall ies\nill ance\nĠTh ree\nĠb unch\nĠnorm ally\nĠnet works\nĠsac r\nĠC IA\nb les\nĠch ose\nĠopp onents\nĠregard less\nĠfr anch\nĠpre f\nĠP o\nĠbr idge\nann a\nĠSil ver\nĠw age\np age\nri or\nĠrad ical\nĠL ittle\nĠman ip\nĠsecret ary\nĠg ang\nD R\nF A\nĠdec ent\nĠSp irit\nĠun cle\nĠDevelop ment\nĠinvest ors\nĠwall s\nĠpub lish\nĠgener ate\niss ions\nc ar\nĠprom ote\nĠcut ting\nĠche st\nĠdrink ing\nĠcollect ed\nĠ7 2\nĠhop ing\nĠem br\ngor ith\nĠwar ned\nĠinstruct ions\nO G\nĠD id\nĠAg ency\nĠg ear\nĠcritic ism\nĠF urther\nĠut il\nann y\nR ed\nĠcoun sel\nĠAs ian\nĠredu ction\np ool\nĠteach ing\nĠdeep ly\ni y\nĠestim ates\nĠcho ices\nĠperman ent\nin em\nke l\nĠf asc\np se\nf ile\nĠL ow\nĠP erson\nĠt ournament\nst al\nĠm el\nU ST\nĠR ay\naz i\nV al\nĠcont ained\nĠH olly\nĠw ake\nĠreve al\nĠprocess es\nĠIS IS\nĠ0 9\nĠbl ind\nĠste el\nĠB ad\nĠcare fully\napp y\nro it\nĠg aming\nĠhous es\nĠC oll\nĠtr uck\ner m\nĠsc ored\nĠocc as\nret urn\nb ound\nv ar\nĠsh arp\nĠaf raid\nĠE X\nam ber\nc ific\nĠsche me\nN C\nĠPol it\nĠdecl ine\nĠ199 8\nĠpus hing\nĠposs ession\nĠpriv ile\nĠteacher s\nĠy ield\nH A\nĠDav is\nit led\n#### ####\nĠr ig\nĠD aniel\nac on\nĠh ide\nut en\nĠcolle agues\nĠprin ciples\nĠl oud\nĠs in\nĠDem on\nĠst one\nĠ0 2\nĠt aught\nĠter rible\nĠst uck\nĠPol icy\nte en\nĠimplement ation\nĠB BC\nĠAP I\nĠwhe el\nall as\nĠch ampions\nol ars\nplay er\nĠrepeated ly\nĠSt ill\nĠlik es\nast y\nes ter\nĠCath olic\nR L\nĠb ath\nĠno ise\nt itle\nĠn orthern\nP art\nĠmag n\nĠf ab\nĠAs h\nĠdis pl\nĠtick et\nĠm urd\nĠalong side\nĠMus ic\nĠr iver\nĠSte el\nĠC L\nĠPl ayer\nĠM ult\now ing\nre p\ns ize\nĠt ur\nĠGeorg ia\nisc al\nra ction\nĠc able\nĠ5 9\nĠw ins\nĠup coming\nĠsurv ive\nĠins pired\nĠEduc ation\nĠstat istics\nĠF oot\niam i\nĠy ellow\nĠP age\n. -\nĠH as\nĠur ban\nĠa x\nes sel\n\\ \"\nĠquarter back\nĠreg ister\nĠLab or\nĠab ilities\nĠF amily\nĠvar iable\nĠPr ice\nĠcont em\nĠth in\nĠE qu\nd ata\nĠg otten\nĠconst it\nĠas ks\nĠt ail\nĠexc iting\nĠE ffect\nĠSp anish\nĠencour age\nins on\nĠA h\nĠcommit ment\nC S\nĠr ally\nĠ: :\nĠsubs id\nĠsp in\nĠcapt ured\n201 8\nĠinn oc\nĠalleged ly\nĠC ome\nĠart ists\nĠN umber\nĠelect ronic\nĠreg ional\nap es\nĠw ra\nĠmy th\npr ise\nĠM iller\nĠC reat\nĠEp isode\nb ell\nĠdirect ed\nĠext ract\nĠs orry\nĠv ice\nag ger\nĠSu pport\nĠ6 6\nĠI ron\nĠwonder ful\nĠg ra\nN et\nion e\nE ng\nĠsh ips\nik es\nĠK evin\nit ar\nĠactiv ists\ntr ue\nĠAri zona\nent h\nĠDes pite\nĠS E\nĠha bit\nern el\nĠin qu\nĠab ortion\nĠv oid\nĠexpl icit\nĠeng aged\nĠang ry\nĠr ating\nĠfr ag\nb ro\nick ing\nd ev\nĠwor ried\nĠob ser\nĠap artment\nĠG T\nĠest ate\nĠConst itution\nem on\nĠS now\nĠcount y\nĠdis ag\nĠStep hen\nĠimm igrants\nw ind\nĠN ations\nĠfol ks\nO ut\nĠg all\nĠtarget ed\nĠst ead\nĠB on\nĠL ib\nĠinform ed\nĠ12 0\nch ain\nidel ines\nor ough\nĠdri ven\nĠregular ly\nĠbas ket\nĠprinc iple\noc ument\nĠst un\nib ilities\nĠRom an\nĠAb out\nĠal ert\nĠdemocr acy\nĠrepresent ed\nH S\nc ers\np arent\nAr t\np ack\nĠdi plom\nre ts\nĠN O\nĠcapt ure\nĠAd v\nĦ ¢\nĠannounce ment\nĠL ear\nĠh ook\nĠpur s\nĠS uch\nĠC amer\nĠrefuge es\nĠV e\nP ol\nĠrecogn ized\nl ib\nĠhad n\nA ss\nĠpil ot\nus hing\nĠreturn ing\nĠtra il\nĠSt one\nĠrout ine\nĠcour ts\nĠdes per\nĠfriend ly\nĠIt aly\nĠpl ed\nĠbreat h\nĠstud io\nN S\nĠimp ressive\nĠAfghan istan\nĠf ing\nĠd ownt\nink ing\nĠR og\ni ary\ncol or\nse x\nar on\nĠf ault\nĠN ick\nD own\nĠR ose\nĠS outhern\nX X\nis odes\nL ist\n6 00\nĠout come\ner r\nĠelse where\nĠret ire\nĠp ounds\nĠGl obal\nPe ople\nĠcommun ications\nĠlo an\nĠrat io\nĠEm pire\nĠg onna\nĠinv ent\nD F\nĠ19 70\nĠComm on\np at\nĠprom ised\nĠd inner\nĠH om\nĠcreat es\nĠoper ate\nver ty\nĠJ ordan\net ime\nĠsust ain\nR eg\nĠincred ible\nim a\nĠwar rant\nĠm m\nA tt\nĠlaw suit\nĠreview s\nit ure\nĠS ource\nl ights\nĠF ord\nĠ6 3\ng roup\nst ore\nĠfeat ured\nĠfore ver\nĠpo verty\nĠP op\nĠC NN\naz z\nab is\nach ing\nĠl aid\nĠSu pp\nĠfil ter\nen a\nĠCommun ity\nĠcreat ures\nu ction\nĠR oyal\nĠassoci ation\nĠCon nect\nĠBr ad\nâĸ Ī\nl ers\nthe re\nĠG i\nĠval uable\nAC K\nĠT aylor\nĠl iquid\nĠAtt orney\nĠCar l\nĠF inal\nag a\nĠWil son\nB ecause\nĠProf essor\nak a\nĠincred ibly\nr ance\n! )\nR ef\ns k\nĠsol utions\nĠatmosp here\nĠbl ame\num es\nĠN ob\nC A\num ps\nr ical\nĠPut in\nĠD est\nor ic\nĠP A\nĠrespect ively\nw an\nĠfif th\nâ Ħ¢\nĠC ry\nĠgovern or\nres ident\nĠpurch ased\nĠh ack\nĠint ense\nob s\nĠorig in\nĠdef ine\nĠcare ful\n** *\nĠshould er\nCl ick\nĠt ied\nĠdest ruction\nou red\nĠno body\nĠh o\nĠEx per\nĠt ip\n\" ;\nĠtechn ique\nĠj ur\nĠP ok\nb ow\nĠleg end\nĠacc ord\nĠbus y\nĠInt el\nĠh ang\nak i\n. ]\nâĢĶâĢĶ âĢĶâĢĶ\nĠsur gery\nĠrep rodu\nĠun iform\nĠscen es\nc ode\nĠ6 2\nl isher\nĠH ave\nph ia\nĠcry pt\nĠrec on\nĠsc ream\nĠadop ted\nĠsc ores\nN e\nĠIt alian\nin cluding\nB O\nĠindic ated\nĠent ertain\nG u\nT ext\ni el\nĠtw enty\nĠeng age\noff s\nĠPac ific\nĠsm ile\nĠperson nel\nĠto ler\nĠdo ors\nĠt one\nĠmach ines\nĠent ering\nten ance\nC O\nĠJer sey\nĠfore st\nĠhor se\nĠcompl aint\nĠSpr ing\ny o\nĠPl us\ned ing\nĠRet urn\nqu arters\nial s\nc ow\nĠacad emic\nĠf ruit\nĠ199 6\nog ether\nĠw ine\nĠpur su\nĠSte ven\nĠlic ens\nWh o\nĠclot hes\nre ction\nĠsqu ad\nĠst able\nĠr aw\nz ens\nSt ar\nut ies\nanc er\nĠke ys\nĠM u\nĠcompl icated\nig er\nĠTe xt\nĠabs or\nĠ6 8\nĠfun ny\nĠrel ief\nĠL ew\nĠC ook\nĠch art\nĠdraw ing\nG E\nĠmod ule\nĠB ull\nI LL\nĠs alt\n0000 0000\nil le\nĠres ource\naw ay\nadel phia\nĠB ru\nĠ6 7\nĠsome body\nĠparticip ate\nĠro se\nwe red\nĠmus cle\nĠcons ent\nĠcontin uing\nĠGuard ian\nĠOr der\nreg on\nĠre ar\nĠprov ision\nĠlik ed\nri ent\nĠb ra\nTr ans\nĠmeet ings\nĠto x\nĠcon vent\nĠaut o\nĠrec ording\nĠSo ft\n00 1\nĠR oll\nĠprogram ming\nĠp ic\nĠprov ed\nĠst ab\nĠA st\nĠca ption\nul ating\nĠAtt ack\nĠnew ly\nĠ199 7\nf r\nĠdis cipl\nĠGree k\nĠed ition\nĠDo es\nĠB ox\nif le\nack et\nĠpass es\nĠgu est\nĠac celer\nit als\nU D\nĠaut hent\nĠR est\nov al\nt a\nu ine\nĠarm or\nĠT own\nĠcomp at\nĠinc hes\nDes pite\nĠass ign\nhe rent\nĠprep are\nĠM eg\noc key\nĠdep ends\nĠtrack s\nw atch\nĠl ists\nĠN orthern\nĠal ter\nre c\nĠE astern\nĠcond em\nĠevery where\n? '\nĠaff ili\nĠf ought\n\": {\"\nĠm ac\nit arian\nĠsc ope\nĠA L\naw s\nar ms\nĠqu e\nĠenjoy ed\nnes ota\nĠagg ressive\nĠSt ory\nĠI V\nĠrec ipe\nĠrare ly\nĠMed ical\nval ue\nang el\nay ing\nomet hing\nĠsub section\nĠs outhern\nĠfrequ ency\nre te\nroll ed\nult s\nĠN ic\nĠbeh alf\nĠsequ ence\nab et\nĠcontrovers ial\nĠcomp rom\nĠwork er\nĠmain ly\nĠal gorith\nĠM ajor\nor ce\ng ender\nĠorgan ized\nĠf ake\nĠconclud ed\nĠE D\nĠEx ec\nr age\nĠch ances\nber ry\nĠTr ad\nĠconfig uration\nĠwithd raw\nĠf ro\nud es\nĠBro ther\nĠB rian\nĠtri es\nĠsam ples\nĠb id\nĠGold en\nĠphot ograph\nif est\nĠD O\nĠPar liament\n******** ********\nR em\nĠcont est\nĠsign ing\np x\nĠZ eal\nâĶĢ âĶĢ\nE ar\nĠex it\nBe fore\nĠCor por\nn ull\nmon th\nĠrac ial\nott ed\nĠV eg\nĠRe uters\nĠsw ord\nps on\nĠRom ney\na ed\nĠt rib\nĠin ner\nĠprot ocol\nĠB i\nĠM iami\never al\np ress\nĠsh ipping\nĠAm endment\nĠHow ard\ncon nect\nĠD isc\nĠJ ac\niam ond\nĠThere fore\ns es\nĠPrin cess\nĠUS B\nĠAn th\nĠsurve illance\nĠap olog\nĠ6 1\now a\nĠf ulf\nj s\nĠl uck\nust ed\nĠÂ §\nn i\nĠant icip\nem an\nĠwin ner\nĠsil ver\nll a\nic ity\nĠunus ual\nĠcr ack\nĠt ies\ne z\nĠpract ical\nĠprov ince\nĠPl ace\nĠprior ity\nIC E\nĠdescrib es\nĠbr anch\nF orm\nask a\nmiss ions\nb i\nĠp orn\nĠTur k\nĠent hus\nĠf ighters\nĠ0 8\nĠDet roit\nĠfound ation\nav id\nA re\nĠjud gment\ncl ing\nĠsol ve\nĠDes ign\nW here\nhes is\nĠT ro\na fter\nĠne utral\nĠPalestin ian\nĠHolly wood\nĠadv is\nĠN on\ny es\nol is\nĠrep utation\nĠsm ell\nĠb read\nĠB ul\nĠBe ach\nĠclaim ing\nĠgen etic\nĠtechn ologies\nĠupgr ade\nrow s\nĠdevelop er\nĠJ osh\nĠDis ney\nerv ed\nip al\nĠun ex\nĠbare ly\nt hen\nĠP ub\nĠill ness\net ary\nĠB al\nĠp atch\nĠbut t\nĠst upid\nĠD og\nĠD allas\nf ront\nie ce\nĠprot ests\nĠch at\noen ix\nĠw ing\nĠpar liament\nĠ7 7\nose xual\nĠre nder\npt ions\nĠCo ast\nos a\nĠG reg\nh op\nĠMan agement\nĠbit coin\nĠrec over\nĠincor por\nor ne\nĠUs ing\nĠpre ced\nĠthreat ened\nĠspirit ual\nĠE vent\nĠF red\nĠadvert ising\nĠimprove ments\nĠC ustom\nĠer rors\nĠsens itive\nĠN avy\nĠcre am\nL ook\nĠex clusive\nĠcomp rehens\nĠde leg\nĠcon ce\nĠrem em\nĠstruct ures\nĠst ored\nN D\nĠ1 000\nU P\nĠB udd\nA F\nw oman\nĠAcad emy\nð Ł\nse a\nĠtem porary\nAb out\nes ters\nĠtick ets\nĠposs ess\nin ch\no z\nĠl a\nĠcontract s\nĠun p\nĠc ig\nĠK at\nult ural\nas m\nĠmount ain\nĠCapt ain\nSt ep\nm aking\nĠSp ain\nĠequ ally\nĠl ands\nat ers\nĠreject ed\ner a\nim m\nri x\nC D\nĠtrans action\ng ener\nless ly\nĠ| |\nĠc os\nĠHen ry\nĠprov isions\nĠg ained\nĠdirect ory\nĠra ising\nĠS ep\nol en\nond er\nĠcon sole\nin st\nĠb om\nĠunc ertain\n1 50\nock ing\nĠmeas ured\nĠpl ain\nĠse ats\nĠd ict\nS L\naf e\nĠest imate\niz on\nat hered\nĠcontribut ed\nĠep isodes\nomm od\nG r\nAN T\nĠ6 9\nG ener\nĠ2 50\nvious ly\nrog en\nĠterror ism\nĠmove ments\nent le\noun ce\nĠS oul\nĠpre v\nĠT able\nact s\nri ors\nt ab\nĠsuff er\nĠn erv\nĠmain stream\nĠW olf\nĠfranch ise\nb at\nĠdem ands\nĠag enda\nĠdo zen\nĠclin ical\niz ard\nĠO p\nt d\nĠvis ited\nĠPer haps\nĠact or\nĠde lic\nĠcont ribute\nĠin ject\nĠE s\nac co\nĠlist ening\nĠcon gress\nepend ent\nĠprem ium\nĠ7 6\nĠIr ish\nĠass igned\nĠPh ys\nĠworld wide\nĠnarr ative\not ype\nm ont\nb ase\nĠB owl\nĠAdminist ration\nĠrel ation\nĠE V\nC P\nĠco vers\nĠ7 8\nĠcert ific\nĠgr ass\nĠ0 4\npir acy\nir a\nĠengine ering\nĠM ars\nĠun employ\nĠFore ign\nst ract\nĠv en\nĠst eal\nĠrepl ied\nĠult imate\nĠtit les\nd ated\nĠj oy\na us\nĠhy per\nak u\nĠoffic ially\nĠPro duct\nĠdifficult y\nper or\nĠresult ed\nrib ed\nl ink\nwh o\n~~ ~~\nĠSpe ed\nĠV iet\nW ind\nĠBar ack\nĠrestrict ions\nĠSh are\nĠ199 5\nition ally\nĠbeaut y\nop t\nĠm aps\nĠC R\nĠN ation\nĠCru z\nW ill\nĠelectric ity\nĠor g\nĠb urd\nĠviol ation\nĠus age\nĠper mit\nĠCh ron\nĠF ant\nĠn aturally\nĠ0 7\nĠth rown\nĠAw oken\nĠal ien\nĠHer o\nĠK ent\nĠR ick\nri ke\nĠp ace\n}, {\"\nG L\nĠpo ison\nĠT ower\nĠform al\nal ysis\nĠgen uine\nĠk il\na ver\nĠproced ure\nĠPro p\nintend o\nĠM ain\nas ant\nĠtr ained\nG ame\nĠL oad\nĠM A\nĠcru cial\nĠle ts\nĠF R\nĠch ampion\n1 01\nĠCon ference\nĠwrit ers\nĠconnect ions\nĠo kay\nir ms\nĠR and\nĠenc ounter\nĠB uff\nĠachie ved\nĠche cks\nisc ons\nĠassist ant\nĠwhen ever\nĠA ccess\nĠU r\nb in\nĠcl ock\nis p\nop her\nĠb orrow\nĠm ad\nĠperson ality\non ly\nIS T\nab ama\nĠg ains\nĠcommon ly\nĠter r\nĠhyp ot\nĠre ly\nĠt iss\niscons in\nĠrid ic\nf unction\nĠO regon\nĠun com\nr ating\nel and\nĠN C\nĠm oon\nann on\nĠvulner able\nut ive\nÂłÂł ÂłÂł\nĠRad io\nĠw estern\nse ct\nĠT ony\nĠocc urs\nĠO s\nĠH on\nÃ Ń\nĠv essel\nĠScot land\nĠdiscrim ination\nĠsubsequ ent\nst ring\nĠfant asy\nĠSh adow\nĠtest im\nW E\nit i\nr as\nĠbo at\nĠmar ks\nĠord inary\nĠre n\nĠrepresent ative\nĠpet ition\nĠ7 3\nĠad venture\nĠign ore\nĠPhil adelphia\nĠS av\nV P\nĠfact ory\nĠt asks\nĠdep ression\nz ed\n................ ................\nĠSt orm\nĠc ogn\nĠelig ible\nĠredu cing\nv ia\nĠ0 5\nĠstri king\nĠdoll ar\nh o\nO V\nĠinstr ument\nĠphilosoph y\nĠMo ore\nĠA venue\nĠrul ed\nĠFr ont\nIN E\nĠM ah\nĠscen ario\nĠNAS A\nĠen orm\nĠdeb ut\nĠte a\nT oday\nĠabs ence\nS im\nĠh am\nle ep\nĠt ables\nĠHe art\nM I\nK e\nre qu\nV D\nm ap\nĠchair man\nĠp ump\nĠrapid ly\nv i\nĠsubstant ial\nE P\nd es\nch ant\nili pp\nĠS anta\nri ers\nanche ster\nL oad\nĠC ase\nĠsa ving\nĠ7 4\nĠA FP\ner ning\noun ced\nĠMin nesota\nĠW as\nĠrec ru\nĠassess ment\nĠB ron\nU E\nĠdynam ic\nĠf urn\nul ator\nĠprop ag\nh igh\nĠacc ommod\nĠst ack\nĠS us\nw rit\nĠre ven\nĠGod d\nĠZeal and\nab s\nĠbr ut\nĠper pet\nh ot\nĠhard ly\nĠB urn\nãĤ ¹\nĠst y\nĠtrans actions\nĠg ate\nĠsc reens\nĠsub mitted\nĠ1 01\nĠlangu ages\nugh t\nem en\nĠfall s\nĠc oc\nĤ ¬\nĠstri kes\np a\nĠdel iber\nĠI M\nĠrel ax\nann els\nĠSen ator\nĠext rem\nĠ} ,\nĠDe b\nĠbe ll\nĠdis order\nc ut\nĠi OS\nĠl ocked\nĠem issions\nĠshort ly\n\" ]\nĠJud ge\nĠS ometimes\nĠr ival\nĠd ust\nĠreach ing\nF ile\nÂ¯Â¯ Â¯Â¯\nino is\nĠJ ason\nĠs atell\nare t\nĠst ations\nĠag ric\nĠTechn ology\ncom es\nĠUn fortunately\nĠChild ren\nĠappl ies\nast ed\nĠan ger\nail ability\nĠDam age\nĠcomp are\nĠStand ard\nĠaim ed\nĠB a\nangu age\nĠreg ulation\nĠj ury\nĠair port\nĠse ctions\nĠPr ince\nem ed\nĠmedic ine\nĠh itting\nĠsp ark\nol ves\nĠad s\nSt ate\nĠfood s\nĠrepl acement\nĠch icken\nĠlow est\nĠmind s\nĠinvol ves\nu i\nĠarr ang\nĠproced ures\nĠWh ich\nivers ary\nĠb ills\nĠimprove ment\nĠin ev\nĠexpect ations\nĠintellect ual\nĠsp aces\nĠmechan ism\n2 50\nbre ak\nĠZ e\nĠT enn\nĠB alt\nĠbar rel\nĠstat ic\nman n\nPol ice\nĠt ips\nĠhand ling\nc us\nod ed\nil ton\nir y\nĠjournal ists\nour se\nĠcom ic\nĠnom ine\nIT Y\nĠvers us\nĠlo op\nĠsur f\nĠInd ust\nĠHun ter\nĠbelief s\nis an\nĠset up\nĠbre w\nim age\nĠcomput ers\nf ol\n} ,\"\nĠMed al\nĠtax p\nĠdisplay ed\nĠg rav\nĠf iscal\nM on\nĠMos cow\nĠK ong\nĠCent re\nĠcamer as\nĠMr s\nĠH ay\nĠa ver\nĠK elly\np y\nĠrequire ment\nĠent itled\nomb ie\nĠsh adow\nag ic\nĠA k\nĠel ite\nĠdiv ided\nĠhead ing\nĠcop ies\nĠloss es\nĠv it\nk ed\nĠB ry\nĠan s\nĠSte am\nĠrep orter\nhe im\nĠIt em\nĠsuper ior\nd on\nere nt\nÃ ¶\nĠtherap y\nĠpe ak\nĠMod el\nĠl ying\nĠg am\nz er\nr itten\nĠrespons es\nĠconsider ation\nĠB ible\nĠl oyal\nĠinst ant\nĠp m\nĠFore st\nÃ ¼\nĠext end\nĠconv icted\nĠfound er\nĠconv in\nĠO ak\nche ck\nĠsch olars\np ed\nĠover se\nT op\nc ount\nĠAr k\nÂ ·\nĠ0 6\nĠL A\nm d\nĠLat in\nim ental\nĠC PU\nĠsubst ance\nĠminor ity\nĠmanufact uring\nE r\nocol ate\nĠatt ended\nĠMan ager\nr ations\nĠappreci ate\nom y\nGB T\nid ency\nB L\nĠguarant ee\npos ition\nĠo cean\nclud e\nĠhead ed\nĠt ape\nĠlo ose\nĠlog ic\nĠpro ven\nĠsp ir\nĠad mit\nis a\nĠinvestig ate\nĠ199 4\nsy lv\nĠL ost\nc est\nĠ7 1\nĠrequest ed\nĠwind ows\nĠPok Ã©\nĠWith out\nM et\nĠbehavi our\nĠread er\nĠh ung\nĠKe ep\nĠro les\nĠimplement ed\nĠbl ank\nĠserv es\nĠJ ay\nĠc ited\nĠF riend\nprof it\nap on\nĠrep air\nit em\narr ass\nĠcrit ics\nad i\nĠF ather\nĠsh out\nĠf ool\nĠ8 8\nĠprodu cing\nĠl ib\nĠround s\nĠcirc le\nĠpre par\nĠsub mit\nĠn ic\nmor row\nãĥ «\nU nder\nĠv ital\nater n\nĠpass word\nĠpublic ation\nĠprom inent\nĠspeak s\nĠb ars\nĠde eper\nĠM ill\nport ed\nĠw id\nĠbut ter\nĠsm oking\nĠindic ates\nK ey\nrop ri\nĠF ile\nall ing\nast ing\nĠR us\nĠad j\nĠ7 9\nav al\nĠpres um\nbur gh\non ic\nĠf ur\nĠpoll s\nik a\nĠsecond ary\nĠmon ster\nig s\nĠCur rent\nE vent\nĠowners hip\nend ar\nĠarri ve\nĠT ax\nĠn ull\nĠPri v\nĠth ro\nĠk iss\nc at\nĠup set\nang le\nit ches\nect or\nolog ists\nĠGal axy\nĠcor ruption\nĠh int\nent er\nĠH ospital\nĠgreat ly\nĠbeg un\nes y\nĠso il\nĠAnt on\nĠmain tenance\nãĥ ©\nĠdo zens\nĠhuman ity\nĠAl abama\nĠr om\nw orth\nap ing\nsylv ania\nl ah\nĠg athered\nG A\nĠattack ing\nf ound\nĠSqu are\nĠar bit\nict ions\nĠW isconsin\nĠd ance\nĠS aint\narch y\nĠbase ball\nĠcontribut ions\nĠliter ature\nĠex ha\nper ty\nt est\nĠb ab\nĠcontain er\nlet ter\nĠfall en\nĠwebs ites\nĠbott le\nĠS ac\nĠbre ast\nĠP L\nĠveter an\nĠinterview s\nĠA le\nĠb anned\neng ers\nĠRev olution\nin th\nĠconc erning\nIV E\nĠexp enses\nĠMatt hew\nĠColumb ia\nd s\nist ance\nĠent ity\n.. .\"\nĠrel iable\nĠpar alle\nĠChrist ians\nĠopin ions\nĠin du\nl ow\nĠcompet e\nĠth orough\nĠemploy ed\nĠestablish ment\nig en\nĠC ro\nĠlawy ers\nĠSt ation\nT E\nĠL ind\nĠP ur\nit ary\nĠeffic iency\nâĢ Ĳ\nĠL y\nĠm ask\nĠdis aster\nĠag es\nER E\nes is\nĠH old\nĠcas ual\nb led\nĠen abled\nĠEn vironment\nĠInt elligence\ni per\nĠM ap\nĠB E\nĠemer ged\nis dom\nĠc abin\nĠregist ration\nĠfing ers\nĠro ster\nĠfram ework\nĠDo ctor\net ts\nĠtransport ation\nĠaware ness\nH er\nĠattempt ing\nO ff\nĠSt ore\nÃĥÃĤÃĥÃĤ ÃĥÃĤÃĥÃĤ\nĠK now\nĠdef ence\nĠsc an\nĠT en\nĠCh air\nĠP H\nĠAtl anta\nĠfuck ing\nĠans wered\nb n\nĠK ar\nĠcateg ories\nĠr ational\nĠc ust\nĠrob ot\nĠcorrect ly\nĠg if\nĠgraph ics\nm ic\nĠground s\nĠO pp\ni ate\nĠdist ributed\nĠsan ctions\nĠchalleng ing\nut o\nĠingred ients\nĠinv ited\nĠfound ed\nĠRe qu\nd ed\nĠb owl\nĠbrother s\nĠH a\nI O\nĠw ages\nim ore\noc ial\nĠse ed\native ly\nĠaddress es\nĠI owa\nab eth\nĠatt itude\nis d\nch ild\nĠm ole\nĠdisco very\ny ard\nB r\nĠ8 2\nĠsuppl ies\nell ing\nĠdist ingu\nC R\nĠre cept\nĠ vert\nĠsw im\nb ec\nd oor\nĠY eah\nĠg al\nĠinter act\nĠE SP\nĠC S\namp s\nĠconvin ced\nĠobject ive\nĠdis h\nĠPhot os\nl ad\nĠdownt own\no il\nin ction\nĠto morrow\nĠC OM\nĠsurv ival\nsh ot\nĠsett lement\nC ons\nĠX box\nint erest\nĠS M\narg o\nen ess\nĠeth nic\nb ered\nM in\nĠT ok\nĠinc ent\nĠComm and\nĠmain tained\nĠbreak s\nbr idge\nat ar\nag g\nĠF inally\nun icip\nĠO nt\nle ft\nĠrecogn ition\nĠ* /\nĠP ers\nĠwe lf\nĠaddress ed\nĠK ansas\nĠvir us\nĠwhere as\nĠp apers\nram s\nĠMin istry\nĠple asure\nĠacqu ired\nĠd uration\nj pg\nĠcal m\nĠN HL\nĠburn ing\nĠfold er\nick ed\nĠP y\nĠIll inois\nCl ass\nĠGodd ess\nĠperform ing\nĠwelf are\nj ar\nIn ter\nĠl in\nĠenh ance\nĠnot ion\nf are\nyp es\nĠAre a\nĠcann abis\nĠDie go\nf s\nĠM anchester\ncom m\nin ite\nĠcover ing\nĠS ound\nĠ19 60\nĠ8 4\ne lect\nz ing\nĠcitiz en\nĠph ones\nĠr aid\nĠign ored\nĠOb ject\nĠu pload\nc ard\nĠmod ified\nĠroom s\nia h\nr ange\nhe ast\nach us\nĠsuggest ing\nâĢ ĭ\ngr ade\nE l\nĠclot hing\nĠr h\nĠH an\nun ity\nen cing\nĠAust in\nsec ution\nt ra\nd em\nĠQ ual\nĠhe aven\nĠst ages\nĠw edd\npl us\nific ial\nĠIm m\nĠH o\niet ies\nĠphr ase\nĠbr ill\nact ory\nĠprov iders\nĠsil ence\nĠa er\nĠA I\nĠAd venture\nĠplatform s\nĠdemonstr ated\nĠinter f\ning ton\nĠr aces\nĠgr ade\nult ane\nĠTh rough\nf alse\nĠb ow\nĠA B\nĠfl avor\nĠhistor ic\ng ov\nĠcol our\nĠview ed\nĠEm ail\nel come\nĠinter vention\nĠd iversity\nĠperiod s\nĠre verse\nĠV ery\nĠqu ote\nĠLe ft\nth rough\nĠsc rew\nĠland ing\nĠp ill\nĠw et\nĠprot esters\nĠrepe at\nav ed\ner k\nĠsal ary\nĠPenn sylvania\nSt ill\nĠmay or\nĠkit chen\nĠfeat uring\nĠM useum\nĠT ournament\nĠF al\nĠser vers\nU C\nĠany body\nim g\nĠTr ade\nixt ure\nthe less\nĠfin ance\nĠcl osing\nĠPat ri\ni ac\nab el\nĠ> >\nor ous\nĠf irms\nsc reen\nun a\nĠemb arrass\nul se\nĠlet ting\nĠth rew\nile y\nĠch annels\nl an\nĠVeg as\nĠse ar\nĠfant astic\nar re\nuzz le\nĠD er\nTh ose\nĠsw ing\nĠshe et\nind ex\nco ver\nog an\nĠvari ables\nĠTe ch\nĠsp oken\nac hel\nĠD a\nĠMount ain\nĠload ed\nĠfoot age\nvers ion\nĠun l\nĠPh oenix\nĠthrow ing\nĠf iring\nĠtrack ing\nĠw idth\nĠstrugg ling\nro oms\not ion\nĠmonth ly\nĠSer ver\nĠegg s\nop en\nM C\nĠ199 3\nĠh ired\nĠstay ed\nĠAll en\nĠst ro\nĠ9 8\nst ep\nĠTurk ish\nĠfab ric\nist ing\nĠD om\nĠd ates\nĠpr on\nĠbasket ball\nĠl ucky\nĠArab ia\nĠassum ed\nest y\nĠaff airs\nĠgl ad\nĠInd eed\nĠF A\nĠW ord\nĠjo ining\nif ice\np read\nir ts\nĠSe lect\nĠpop ulations\naw are\nĠn ose\nĠcompl aints\nst art\nĠsc oring\nTh anks\nĠmin ing\nĠvisit ors\nS H\nĠdam aged\nĠcharacter istics\nĠP ent\nD C\nĠ8 3\nĠS ix\nr ates\nĠfl ags\nĠB rew\nd og\nM ark\n// //\nĠexec ution\nĠj oke\nph ones\nĠtestim ony\nĠob st\nQ L\nĠC ut\nĠstud ied\nĠN intendo\nick et\nĠN BC\nĠl ad\nĠB ra\nĠM oh\nĠk ernel\nĠoverwhel ming\nĠag ed\nĠapplic able\nĠC ond\nĠroad s\nĠBl ock\nm ade\nod ge\nĠcomm ands\nĠoff ices\nvel and\nĠt ut\nĠrece iver\nĠF ro\nĠsho pping\nĠi P\nĠSt re\nĠA BC\nĠentertain ment\nĠB ow\nort ed\nM c\nĠread s\ngr ad\nĠCol lect\nĠâ ĪĴ\nĠCap ital\neder ation\nĠemploy er\nĠinvolve ment\nĠanx iety\nal ia\nĠro of\nĠAm ong\nĠDemocr at\nĠstat s\nĠV ill\nĠconst itutional\nĠrefer ring\nitt y\nĠtack le\nout ube\nĠback ed\nĠH ong\nĠBro ad\nĠe le\nĠO tt\nĠ199 2\nh our\nachus etts\nC al\nĠdefe ated\nĠ8 1\nes p\nĠseem ingly\nw as\nĠJ enn\nĠK urd\nĠg ene\nĠdisc ount\nR et\nEC T\n( );\nĠclub s\nĠs id\nĠM arsh\nChe ck\nĠp p\nĠE ag\nides pread\nĠbe ings\nF T\nĠintrodu ction\nĠCh ange\nAR D\nĠ1 10\nad ows\nier ce\nĠme al\na uthor\nĠB ang\nlah oma\nĠr anks\n201 1\n?? ??\nm ax\nĠcoll apse\nĠop ens\nĠe cho\nĠs oph\nĠrac ist\nĠenorm ous\nĠw aves\nĠt ap\nĠcomprehens ive\n. --\nĠR oy\nĠfarm ers\nRel ated\na ired\nron es\nĠC rim\nĠproport ion\nĠdesign s\nĠnegoti ations\nĠvirt ually\nĠBat man\nĠwar n\nĠlegit imate\nm ate\nĠcon vention\n, ,\nnet ic\nĠS D\nĠconsist ently\nĠcompens ation\nĠpunish ment\nĠy e\nĠt ie\nĠB ureau\nir lf\nĠB u\nĠA ren\nĠPh ilipp\nĠkn ife\nĠmem ories\nĠR oss\nĠang le\nĠ8 6\nĠTh under\nĠre nd\nĠT our\nĠcount s\ns ung\nĠIm p\nĠeduc ational\nĠaccess ible\nC OM\nĠd rew\ny er\nG l\nam ine\nOR T\nO B\nI B\nm aster\nĠtri als\nog y\nh ar\nĠTr ust\nĠprefer red\nirlf riend\nĠN ev\nĠb in\nĠc ow\nP age\nĠsign ature\nĠB L\n7 00\nĠret ired\nĠby tes\nĠneigh b\nĠLeg end\nĠdev ast\nĠsuspect ed\nis ons\nĠPokÃ© mon\nsc ale\nĠcap abilities\nĠre vel\nĠche ese\nd y\nigr ant\nĠfail ing\nb its\nĠHer oes\nĠG host\nĠS cient\nĠappoint ed\nur i\nĠinst itution\nĠexpand ed\ng reg\nĠmonitor ing\nĠp odcast\nĠcoal ition\nĠ9 6\nJ o\nĠst olen\nĠS ab\nĠstop s\nĠhol iday\nĠint r\nC ar\nBl ack\nĠL GBT\nĠwar ming\nĠAnd erson\nĠ8 9\nĠprodu cer\nM ed\nĠaccur acy\nĠMar vel\niz abeth\nĠPat rick\nm ony\nĠmin i\nac les\nĠover t\nthe y\nĠmembers hip\nĠV en\nĠex ch\nĠrem oval\nĠD ave\nT Y\nm ad\nĠF ind\nĠad equ\nĠe c\nĠte eth\nĠemot ion\nĠper m\nĠsole ly\nd b\nĠextra ord\nIG HT\nc al\nĠgu idelines\nĠd ying\nĠsusp ended\nĠPrem ier\nĠAnth ony\nel ve\nĠd ad\nĠE th\nĠFoot ball\nĠabandon ed\nĠ< <\nĠm arch\nĠhor ror\nâĢ¦ \"\nĠchild hood\nĠcampaign s\nĠl unch\nĠAl bert\nbl ock\nâĸĪ âĸĪ\nound ing\nĠb one\nor gan\nad ers\nĠFl ash\nĠDri ve\nĠton ight\nĠw ars\nĠF L\nĠform ation\ncon st\nNew s\nĠcom pe\nor ious\nĠSt aff\nĠdiscuss ions\nĠProt ection\nĠJ am\nĠcrit eria\nĠinstall ation\nĠaccompl ish\niz za\nĠpub lisher\nĠresc ue\nĠT ry\nU LL\nĠS om\nĠH op\nore t\nth s\nord on\nĠp ocket\nĠIn v\nDown load\nĠCr ime\nĠb ene\nĠGu ide\nĠAs sembly\nĠparam eters\nI E\nĠAlex ander\nĠconc ert\nĠSc he\nĠsh oes\nĠvis iting\nĠrec all\nĠb ub\nĠr ural\nĠconc rete\nĠR os\nN ext\nR uss\nĠlo ans\nĠSh ield\nĠtre m\nhem at\nk g\nĠHar ris\nis ition\nĠM ove\nĠF C\nĠf ate\nĠCh o\nĠt ired\nĠprinc ipal\nh ist\nien ces\nath y\nĠse vent\nĠm ood\nĠstrateg ic\nĠdise ases\nĠfor um\nĠtem por\nĠhead quarters\nP ar\nig e\nfl ix\nĠgu itar\nĠ9 4\nOn ly\nĠrele ases\nro ph\n================ ================\nĠ6 00\nĠContin ue\nig ate\nĠC rit\nsy stem\nĠdis abled\nĠunex pected\nith ub\nĠuncle ar\nĠE st\nĠcontr ad\nĠstrateg ies\nvent ures\nĠpass age\nAM E\nĠimpro ving\nĠreve als\nĠdecre ase\nov a\nĠann oy\nĠSh ort\nĠL ibrary\nĠcy ber\nn ell\nĠH ur\nĠC B\nĠphot ograp\nU I\nĠs ed\nG e\nĠ8 7\nĠd iverse\nĠencour aged\nĠcons piracy\nĠbird s\nĠoper ator\nĠhand ful\nĠclass ified\n? )\nĠdram atic\nĠinvestig ators\nit o\nĠw idespread\nĠR oom\n-------------------------------- --------------------------------\nĠcollect ive\nĠjournal ist\nSt ring\nĠtemper atures\nil a\nĠgu id\nĠins pect\nĠmiss ile\nĠMay or\nĠman ual\nĠsim ultane\nĠrat ings\nĠsu ck\nĠ9 7\nĠunivers al\nĠph arm\nĠdis rupt\nian o\nA V\nĠf t\nĠstat ist\nold s\nĠWalk er\nph p\nĠunder t\nĠL as\nish op\nnt il\nres hold\nĠWhe ther\nM s\nĠden y\nĠCl oud\nĠprov ider\nĠsurv iv\nĠUp date\nh as\nĠmist akes\nch arge\npl ed\nr ity\nĠn ode\nĠMass achusetts\nool s\nlic ation\nĠf ails\nem ale\nor i\nback s\nĠsh irt\nĠ' '\nĠN AT\nĠwat ers\nels on\nĠe ase\nĠsc ar\nĠcont ents\nm ind\nĠcont ribution\nĠsh r\nĠhand ed\nĠst ability\nĠtra ve\nE m\nĠmir ror\n12 3\nĠwe igh\nĠf iction\nou ver\nist ant\nr ition\nĠF ed\nĠphys ically\nĠst ake\nĠArt icle\nĠAr c\nĠLew is\nĠM ind\nĠdemonstr ate\nĠprof its\nv ision\nom ic\nol id\nĠbatt les\nĠdri ves\nĠeas tern\nĠS ony\n!! !\nar ation\nv ard\nĠG L\nport ation\nĠ9 2\nĠlaw makers\nĠprotect ing\nĠE PA\nĠy eah\nĠsh ame\nol ph\ne ven\nx it\nĠatt ach\nĠrepresent ing\nĠob s\nĠUt ah\niff s\nĠFre edom\nÃ ³\nA K\nĠinc idents\nit age\nĠview ers\nc d\nĠm ouse\nĠcl ar\nĠaccord ance\nĠb ot\nc or\nĠSum mer\nhe ld\nĠinnoc ent\nĠiniti ative\nol s\n________________ ________________\nĠsp ots\np ace\nĠconvent ional\nĠcorpor ations\nĠblock ed\nH D\nat tered\nĠref ers\nĠbu ck\nĠDig ital\n12 0\nĠtop ics\nT F\nÄ ģ\nbr id\nre ement\nĠunder lying\nĠM ember\nĠinvestig ating\nĠpregn ancy\nĠtouch down\nĠB and\nĠCall er\nĠinst ances\nP P\nw a\nG ood\nĠ199 1\nĠC old\nĠfear s\nĠrem arks\nĨ Ĵ\nat al\nĠm it\nĠexper iments\ni pt\nCol or\nind u\nUp date\nĠ9 3\nA g\nĠ å\nanc ouver\nB oth\nĠjud ges\nOb ject\nĠst ere\numb n\nĠparticip ation\nĠSt ars\nĠJ ere\nĠweek ly\nĠB an\nĠconvers ations\nĠP itt\nu z\nĠIndian a\nĠK ick\nĠinf ection\nĠhero es\nĠsett led\nĠstri p\nĠh al\nĠd ump\nĠS ci\nĠl es\nĠref erences\nĠU RL\nĠBr idge\nĠwant ing\nFor ce\nĠex clus\nMe anwhile\nm n\nĠg entle\nm aker\nsen al\nĠG ro\nou ri\nĠR ain\nĠAll iance\nĠl ift\nel a\nS D\nĠCle veland\nĠrank ed\nĠst adium\nĠdead ly\nä ¸\nĠr iding\nar ia\nĠAr mor\nĠdocument ation\nĠGree ce\nree k\nĠl ens\nĠS a\nĠg ross\nĠE mer\nag ers\nĠD ub\nĠR h\nĠAM D\nĠarri val\nĠdes ert\nĠsupp lement\nĠRes p\nĠkn ee\nĠmarg in\nf ont\nog g\n201 0\nĠP ir\nĠP rom\niv als\nĠint ake\nĠdifferent ly\nug s\nĠb its\nclud ed\nĠsearch ing\nĠD u\num ble\nĠfunction al\nĠBalt imore\nĠC ould\nĠdes ired\nĠcirc uit\nĠL yn\nĠG O\nĠF alse\nre pre\n' :\nalt ies\nĠmin im\nĠdro ve\nĠSh ould\nĠh ip\nĠpro s\nĠut ility\nĠN ature\nĠM ode\nP resident\no pp\nr at\nform ance\nĠconcent ration\nĠf ont\nĠB ud\nĠam id\nĠre vers\nĠM L\nB ar\nĠinter action\nĠjur isd\nĠspell s\nd ep\nf il\nĠcivil ians\nut ter\nĠCo oper\nĠBel ow\nĠent rance\nĠcon vert\nĠcontrovers y\now ered\nĠcontr ary\nĠar c\nĠExec utive\nĠOffic er\nĠpack ages\nĠprog ressive\nw idth\nĠreserv ed\nv ol\nĠSam sung\nĠprint ed\nĠcent ers\nĠintrodu ce\nĠKenn edy\nĠodd s\nĠsure ly\nĠindepend ence\nĠpass engers\nrepre ne\nĠBe h\nĠl oves\nĠESP N\nĠfac ilit\nĠident ical\nĠdo ct\nĠpartners hip\ncon f\nĠH ide\nĠconf used\nĠC ow\nM en\nĠw rest\nĠIraq i\nĠh oles\nĠStud ies\nĠpregn ant\nh ard\nĠsign als\nI X\nĠpull ing\nĠgrad uate\nĠnomine e\nD ate\nĠper mitted\nĠâ Ĥ¬\nĠOk lahoma\nSt art\nĠauthor ized\nĠal arm\nĠC os\nv an\nĠgener ations\nc ular\nĠdr agon\nĠSoft ware\nĠEd ward\nĠcontro ller\nS en\nge red\nĠV ik\nĠappro ached\nTh ank\nĠcan ce\nĠform ula\nĠSm all\nĠweak ness\nĠr amp\nit udes\nj ud\nĠbrill iant\nĠacc us\ns ource\nĠ8 00\nĠE vil\nS w\nĠhom eless\nwe ek\ni ens\nr ics\nĠTh ird\nT O\nĠorgan ic\nĠpresent ation\nag h\nĠDown load\nv ation\nĠas sembly\nor able\nhold ers\nĠBern ie\nĠHel p\nĠt ong\nĠF ight\nĠbe ach\nB ook\nĠL ic\nĠr ush\nĠR ound\nou p\nĠMar x\nĠcalcul ated\nĠDe vil\nĠSar ah\nĠoccasion ally\nĠbul let\nAv ailable\ng ate\nĠ9 1\nĠh osp\nĠprom ises\nĠH IV\nĠSt adium\nĠSt ock\nĠCorpor ation\ng age\nN G\nĠC redit\nĠs ne\nib l\nĠacc um\ns uch\nĠterror ists\nĠconscious ness\nĠZ h\nĠdram a\nool a\npir ation\nĠlab our\nĠN in\nĠut ter\nĠdemocr atic\nĠass ass\nil ation\nĠg est\nĠab road\nĠmet ab\nĠs orts\nĠfl av\nU B\nĠm g\nĠNot hing\nĠO d\nĠmus ical\n200 9\nĠdro ps\noc ated\nater al\n0000 00\nĠg re\nĠequ ality\nĠburd en\nĠv ig\nĠLe ader\n-------- ----\nĠcere mony\nĠf ighter\nĠact ors\nĠ æ\nam an\nF i\nĠal ign\nput er\nĠe lder\nĠN SA\nĠrepresent ation\nĠOnt ario\nIT H\nusal em\nĠharass ment\nitz er\nĠsy mp\nĠbox es\nĠD R\nĠman ifest\nat re\nĠ ^\nĠd ies\nle ton\nĠmiss ions\net he\nĠres olve\nĠfollow ers\nĠas c\nĠk m\nl ord\nam med\nĠsil ent\nĠAssoci ated\nĠtim ing\nĠprison ers\nĠK ings\nĠF ive\nĠtow er\nĠappro aches\nĠprecise ly\nĠb ureau\nĠM other\nĠI ss\nĠkey board\nit ual\nĠfund ed\nĠstay ing\nĠpsych ological\nĠm ile\nĠLe on\nĠBar b\nw ill\nĠw ider\nĠAtl antic\nĠt ill\nĠR ome\nro t\nĠaccomp an\nĠfl our\nac o\nW orld\nĠExp ress\nĠY u\nC or\nĠple ased\npart y\nĠpoint ing\nĠinf lation\nĠro y\nĠ ),\nain er\nĠwedd ing\norm on\nĠrequ iring\nĠqual ified\nĠse gment\nEN D\nĠs izes\ne als\nĠcor rupt\nass ador\nĠcele b\nĠdream s\nĠM ess\nĠcheck ing\nĠV ersion\nĠprep aring\nĠact ively\nĠD iff\nĠl ux\nĠW inter\nact eria\nĠN E\nĠdep uty\nĠtrans gender\nĠsum mary\nĠin her\ner ies\nch ar\nĠY an\nĠkn ock\nĠP ath\nĠl ip\nroll er\nĠimp ression\nĠcelebr ate\nĠsl ide\nĠgu ests\nĠcl ip\nF S\nĠsav ings\nĠcapt ain\nĠleg acy\nĠDen ver\nĠw ounded\ntab oola\nAC T\nĠpurs ue\nĠo xy\nĠ q\nĠsem i\nĠN eed\nĠAff airs\nĠob sc\nĠcheck ed\nĠd ual\nC ode\nĠM D\nle m\nult y\nĠÂ ©\nĠEl izabeth\nĠcent uries\nard ed\ns rc\nĠev ident\nenn is\nat in\nĠunemploy ment\nĠMar io\nĠint im\nCh rist\nĠbi ological\nĠsold ier\nĠAdd ed\nĠm ath\nĠG il\nĠbi as\nĠd ating\nĠO cean\nĠm ice\nM us\nh ire\nĠT es\nSer ver\nlim ited\nS ize\nĠmet ers\nĠrock et\nes see\nĠcertific ate\nĠIran ian\nAS S\nĠgr id\nD ec\nĠro lling\ncom mun\nĠSwed en\nb ury\nĠtiss ue\nĠrac ism\nĠL ocal\nĠmyster y\nĠexam ine\nĠst em\nĠs its\nĠhop ed\not ing\nĠdial ogue\nĠpers u\nW atch\nl ay\nM AN\nĠch ronic\nĠPort land\nmark et\nĠS EC\nĠparalle l\nĠsc andal\nĠcar ries\nĠphenomen on\nh uman\nack er\nĠO x\nĠretire ment\ntain ment\nov ie\nĠG ear\nĠd uties\nĠdo se\nĠsc roll\nM B\nin f\nĠsa uce\nĠland scape\nred dit\nĠChampions hip\nĠRed dit\nal id\nĠco in\nĠover s\nĠpost ing\nab out\nĠf el\nand y\nĠb old\nĠfocus ing\ne ffect\nG R\nĠde emed\nĠrecommend ations\nĠste pped\nĠvot er\nĠDe ep\nĠInst agram\nĠmoder ate\nĠMary land\nĠrestrict ed\nĠM B\nĠCh all\nĠto b\nĠc ir\nĠO cc\nĠE ver\nĠcoll aps\nIN FO\n= -\nĠP ict\nĠAcc ount\nn c\nĠo ught\nĠex port\nĠdr unk\n( '\nĠw ise\nĠM ort\nne cess\nĠan cest\nĠInc re\nĠfrequ ent\nm ir\nĠinterpret ation\nĠdepend ent\nĠco ins\nĠB ol\nV ideo\nĠJust in\nĠfat al\nĠcook ing\nĠconf usion\nip her\nĠcust ody\nĠMor gan\nom ach\nĠGovern or\nĠrestaur ants\nel ing\nĠacknowled ged\nĠthe r\nĠgen es\nch ing\nHe y\nĠtact ics\nĠMex ican\nĠv end\nĠhe s\nqu er\nĠnot ing\nĠCamer on\nĠtarget ing\nro ck\nĠcred its\nĠemot ions\nĠrepresent atives\nnew s\nĠlegisl ative\nĠrem oving\nĠtweet ed\nĠCar ter\nĠF ixed\nĠfor cing\nĠspeak er\nĠm ales\nĠViet nam\nl ined\nĠconcept s\nĠvo ices\no ir\nĠT rib\nW he\nĠJer usalem\nĠS ant\nĠc ul\nĠl ady\nĠHaw ai\nĠar ts\nĠIn n\nĠMach ine\nĠEm peror\nĠsl ot\ng ly\nĠPro cess\nII I\nĠathlet es\nĠTem ple\nĠRep resent\nĠpres c\nĠt ons\nĠgold en\nĠp unch\nĠG R\niver pool\nĠen act\nĠlob by\nĠm os\nĠpick ing\nĠlif etime\nĠcogn itive\nE ach\nz o\nĠd ub\nĠcons ists\nol n\nĠf estival\nam ous\nĠint ellig\nw ords\nĠSm art\nĠde le\nĠl apt\nĠmag ical\nĠS in\nb us\nur ities\nigh th\nĠRub y\nĠS ure\nol ving\nĠj un\nO ST\nĠimp osed\nĠast ron\nĠcor rel\nĠN S\nĠK it\nĠF uture\nb urn\nĠimm une\noc us\nĠcour ses\nĠSt ring\nĠle an\nĠg host\nĠout comes\nĠexp ense\nĠevery day\nĠaccept able\nA h\nĠequ ipped\nĠor ange\nF R\nĠD utch\nTh ough\nĠR ank\nQ U\nĠRober ts\nwh at\nre nd\nĠdisapp ear\nĠsp awn\nĠL am\no is\nĠdes erve\nĠmin imal\nĠnerv ous\nĠW ould\nĠro ok\nĠV ancouver\nĠres ign\nsh ire\nĠW orks\nĠB uild\nĠafford able\nĠG ary\nĠAren a\nĠh anging\nĠimpl ications\nĠS ong\nĠmain taining\nĠgu ards\nC ON\nĠder ived\nĠexecut ed\nĠthe ories\nĠqu oted\nĠAnd re\nog a\nsel ess\nin fo\nĠBel g\nĠt ears\nĠSur v\nĠbirth day\nig ious\nim mer\nĠspect rum\nĠarchitect ure\nĠrec ruit\narm a\nT able\nĠmon sters\nĠG ov\nĠdest ination\nĠattract ive\nĠf oss\nĠMore over\nĠpres ents\nTH E\nĠrep ly\npt on\nĠc um\nĠdel ight\nĠaffect s\nĠdon ations\nĠT oy\nĠH im\nM ENT\nĠover come\nit ched\nĠFant asy\nĠH at\nĠBe ast\nb ott\nĠinvestig ations\nR un\nĠhun ting\nd i\nf und\nĠs essions\nest yle\nĠport ray\noid s\nY eah\nĠcommun icate\nĠcom edy\nĠY ang\nĠbel t\nĠMar ine\nĠpredict ed\nPl ay\nĠimportant ly\nĠremark able\nĠelim inate\nD avid\nĠb ind\nV ID\nĠadvoc ates\nĠG aza\nim p\nD B\nĠN a\nĠSim ilar\nI ES\nĠchar ity\nv as\nm ath\nĠâ ĸ\nok er\nnd um\nĠcap s\nĠH al\n2 000\ne an\nĠfle et\nĠrec re\nR ight\nĠsleep ing\nij ing\nk ind\nĠdesign ated\nÃ ¤\nĠanim ation\nke e\nĠInt rodu\nĠ/ >\nĠdelay ed\nĠtrem end\nĠcur ious\nU se\nĠle ct\nd am\nĠinnov ation\nĠPoint s\nĠload ing\nĠdisp ute\nct ic\nird s\nĠB Y\nĠn urs\nĠVal ue\nION S\nĠH um\nĠtem plate\nm ers\nĠappear ances\nĠEnter tainment\nĠtransl ation\nĠsa ke\nĠbene ath\nĠin hib\nĠe uro\nabet es\nĠstud ying\nĠM as\nĠper ceived\nĠexam ined\nĠe ager\nĠco aches\nĠim per\nch i\nĠprodu ces\n\" ).\nĠEvery one\nĠm unicip\nĠg irlfriend\nĠh ire\nĠV ice\nĠsu itable\nop y\nĠin equ\nĠD uke\nf ish\nf irst\nĠO bs\nĠinter ior\nĠBru ce\nĠR y\nĠanal ys\nĠconsider able\nĠfore cast\nĠf ert\nors hip\nĠD rug\nĠA LL\n: \"\nth ur\nĠM ail\nĠball ot\nĠinst antly\nĠCh annel\nĠp icks\nĠ198 9\nĠt ent\nol i\nĠcivil ian\nb ling\nell o\nb u\nĠin ch\nĠlog o\nĠcooper ation\nĠwal ks\nĠinvest ments\nĠimp rison\nĠF estival\nĠK y\nĠleg ally\nĠg ri\nch arg\nS l\nĠthreat ening\ndu ction\nfl ow\nĠdismiss ed\nibr aries\nc ap\ne le\nĠMc G\nĠHar vard\nĠConserv ative\nĠC BS\np ng\nĠro ots\nĠH aving\numb led\nĠF un\n\\ /\nĠS earch\nple x\nĠdiscuss ing\nĠcontin u\nĠT ai\nĠW ik\nF ree\nf it\nĠref use\nĠmanag ing\nĠsy nd\nip edia\nw alk\nĠprofession als\nĠguid ance\nĠunivers ities\nĠas semb\nunt u\nF inally\nAS E\nĠAut o\nĠH ad\nĠann iversary\nL D\nĠD ur\nĠUlt imate\nih ad\npro duct\nĠtrans it\nĠrest ore\nĠexpl aining\nĠass et\nĠtransfer red\nĠbur st\nap olis\nĠMag azine\nĠC ra\nĠB R\ngg ed\nĠH E\nM ich\nb et\nĠL ady\nyl um\nerv es\nĠme ets\nwh ite\nL og\nĠcorrespond ing\nĠins isted\nG G\nĠsurround ed\nĠt ens\nĠl ane\nĠco inc\nh ome\nĠexist ed\nect ed\nĠDou ble\nlam m\nĠske pt\nex p\nĠper ception\nie v\nĠBe ing\no ft\nĠadop t\n. :\n] ;\nWind ows\nĠsatell ite\nAS H\nĠinf ant\nd escription\nĠMe anwhile\nc m\noc a\nĠT reat\nact or\nĠtob acco\nĠN orm\nem ption\nĠfl esh\nĠj e\no op\nĠHe aven\nĠbe ating\nan im\nĠgather ing\nĠcult iv\nG O\nab e\nĠJon athan\nĠSaf ety\nĠbad ly\npro t\nĠcho osing\nĠcontact ed\nĠqu it\nĠdist ur\nĠst ir\nĠto ken\nD et\nĠP a\nĠfunction ality\n00 3\ns ome\nĠlimit ations\nĠmet h\nb uild\ncon fig\nN T\nre ll\nble m\nĠM om\nĠveter ans\nĠH u\nĠtrend s\nare r\nĠG iven\nĠCa ption\nm ay\nAS T\nĠwond ering\nĠCl ark\nn ormal\nĠsepar ated\nĠdes p\nst ic\nb rew\nĠrel ating\nĠN ik\nĠF arm\nĠenthus i\ng ood\nd eb\nĠactiv ist\nĠm art\nĠexplos ion\nĠEconom ic\nL ink\nĠins ight\nĠconven ient\nĠcounter part\nsu pport\nĠV irt\nag en\nĠTenn essee\nĠSim on\nĠA ward\nOC K\nĠF igure\nĠoverse as\nĠpr ide\nĠC as\nn ote\nm g\nC urrent\nĠdispl ays\ncont ent\nĠtravel ing\nĠhosp itals\nĠFin ancial\nĠP ast\nĠdefend ant\nĠstream ing\nm ble\nĠBer lin\nuk i\nĠdist ribut\nĠant ib\nĠch ocolate\nĠCast le\nĠinter rupt\nĠR ow\nĠconvers ion\nĠbug s\nĠR ather\nli est\nL Y\nĠJe an\ncom mon\nak h\nĠ1 30\not ton\nĠDe an\nĠam endment\nĠgame play\nĠWar ren\nod a\nĠhigh lights\nĠir re\nĠNAT O\nĠball s\nĠdemand ing\nU RE\nĠL uke\nF igure\nst op\non ia\nz one\niz ers\nĠW R\nĠaward ed\nĠregul atory\nĠH art\nĠS N\npl ing\nĠs our\nĠP ixel\nus ive\nĠf et\nĠS ent\nĠautom atic\nĠf er\nvern ment\nĠKh an\nT ON\nf ather\nĠextraord inary\nth rop\nĠP ython\nĠG PU\nĠsex ually\nĠdesk top\nit ivity\nĠAnton io\nĠo rient\nĠe ars\nob by\nous es\nvertis ements\nĠmanufacture rs\nic ient\nmin ute\nĠconv iction\nĠg arden\np ublic\nĠsatisf ied\nf old\nO K\nĠin hab\nĠTh ink\nĠprogram me\nĠst omach\nĠcoord in\nĠh oly\nĠth reshold\nĠr het\nĠser ial\nĠemploy ers\nĠEvery thing\nra h\nĠb other\nĠbr ands\nVal ue\nĠT ed\nĠPlan et\nĠp ink\nĠFurther more\ns a\nP E\nre ck\nĠUS D\not te\nĠ& &\nĠland ed\ng ets\nĠprodu cers\nĠhealth care\nĠdomin ant\nĠdest ro\nĠam ended\nch ron\nĠf its\nĠSy d\nĠAuthor ity\nAT CH\nĠfight s\nĠL LC\nĠ-- -\nĠCor p\nĠtox ic\nspe cific\nĠC orn\nĠChe l\nĠtele phone\nĠP ant\nĠmyster ious\naun ch\nod ox\nmed ia\nĠwitness es\nag u\nĠquestion ed\nĠBre xit\nĠRem ember\nene z\nĠend orse\niat ric\nĠId ent\nĠridic ulous\n1 10\nĠpr ayer\nĠscient ist\nĠ19 50\nĠA qu\nĠunder ground\nĠU FC\nm are\nĠL ater\nw ich\nĠsubsc rib\nĠhost s\nĠer r\nĠgr ants\nant om\nĠsum mon\near ly\nĠC lear\nĠPr im\nĠsusp ension\nĠguarant eed\napp er\nĠr ice\nĠSe an\nĠSh in\nĠrefere ndum\nĠfl ed\nr ust\nĠ3 60\nter y\nĠsh ocked\nB R\nĠO il\nĠAll ah\nĠpart ly\nĠign or\nĠtrans mission\nĠhom osexual\nivers al\nĠhop efully\nãĤ ¤\nĠless on\nL eg\nĠ ..\nY et\nt able\napp ropri\nre tt\nĠbo ards\nĠincor rect\nĠb acteria\nar u\nam ac\nĠsn ap\n.' \"\nĠpar ad\nt em\nhe art\nĠav ailability\nĠw isdom\nĠ( +\nĠpri est\nĠÂł ĠÂł\nO pen\nĠsp an\nĠparam eter\nĠconv ince\nĠ( %)\nr ac\nĠf o\nĠsafe ly\nĠconver ted\nĠOlymp ic\nĠres erve\nĠhe aling\nĠM ine\nM ax\nĠin herent\nĠGra ham\nĠinteg rated\nD em\nĠpip eline\nĠapp lying\nĠem bed\nĠCharl ie\nĠc ave\n200 8\nĠcons ensus\nĠre wards\nP al\nĠHT ML\nĠpopular ity\nlook ing\nĠSw ord\nĠAr ts\n' )\nĠelect ron\nclus ions\nĠinteg rity\nĠexclus ively\nĠgr ace\nĠtort ure\nĠburn ed\ntw o\nĠ18 0\nP rodu\nĠent reprene\nraph ics\nĠg ym\nric ane\nĠT am\nĠadministr ative\nĠmanufacture r\nĠ vel\nĠN i\nĠisol ated\nĠMedic ine\nĠback up\nĠpromot ing\nĠcommand er\nĠfle e\nĠRus sell\nĠforg otten\nĠMiss ouri\nĠres idence\nm ons\nĠrese mb\nĠw and\nĠmeaning ful\nP T\nĠb ol\nĠhe lic\nĠwealth y\nĠr ifle\nstr ong\nrow ing\npl an\nas ury\nâĢ¦ .\nĠexpand ing\nĠHam ilton\nĠrece ives\nS I\neat ures\nĠAn im\nRE E\nP ut\nĠbrief ly\nri ve\nĠstim ul\nĠ`` (\nĠ __\nĠch ip\nĠha z\nĠpri ze\nĠTh ings\nAC E\nul in\nd ict\nok u\nĠassoci ate\nock ets\ny outube\nSt ory\nateg ory\nĠm ild\nail ing\nĠY e\nO rig\nĠK a\nor ig\nĠpropag anda\nĠan onymous\nĠstrugg led\nĠout rage\nAT ED\nĠBe ijing\nr ary\nĠle ather\nĠworld s\nĠbroad er\n12 5\nid al\nĠBet ter\nĠt ear\nE xt\nĠpropos als\nĠit er\nĠSqu ad\nĠvol unt\nm i\nD id\nĠP u\np in\nĠspeak ers\nĠb orders\nĠfig ured\n= '\nĠsimultane ously\naed a\nĠcharg ing\nĠur ged\nĠcon j\n25 6\nĠG ordon\nmer ce\nĠdocument ary\nSh are\nit ol\nON E\nĠG arden\nh att\nĠThom pson\nane ous\nap ore\nĠt anks\nĠless ons\ntr ack\nĠout standing\nĠvolunte ers\nĠsp ray\nĠmanag ers\nl arge\nĠcamp s\nĠart ificial\nĠR u\nĠb ags\nth al\nĠcompat ible\nĠBl ade\nĠf ed\nĠarg ues\nF I\nĠunf air\nĠcor n\nĠoff set\nĠdirect ions\nĠdisappoint ed\nĠCon vention\nĠview ing\nM E\noc ity\nĠtown s\nĠlay ers\nĠro lled\nĠjump ed\nĠatt ribute\nĠun necess\ninc oln\nĠsupp ose\nĠNet her\nch a\nĠbur ied\nĠsix th\nB en\nress ing\nOU R\nĠw ound\nĠcy cl\nĠmechan isms\nĠcongress ional\nĠE lement\nĠagre ements\nĠdec or\nĠclos est\nĠM it\nGo ogle\n} }\nĠm ixture\nĠflu id\nS ign\nĠSch olar\nĠp ist\nask et\nab ling\nĠrac ing\nhe ro\nri el\nass y\nĠche aper\nb en\nĠvert ical\namac are\nĠRead ing\ng ments\nĠhelic op\nĠsacr ifice\nay a\np aren\nV A\nĠL es\nĠStud io\nĠviol ations\nĠAn na\nac er\né ¾\nĠR at\nĠBe ck\nĠD ick\nĠA CT\nĠcomp osition\nĠtext ure\nĠO wn\nĠsmart phone\nĠN A\nĠfor b\nim port\nĠdef ending\nil st\nre r\nĠo h\nĠJere my\nĠbank ing\ncept ions\nĠrespect ive\n/ .\nĠdr inks\nĠW i\nĠb ands\nĠL iverpool\nĠg rip\nĠB uy\nĠopen ly\nĠreview ed\nper t\nĠver ify\nĠCo le\nĠW ales\nM O\nĠun pre\nĠshel ter\nĠIm perial\nĠgu i\nĠD ak\nĠsuggest ions\nĠexplicit ly\nĠsl ave\nĠblock chain\nĠcompet ing\nĠprom ising\nS ON\nĠsoc cer\nĠconst itution\n4 29\nĠdist ract\nĠU ser\nes ides\nĠMet hod\nĠTok yo\nĠaccompan ied\nCl ient\ns ur\nal og\nĠident ification\nĠinv asion\nas ma\nĠindust ries\npp ers\nĠsub tle\nĠUn it\nn atural\nĠsurv ived\nĠfl aw\nĺ ħ\nĠH oll\nĠdef icit\nĠtut orial\nĠCh ance\nĠarg uing\nĠcontem porary\nĠinteg ration\nfor ward\nĠt um\nit is\nĠh iding\nĠD omin\nĠT an\nĠB uilding\nĠV in\nĠspokes person\nĠNot es\nĠemer ging\nĠprepar ation\nĠpro st\nĠsuspect s\nĠaut onom\nD escription\nĠdeal t\nĠP ear\nĠstead y\nĠdecre ased\nĠso vere\nĠCl in\nĠgrad ually\nors es\nĠW AR\nS erv\nãĤ ¢\nh r\nĠd irty\nĠB arn\nĠB C\nĠd il\nĠcal endar\nĠcompl iance\nĠch amber\nb b\nĠpass enger\nate ful\nĠT itle\nĠSyd ney\nĠG ot\nĠdark ness\nĠdef ect\nĠpack ed\nass ion\nĠgod s\nĠh arsh\nIC K\nle ans\nĠalgorith m\nĠoxy gen\nĠvis its\nĠbl ade\nĠkil omet\nĠKent ucky\nĠkill er\nP ack\nenn y\nĠdiv ine\nĠnom ination\nbe ing\nĠeng ines\nĠc ats\nĠbuff er\nĠPh ill\nĠtra ff\nAG E\nĠtong ue\nĠrad iation\nere r\nm em\nĠExpl icit\né¾ į\nĠcou ples\nĠphys ics\nĠMc K\nĠpolit ically\naw ks\nĠBl oom\nĠwor ship\ne ger\nut er\nĠF O\nĠmat hemat\nĠsent enced\nĠdis k\nĠM arg\nĠ/ *\nP I\nĠoption al\nĠbab ies\nĠse eds\nĠScott ish\nĠth y\n] ]\nĠHit ler\nP H\nng th\nĠrec overed\ning e\nĠpow der\nĠl ips\nĠdesign er\nĠdis orders\nĠcour age\nĠch aos\n\" },{\"\nĠcar rier\nb ably\nH igh\nĠR T\nes ity\nl en\nĠrout es\nu ating\nF il\nN OT\nw all\ns burgh\nĠeng aging\nĠJava Script\nore r\nli hood\nĠun ions\nĠF ederation\nĠTes la\nĠcomple tion\nĠT a\nĠprivile ge\nĠOr ange\nĠne ur\nparen cy\nĠb ones\nĠtit led\nĠprosecut ors\nĠM E\nĠengine er\nĠUn iverse\nĠH ig\nn ie\no ard\nĠheart s\nĠG re\nuss ion\nĠmin istry\nĠpen et\nĠN ut\nĠO w\nĠX P\nin stein\nĠbul k\nS ystem\nic ism\nĠMarket able\nĠpre val\nĠpost er\nĠatt ending\nur able\nĠlicens ed\nĠG h\net ry\nĠTrad able\nĠbl ast\nà ¤\nĠTit an\nell ed\nd ie\nH ave\nĠFl ame\nĠprof ound\nĠparticip ating\nĠan ime\nĠE ss\nĠspec ify\nĠregard ed\nĠSpe ll\nĠs ons\nown ed\nĠm erc\nĠexper imental\nland o\nh s\nĠDun geon\nin os\nĠcomp ly\nĠSystem s\nar th\nĠse ized\nl ocal\nĠGirl s\nud o\non ed\nĠF le\nĠconstruct ed\nĠhost ed\nĠsc ared\nact ic\nĠIs lands\nĠM ORE\nĠbl ess\nĠblock ing\nĠch ips\nĠev ac\nP s\nĠcorpor ation\nĠo x\nĠlight ing\nĠneighb ors\nĠU b\nar o\nĠbe ef\nĠU ber\nF acebook\nar med\nit ate\nĠR ating\nĠQu ick\nĠoccup ied\nĠaim s\nĠAdd itionally\nĠInt erest\nĠdram atically\nĠhe al\nĠpain ting\nĠengine ers\nM M\nĠM ust\nĠquant ity\nP aul\nĠearn ings\nĠPost s\nst ra\nãĥ¼ ãĥ\nĠst ance\nĠdro pping\nsc ript\nĠd ressed\nM ake\nĠjust ify\nĠL td\nĠprompt ed\nĠscr ut\nĠspeed s\nĠGi ants\nom er\nĠEd itor\nĠdescrib ing\nĠL ie\nment ed\nĠnow here\noc aly\nĠinst ruction\nfort able\nĠent ities\nĠc m\nĠN atural\nĠinqu iry\nĠpress ed\niz ont\nfor ced\nĠra ises\nĠNet flix\nĠS ide\nĠout er\nĠamong st\nim s\nows ki\nĠclim b\nne ver\nĠcomb ine\nd ing\nĠcomp r\nĠsignific ance\nĠremem bered\nĠNev ada\nĠT el\nĠSc ar\nĠWar riors\nĠJ ane\nĠcou p\nb as\nĠtermin al\n, -\nO H\nĠt ension\nĠw ings\nĠMy ster\nï¿½ï¿½ ï¿½ï¿½\nĠUn like\nval id\nviron ments\nĠAl i\nĠn aked\nbook s\nĠM un\nĠG ulf\nĠd ensity\nĠdim in\nĠdesper ate\nĠpres idency\nĠ198 6\nh y\nIN D\nĠun lock\nim ens\nĠhand led\nĠE b\nĠdisapp eared\nĠgen re\nĠ198 8\nĠdetermin ation\nSt ream\nik o\nap ters\nĠacknow ledge\nJ an\nĠcapital ism\nP at\nĠ20 20\nĠpain ful\nĠcur ve\nĠbom bs\nst orm\nĠMet al\nen cer\nĠF ig\nĠA aron\nanc hes\nĠins piration\nĠexha ust\nt ains\nash i\nĠdesc ript\nĠr itual\nĠChel sea\nĠpromot ion\nĠH ung\nĠW ard\niv a\nĠE T\nĠto ss\nall ow\nĠFranc is\nD ep\nĠhapp iness\nĠGl ass\nĠbet a\nĠstreng then\nN E\no a\nĠbutt ons\nĠMur ray\nĠkick ed\nQu est\nĠT alk\nĠS everal\nĠZ ero\nĠdr one\nul k\nĠc am\nĠM obile\nĠprevent ing\nĠret ro\nĠA x\nĠcru el\nĠflo at\n. ),\nĠfil ing\nĠGr ant\nĠB or\nĠr ib\nĠchampions hip\nĠM erc\nĠsty les\nĠc ake\nĠbuild s\nĠS elf\nio x\nĠep ic\noy d\nB el\nĠSt ew\n. (\nah u\nĠBe yond\nĠout s\nĠsol o\nĠT ree\nĠpres erve\nĠt ub\nAR E\nro c\nĠIm pro\nĠW right\nĠbu nd\nĠtr aged\nĠoccas ional\nb ian\nSec ond\nr ons\nĠinter actions\nform ed\ns ing\nĠown s\nĠh ockey\nGener al\nĠlog ical\nĠexp end\nĠesc al\nĠGr iff\nĠC rown\nĠRes erve\nĠsto pping\nĠexc use\nsec ond\nĠoper ated\nĠre aches\nĠMal ays\nĠpoll ution\nĠBrook lyn\nĠde lete\nĠhas h\nBl ock\nah a\nâĢ ³\nĠsh orter\np iece\n> </\nĠh orm\nĠW at\nĠBre ak\nĠprohib ited\nĠint ensity\nĠAl an\nĠli ability\n? !\nand ed\nĠneigh bour\nĠCol lection\nĠf ires\nĠrevolution ary\nf ly\nĠOr leans\nWh ite\nĠW rit\nĠD awn\nĠsett le\nĠexec ute\nB M\nĠspokes woman\nĠlif estyle\nĠclick ing\nĠK ill\nĠLiber al\nĠN azi\nĠtra iler\nĠmount ains\nĠdam n\nz es\np es\nĠpress ing\nĠb ail\nĠOrgan ization\nĠp ir\nĠth irty\nĠelect rical\nĠ1 15\nĠP oly\nĠR ap\nĠSt rike\nĠC ann\nĠdemand ed\nĠback ing\ndef ault\nspe ed\nĠLeg isl\nĠmother s\nĠB ody\nĠvar iation\nced ented\np owered\nle ading\nN ever\nĠg rave\nĠAnt i\nA W\nĠinterview ed\nĠG ab\nĠF at\nĠrook ie\nu u\nĠdep os\nix on\nĠam pl\nret ion\nĠHe at\nĠpeace ful\nS M\nie ve\nĠd iver\nĠVict oria\nĠm ic\np df\nĠst ating\nĠl ung\nĠcritic ized\nĠvacc ine\nĠLoad ing\nur se\nT ake\nĠFr an\nĠS old\nĠRob in\nĠdetect ed\nĠSc ript\nĠadjust ed\nĠsen ator\nĠopp osing\nEr ror\nC ount\nĠconflic ts\nĠo w\nĠAr gent\nĠmatch ing\nh h\nĠTre k\nst arter\n\" ),\nĠA F\nod er\nxx xx\nĠAl t\nac re\nĠP ick\nĠSol ar\nĠD al\nO ct\nĠB att\nĠs rc\nĠeng agement\nĠexecut ives\nĠliber ty\nj ava\nĠtal ented\nigen ous\nĠcon secut\n.. ...\nIn fo\nĠhor rible\nĠsurprising ly\nf eed\nic ating\nĠL ED\nĠfem ales\nSt ation\nell er\nĠOak land\nĠmechan ical\ni ology\nĠV ar\nĠrob ust\nett ings\nott a\nĠthe oret\nĠret ain\nk ward\nĠd a\nĠdeploy ed\nd el\nĠAnd y\nĠsubsc ribe\nwe b\nĠn a\nĠMic hel\nĠpart ially\nĠCome y\nĠc rown\nĠM aj\nĠBl u\nr ator\nD ay\nIN T\nĠdocument ed\nĠG DP\ng i\nche ll\nĠbrut al\nĠB ab\nst ration\nĠthe ft\nĠt ube\n@ @\nĠqu ery\nĠL incoln\nĠpublish ing\nĠw ore\nor ical\nĠr ic\nĠnot able\nĠsubsequ ently\nne x\nĠobser ve\nĠB oe\nĠc odes\nm ain\nW H\nĠS L\nĠresident ial\nav an\nĠm as\nare st\nade on\nOU T\nĠsoph istic\nant e\nĠc ens\nĠ **\nĠmort ality\nĠyour s\nĠoccas ions\nĠrec alled\nĠDri ver\nĠv ocal\nĠbath room\nĠsh ops\nĠcollabor ation\nĠOb amacare\nĠC ell\nCh ar\nSu per\nC re\nĠt ends\nĠt orn\nĠeconom ics\na very\nĠR aid\nĠS em\nĠshould ers\nĠexpect ing\nĠexam ination\nen ame\nĠU I\ni ability\nol as\nĠAm b\nĠD ra\nĠmid field\nĠI C\nĠlay out\nĠflo ating\nf i\nit ative\nĠtremend ous\nĠ Ð\nĠab und\nW ork\nĠLight ning\nĠsimilar ly\nĠconserv atives\nĠpr ay\nB E\niz arre\nĠt empt\nĠemphas is\nĠMet ro\nĠf ishing\nĠmar ry\nne g\nĠStud y\nĠrec k\nĠdis pos\non ing\nbs ite\nĠsusp ic\nĠmer ch\nĠG ib\nĠDes cription\nĠD VD\nw he\nĠY emen\nĠen vironments\noot ing\nĠMod ern\ne u\nĠreflect s\nĠh oney\nĠanaly st\nĠg ut\nd ec\nA ction\nĠhousehold s\nĠst er\nĠtem ple\nĠreform s\nĠfavour ite\nĠdead line\nĠL E\nTh ree\nĠWith in\nA ug\nĠnight s\nelt a\nĠinv alid\nĠEx change\nĠDel hi\nw hen\ninc ome\nĠ ðŁ\nĠwire less\nsc ribe\nist a\nĠhost ile\nĠall y\nĠg ig\nĠout lets\nĠD or\nEM ENT\nĠas h\nĠab stract\nOR D\nĠMot or\nĠadv iser\nist le\nĠb ases\nĠcourt esy\nĠcross ing\nĠcle ared\nĠrefuge e\ncos ystem\nĠthrow s\nf un\nbour ne\nd ays\nĠdisag ree\nĠN ative\nĠreflect ed\nĠF ast\nĠY ellow\nĠSing apore\nĠR aven\nĠembr ace\nĠK u\nĠC hen\nĠEar ly\nĠappoint ment\nĠMin i\nit ement\nĠpl acing\nĠb icy\nS R\nĠwh is\nS U\nĠinvestig ated\nĠphotograph s\ng ithub\nĠBe at\nĠR ing\nig hed\ni ar\nĠev olved\neral d\nĠd un\nĠh ub\nI AL\nĠencour aging\nĠPr int\nĠD ays\nĠpro secution\nĠp ants\naz y\nl ive\nĠfoss il\nĠJ u\nĠro cks\nud ge\nĠR ace\nĠg reet\nb ie\nĠf illing\nĠL en\nĠdi abetes\nĠfire arms\num ing\nenez uel\nĠB B\nĠaccept ing\nAT H\nĠres ort\nĠh unt\nri k\nuck er\nam ents\nĠsust ained\nĠcross ed\nĠbreak fast\nĠatt ributes\nlect ed\nat ile\nĠv ibr\nĠK al\nars on\nop les\nĠtou ched\nĠdam ages\nĠimp ressed\nru p\nĠan ch\nĠAd ams\nH el\nĠVict or\nĠmount ed\nĠC C\nĠdelic ious\nsp an\nell a\nĠel abor\nam ples\nĠdef ic\nĠconstit u\nu ates\nĠM ission\nĠT her\nĠMon ster\nb es\nRe uters\nĠInd ones\nh ill\nmun ition\nĠconfirm ation\nĠCons ider\nac ent\nĠj et\nĠEm ploy\nĠGT X\nn an\nĠSp ider\nĠprocess or\nĠpat ri\nĠPent agon\nĠRob inson\nĠreal istic\nÃ ±\nĠappear ing\nĠp ipe\nom ed\nĠf ru\nĠaw ful\nĠeval uation\nĠintellig ent\nĠC itiz\nĠfund ra\nod ium\nĠtwe ets\nĠwor n\npr ing\nĠkid n\nĠreb els\nĠK am\nĠNether lands\nĠS W\nĠacqu isition\nĠM ale\nãĥ ª\nomb ies\nĠtrad em\nĠStat us\nB re\nĠTH IS\nĠad verse\nĠN EW\ns ign\nĠorgan isation\nen c\nĠHar per\nap or\nĠMem bers\nĠPe ace\nĠAir port\nĠOther s\nĠscr atch\nĠP il\nĠsens or\nĠadop tion\nĠHot el\nĠDr ag\nĠhonest ly\nĠy ard\nĠFor ces\nĠpat ent\nĠb ass\nĠquiet ly\nĠbreat hing\nĠp ose\ni ors\nĠJ ess\nst atic\nIT E\nO ffic\nĠj ew\nw cs\nĠ14 0\nĠpre view\nipp i\nĠunf ortunately\noke mon\nĠh orn\nĠre ass\nĠpe er\nock er\nĠunt o\nĠGr ay\nĠclean ing\nĠattract ed\n200 7\nP oint\nk ill\nĠAg reement\nur ches\nĠhor r\nĠMiss iss\nĠworth y\nĠfl owers\nt own\nd ll\nĠre actions\nĠde ce\nĠindic ating\nM D\nĠpre ference\nĠM VP\ness ional\nĠT arget\ng ence\nĠInd ians\nĠm isc\nĠfree ly\nĠmus cles\nĠline up\nĠimpact s\nous ing\nom i\nac ular\nĠcontro lling\nag ine\nc ery\nhe ll\nĠrank ing\nĠN ich\nĠA ve\n12 8\nĠhigh way\nĠinc ons\nĠb inding\nĠstrugg les\nĠPitt sburgh\nĠgr ay\nr in\nĠcom ics\nĠS port\nĠrel atives\nĠfr ight\nĠpro be\nĠPort ug\nĠv oc\nĠt u\nĠCor ps\nĠposs ibilities\nĠqual ify\nwcs store\nĠl ibraries\nĠm igrants\nĠent ries\nĠconsecut ive\nv als\nĠChair man\nĠh ill\nIM E\nĠG ard\nĠinequ ality\nf ox\nĠS ave\nĠc ort\nclaim ed\nĠtra its\nĠp our\nĠmiss iles\nĠess ence\nĠs ends\nĠall iance\nĠw ishes\nĠChrist opher\nB ig\nN Y\nĠJac ob\ns an\nur red\nĠS O\nll y\nĠadvoc ate\nĠB ond\nĠ\" /\nUs ing\nĠdistrict s\nĠG ate\nĠB ir\nr idge\nĠN az\nĠR s\nbo ards\nĠG a\nĠRe agan\nĠinflu enced\n1 000\nap y\nĠchalleng ed\nĠb arg\nĠfac ulty\nĠF if\nĠacqu ire\nA c\nĠin sect\nĠinstr uments\nĠle af\nth odox\nM essage\nĠt ale\nĠthere by\nĠtra p\nĠstrong est\nĠMil itary\nis ible\nĠ198 4\nethe less\nĠflex ible\nĠkill s\nĠfin ishing\nĠS ize\nĠredu ces\nĠep id\nĠorient ation\nf ull\nĠtr ace\nĠl aser\nĠopp ose\nĠed iting\nĠmoment um\nä º\nsh ow\nV I\nĠL ad\nĠ198 5\nĠmurd ered\n9 00\nut her\nĠprob ability\nĠP oll\nĠrel uct\nĠChe m\nĠMont real\nĠadequ ate\nĠPol and\nĠSher iff\num ph\nĠo k\nĠ 000\nĠ\" [\nĠoper ators\nĠF er\nĠmod es\nĠE ve\nĠdiscipl ine\nN ET\nH and\nĠor al\nĠW E\nem ail\nJ P\nĠPalestin ians\nĠhe nce\nĠL ess\nĠover l\nd ig\nĠintim id\nĠCo al\nĠr anging\nth a\nĠdist ant\nĠf ib\nĠInd ex\nĠW onder\nĠP el\nhatt an\nĠH ug\nÃ Ĺ\nra it\nĠwra pped\nĠR PG\nĠchemical s\nĠM oney\nĠfro zen\nĠind irect\nĠAgain st\nE nd\nĠuncom fortable\nĠGall ery\nĠPost ed\nØ §\nond uct\nĠconsequ ence\nĠbit ter\nĠ198 7\np op\nĠcount less\nĠAl aska\nff ff\nĠdepart ure\nĠref und\nĠI an\ni ated\nĠsee ks\nĠmechan ics\nĠjurisd iction\nlyn n\nĠal ike\nĠH unt\nath on\nĠres olved\nĠc ache\nĠdist inction\nd irect\nĠenc ount\nou b\nbe at\nĠCount ry\nse arch\nĠcontin uous\nĠmod est\nĠR ail\nth ood\n1 30\nB UG\nĠcrim inals\nĠindic ation\nĠencount ered\nl ast\nĠW y\nĠide ology\nĠP DF\nsec urity\n] )\nĠJim my\nĠE N\nĠh iring\nT em\nĠp ig\naun t\nĠCry stal\nĠpen alties\nĠcap ability\nĠp y\nĠproduct ive\nĠbal anced\nĠGe Force\ncl ick\nolit an\nod s\nĠafter wards\nĠplay offs\nĠG ill\nU ser\nĠback s\np ub\nt ag\nĠabs urd\np iring\nĠc iting\nĠtr illion\nĠoblig ation\nĠmax im\nah oo\nc f\num i\nĠAl pha\nĠN elson\nĠpursu ant\nin itely\nĠf ract\nent ry\nber y\nĠTh or\nAdd ed\nĠD J\nĠG ene\nĠaw kward\nSt ud\nĠwal let\nĠDiv ine\nari os\nĠrele asing\nĠed ited\nĠaccompl ished\nB est\nĠed ges\nĠplan es\nĠfeed ing\n\" },\"\nĠdiscl osure\nĠgr ain\nair y\no ons\nern and\nV R\nĠreason ably\nĠdr um\nĠpart ial\nĠgraph ic\nĠunpre cedented\nĠadv ised\nM icro\nĠAss ad\npoint s\nsc ar\nĠZ one\ntt es\nĠ7 00\nv o\nĠH amp\nĠfix es\nĠca ution\nĠstr ings\nĠpan els\nĠle ak\nĠpr icing\nrow th\nĠEr ror\nĠS aints\nf ix\nĠobserv ations\nĠA bs\nĠsuggest ion\nĠUkrain ian\nĠbar rier\nĠpain ted\nB et\nim ir\nĠS pect\np ot\norne ys\nĠcomp ound\nĠbe ars\nĠR ush\nĠlux ury\nS um\nĠor bit\nĠMar c\nĠex empt\nĠTra il\nĠM O\nĠH ans\nĠWe apon\noc used\numin um\nĠJer ry\nĠb ust\nĠA G\nĠW iki\nĠend less\nĠV lad\nĠB ah\nĠR adeon\nke ys\nĠSur vey\nĠV iol\ndef ine\nle an\nĠcomm od\nĠreven ues\nÅ į\nĠfurn iture\nĠcast ing\nĠdiplom atic\nĠPlay ers\nĠK illed\nĠmod ify\nĠinnov ative\nĠAb u\nn or\nĠbond s\nĠcoach ing\nM er\nĠmod ules\nĠPatri ots\nĠenh anced\nĠproceed ings\nĠteam mates\nĠ12 8\nard o\nĠcomprom ise\nĠM uch\nĠfle w\nĠEd ge\nĠunnecess ary\nĠdoct rine\nre port\nĠOr lando\nĠProf ile\nĠplay off\nfriend ly\nĠcompl ain\nĠM C\nĠO pt\nĠG B\nĠbeat en\nĠg olf\nĠpl acement\nB it\nĠnews letter\nĠ201 9\nvis or\nraw l\nĠiP ad\nĠact ed\nĠju ice\nĠdec ks\nP N\nsu ccess\nĠH alf\nĠdele ted\nĠsec rets\nĠas ylum\nM art\nĠAct iv\nĠGu y\nĠT s\nĠd ys\nĠassum ing\nĠman a\nĠsub ur\nĠ12 5\nM edia\nAR Y\nr ide\nc p\nĠdifficult ies\nĠcollect ing\nĠbank rupt\nn on\nĠcomp osed\nĠvol t\nĠmilit ants\nĠ> >>\nĠM ormon\nt or\nĠpartic les\nĠB art\nry ption\nĠad min\nĠsqu ee\nVID IA\nĠcreat or\niam eter\nic ular\nN BC\nĠgrab bed\nĠn odd\nĠr ated\nĠrot ation\nĠgr asp\nĠexcess ive\nĠE C\nĠWh it\nĠinvent ory\nault s\nĠF B\nĠe cosystem\nĠbill ions\nĠvent ure\nn amed\nĠdef ender\nout e\nInst ead\nir able\nW ar\nĠassum ption\nĠb ite\nĠearth qu\nt ail\nsp ace\nĠgif ts\nboy s\nĠinev itable\nĠstruct ural\nĠbenef icial\nĠcompe lling\nh ole\nerv ation\nĠco at\no j\ninc arn\nĠY ears\nĠdetermin ing\nĠrhet oric\nĠbound aries\nĠwh ites\nA nt\nadd y\n) -\nra ham\neter min\nĠhar vest\nĠCon c\nĠlapt op\nĠM atch\nĠenjoy ing\ncc a\noll ar\nĠtri ps\nĠadd iction\nĠS ak\nĠpow ered\nĠc ous\nĠRuss ians\nie re\nĠret rie\nqu ality\nĠdiff er\nĠking dom\nĠL aur\nĠCap itol\nĠcon clusions\nĠAl tern\nĠN av\nĠtrans parent\nB ER\nG roup\nĠCom plete\nĠinf er\nĠint rig\nĠins ane\nR O\noph ob\nis en\nqu al\nMich ael\nĠm useum\nĠP ope\nĠres et\nr ative\nf ive\nĠagg reg\nitte es\nosit ory\nĠcar b\nĠRec ord\nĠdec ides\nĠF ix\nĠexcept ions\nĠCommission er\nun s\nĠEnvironment al\nĠlegend ary\nist ence\nĠtun nel\nk m\nĠins ult\nĠt roll\nĠsh ake\nĠdet ention\nqu es\nĠCh rome\nĠF iles\nĠsub t\nĠprospect s\nĠpro l\nre nder\npro of\nĠperform ances\nSt r\nĠh ref\nern ame\nĠachieve ment\nĠf ut\nF ull\nĠLe ban\ngo ogle\nãĥ Ī\namp a\nMay be\nĠproject ed\nĠE mb\nĠcol leg\nĠa wards\nĠâ Ķ\nG old\nĠBl ake\nĠR aj\nif ting\nĠp ending\nĠinst inct\nĠdevelop ments\nCon nect\nĠM and\nĠW ITH\nĠPhilipp ines\nprof ile\nĠalt ogether\nĠB und\nĠT D\noo oo\namp ed\nip h\nĠste am\nĠold est\nĠdet ection\nul pt\nĠ ç\nĠWay ne\n200 6\nf a\nĠcir cles\nĠF u\nĠdon ors\nappropri ate\nĠDak ota\nj amin\nĠmotiv ated\nĠpurch ases\nĠLouis iana\nĠS pl\nĠgl obe\nĠ10 5\nz ip\nc all\nĠdepart ments\nĠsustain able\n10 5\nĠO P\nif iers\nĠprevent ed\nĠinc omp\nĠComm ander\nĠdom inated\nĠÂ »\nĠinvest ed\nĠcomplex ity\nĠin cl\nĠens uring\nĠreal m\nyn c\nĠInd ependent\nr ained\nĠJ en\nĠFl ight\nĠat he\nĠspec ulation\nĠT E\noc ate\nt ic\nĠpl aint\nher ry\nĠto y\nĠ1 11\nĠpl ates\nst atus\nĠIs a\nĠdev oted\nC op\nĠE S\n25 5\nur rency\nM ain\nĠsl aves\nĠpe pper\nĠqu otes\nĠce iling\nĠF ish\nĠtrans formation\nĠfra ction\nĠadvant ages\nĠto ile\nĠstun ning\nĠmo ist\nbre aking\ns i\nĠL ocation\nĠMed ium\nĠtext s\nĠu gly\nĠb io\n. âĢĶ\nĠB ased\nĠtr ains\nĠW ing\nĠAn cient\nĠRec ords\nĠH ope\nSpe cial\nades h\nob i\n[ /\nĠtempor arily\nV er\nh u\nos er\nĠover night\nĠm amm\nĠTre asury\nĠV enezuel\nĠMeg a\nĠt ar\nĠexpect s\nbl ack\nor ph\n\\\\ \\\\\nĠaccept ance\nĠrad ar\ns is\nĠjun ior\nĠfram es\nĠobserv ation\nac ies\nP ower\nĠAdv anced\nM ag\nolog ically\nĠMe chan\nĠsent ences\nĠanaly sts\naugh ters\nforce ment\nĠv ague\nĠcl ause\nĠdirect ors\nĠeval uate\nĠcabin et\nM att\nĠClass ic\nA ng\nĠcl er\nĠB uck\nĠresear cher\nĠ16 0\nĠpoor ly\nĠexperien cing\nĠP ed\nĠMan hattan\nĠfre ed\nĠthem es\nad vant\nĠn in\nĠpra ise\n10 4\nĠLib ya\nb est\nĠtrust ed\nĠce ase\nĠd ign\nD irect\nĠbomb ing\nĠm igration\nĠSci ences\nĠmunicip al\nĠA verage\nĠgl ory\nĠreve aling\nĠare na\nĠuncertain ty\nĠbattle field\nia o\nG od\nĠc inem\nra pe\nel le\nap ons\nĠlist ing\nĠwa ited\nĠsp otted\nke ley\nĠAud io\ne or\nard ing\nidd ing\nig ma\nĠN eg\nĠl one\nĠ ----\nex e\nd eg\nĠtrans f\nĠwas h\nĠsl avery\nĠexpl oring\nĠW W\nats on\nĠen cl\nl ies\nĠC reek\nĠwood en\nMan ager\nĠBr and\num my\nĠAr thur\nĠbureau cr\nĠbl end\nar ians\nF urther\nĠsupposed ly\nĠwind s\nĠ19 79\nĠgrav ity\nĠanalys es\nĠTra vel\nĠV eter\nĠd umb\nĠaltern ate\ng al\nĠconsum ed\nĠeffect iveness\n.' '\nĠpath s\nond a\nL A\nĠStr ong\nĠen ables\nĠesc aped\nĠ\" \"\nĠ1 12\nĠ198 3\nĠsm iled\nĠtend ency\nF ire\nĠp ars\nĠR oc\nĠl ake\nĠf itness\nĠA th\nĠH orn\nĠh ier\nĠimp ose\nm other\nĠp ension\nic ut\nbor ne\nic iary\n. _\nĠS U\nĠpol ar\nis y\neng u\nitial ized\nAT A\nw rite\nĠexerc ises\nĠD iamond\not ypes\nĠharm ful\non z\nĠprint ing\nst ory\nĠexpert ise\nĠG er\nĠtraged y\nĠF ly\nĠd ivid\namp ire\nst ock\nM em\nĠre ign\nĠun ve\nĠam end\nĠProp het\nĠmut ual\nĠF ac\nĠrepl acing\nH ar\nĠCirc uit\nĠthro at\nĠSh ot\nĠbatter ies\nĠto ll\nĠaddress ing\nĠMedic aid\nĠp upp\nĠN ar\nol k\nĠequ ity\nM R\nĠHis pan\nĠL arge\nm id\nD ev\nĠexp ed\nĠdem o\nĠMarsh all\nerg us\nĠf iber\nĠdiv orce\nĠCre ate\nĠsl ower\nĠPark er\nĠStud ent\nĠTr aining\nRet urn\nĠT ru\nĠc ub\nĠRe ached\nĠpan ic\nĠqu arters\nĠre ct\nĠtreat ing\nĠr ats\nĠChristian ity\nol er\nĠsac red\nĠdecl are\nul ative\net ing\nĠdeliver ing\nest one\nĠt el\nĠL arry\nĠmet a\nac cept\nart z\nĠRog er\nhand ed\nĠhead er\nĠtra pped\nĠCent ury\nĠkn ocked\nĠOx ford\nĠsurviv ors\nb ot\nĠdemon stration\nĠd irt\nĠass ists\nOM E\nĠD raft\nortun ate\nfol io\npe red\nust ers\ng t\nĠL ock\nĠjud icial\nver ted\nĠsec ured\nout ing\nĠBook s\nĠhost ing\nĠlif ted\nl ength\nĠj er\nĠwhe els\nĠR ange\numbn ails\nĠdiagn osis\nte ch\nĠStew art\nĠP ract\nĠnation wide\nĠde ar\nĠoblig ations\nĠgrow s\nĠmand atory\nĠsusp icious\n! '\nA pr\nG reat\nĠmort gage\nĠprosecut or\nĠeditor ial\nĠK r\nĠprocess ed\nung le\nĠflex ibility\nEar lier\nĠC art\nĠS ug\nĠfoc uses\nĠstart up\nĠbre ach\nĠT ob\ncy cle\nãĢ Į\nro se\nĠb izarre\nãĢ į\nĠveget ables\n$ $\nĠret reat\nosh i\nĠSh op\nĠG round\nĠSt op\nĠHawai i\nĠA y\nPer haps\nĠBe aut\nuff er\nenn a\nĠproduct ivity\nF ixed\ncont rol\nĠabs ent\nĠCamp aign\nG reen\nĠident ifying\nĠreg ret\nĠpromot ed\nĠSe ven\nĠer u\nne ath\naug hed\nĠP in\nĠL iving\nC ost\nom atic\nme ga\nĠN ig\noc y\nĠin box\nĠem pire\nĠhor izont\nĠbr anches\nĠmet aph\nAct ive\ned i\nĠFil m\nĠS omething\nĠmod s\ninc ial\nĠOrig inal\nG en\nĠspir its\nĠear ning\nH ist\nĠr iders\nĠsacr ific\nM T\nĠV A\nĠS alt\nĠoccup ation\nĠM i\nĠdis g\nlic t\nĠn it\nĠn odes\ne em\nĠP ier\nĠhat red\nps y\nãĥ ī\nĠthe ater\nĠsophistic ated\nĠdef ended\nĠbes ides\nĠthorough ly\nĠMedic are\nĠbl amed\narent ly\nĠcry ing\nF OR\npri v\nĠsing ing\nĠI l\nĠc ute\no ided\nolit ical\nĠNe uro\nå ¤\nĠdon ation\nĠEag les\nĠG ive\nT om\nĠsubstant ially\nĠLic ense\nĠJ a\nĠg rey\nĠAn imal\nĠE R\nĠU nd\nĠke en\nĠconclud e\nĠMississ ippi\nEng ine\nĠStud ios\nP ress\no vers\nll ers\nĠ3 50\nĠR angers\nĠr ou\nert o\nE p\niss a\niv an\nĠse al\nĠReg ist\ndis play\nĠwe aken\nu um\nĠComm ons\nĠS ay\nĠcult ures\nĠl aughed\nĠsl ip\nĠtreat ments\niz able\nm art\nĠR ice\nĠbe ast\nĠob esity\nĠLa ure\nig a\nWh ich\nhold er\nĠelder ly\nĠp ays\nĠcompl ained\nĠc rop\nĠpro c\nĠexplos ive\nĠF an\nĠAr senal\nA uthor\nef ul\nĠme als\nĠ( -\nid ays\nĠimag ination\nĠann ually\nĠm s\nas ures\nH ead\nik h\nm atic\nĠboy friend\nĠCom puter\nĠb ump\nĠsur ge\nĠCra ig\nĠKir k\nD el\nmedi ate\nĠscen arios\nĠM ut\nĠSt ream\nĠcompet itors\nÙ Ħ\nĠStan ford\nĠRes ources\naz ed\nb age\nĠorgan is\nĠRe lease\nĠsepar ately\nĠha bits\nĠmeasure ments\nĠCl ose\nĠaccomp any\nĠg ly\nĠt ang\nĠR ou\nĠplug in\nĠcon vey\nĠChall enge\noot s\nj an\nĠcur s\nĠRel ations\nke eper\nĠapproach ing\np ing\nSpe aking\nĠarrang ement\nĠV I\nare ttes\nĠaffect ing\nĠperm its\nb ecause\nĠu seless\nĠH us\n!! !!\nĠdestro ying\nUn fortunately\nĠfasc inating\nS em\nĠelect oral\nĠtrans parency\nĠCh aos\nĠvolunte er\nĠstatist ical\nĠactiv ated\nro x\nWe b\nH E\nĠHamp shire\nis ive\nM ap\nĠtr ash\nĠLaw rence\nst ick\nC r\nĠr ings\nEX T\nĠoper ational\nop es\nD oes\nĠEv ans\nĠwitness ed\nP ort\nĠlaunch ing\nec onom\nw ear\nĠPart icip\num m\ncul es\nĠR AM\nĠT un\nĠass ured\nĠb inary\nĠbet ray\nĠexpl oration\nĠF el\nĠad mission\nit ated\nS y\nĠav oided\nĠSim ulator\nĠcelebr ated\nĠElect ric\n¥ ŀ\nĠcl uster\nitzer land\nhe alth\nL ine\nĠN ash\nat on\nĠsp are\nĠenter prise\nĠD IS\nclud es\nĠfl ights\nĠreg ards\nĠÃ Ĺ\nh alf\nĠtr ucks\nĠcontact s\nĠunc ons\nĠCl imate\nĠimm ense\nN EW\noc c\nect ive\nĠemb od\nĠpat rol\nĠbes ide\nĠv iable\nĠcre ep\nĠtrig gered\nver ning\nĠcompar able\nq l\nĠg aining\nass es\nĠ( );\nĠG rey\nĠM LS\ns ized\nĠpros per\n\" ?\nĠpoll ing\nĠsh ar\nĠR C\nĠfire arm\nor ient\nĠf ence\nĠvari ations\ng iving\nĠP i\nosp el\nĠpled ge\nĠc ure\nĠsp y\nĠviol ated\nĠr ushed\nĠstro ke\nĠBl og\nsel s\nĠE c\n,' '\nĠp ale\nĠColl ins\nter ror\nĠCanad ians\nĠt une\nĠlabor atory\nĠn ons\nt arian\nĠdis ability\nĠG am\nĠsing er\nal g\nĠSen ior\nĠtrad ed\nĠWar rior\nĠinf ring\nĠFrank lin\nĠstr ain\nĠSwed ish\nĠsevent h\nĠB enn\nĠT ell\nĠsynd rome\nĠwond ered\nid en\n++ ++\nig o\nĠpur ple\nĠjournal ism\nĠreb el\nĠf u\nbl og\nĠinv ite\nren cies\nĠCont act\nIs rael\nĠCont ent\nĠche er\nĠbed room\nĠEngine ering\nĠQue ens\nĠd well\nĠPlay Station\nĠD im\nĠCol on\nl r\nĠoper ates\nĠmotiv ation\nUS A\nast ered\nC ore\nĠTr uth\nol o\nOS E\nĠMem ory\nĠpred ec\nĠan arch\nĠ19 20\nĠY am\nÃ ¨\nb id\nĠgr ateful\nĠexc itement\nĠtre asure\nĠlong est\nct ive\nĠdes erves\nĠreserv es\nĠcop s\nĠOtt awa\nĠEgypt ian\nank ed\nĠart if\nĠhypot hesis\n: /\nĠpurch asing\nĠlove ly\nH P\nĠdiv ide\nĠstrict ly\nĠquestion ing\nĠtaxp ayers\nĠJ oy\nĠroll s\nĠHe avy\nĠp orts\nĠmag netic\nĠinf lamm\nĠbr ush\nt ics\nâ ĪĴ\nĠbott les\npp y\nĠp add\nãĤ ¯\nm illion\nĠdevast ating\nĠcomp iled\nĠmed ication\nĠtw elve\nĠPer ry\nSp ace\nim b\ny our\nĠle aked\nĠT ar\nĠun ity\nĠinfect ed\nĠtravel ed\nID E\nĠMc Donald\nt xt\nĠPr inc\nĠinter ven\nĠTai wan\nĠP ow\nĠbe aring\nĠTh read\nĠz ones\niz ards\nun ks\nCh apter\nll or\nĠÂ ·\nĠw ounds\nĠdisc retion\nĠsucceed ed\nik ing\nĠicon ic\nC all\nĠscreen ing\nĠM is\nict s\nĠmin isters\nĠsepar ation\nPl ayer\nĠb ip\nĠbel oved\nĠcount ing\nĠE ye\nar ound\ning ing\nĠtable t\nĠoff ence\nin ance\nh ave\nĠInf o\nĠNin ja\nĠprotect ive\nĠC ass\nM ac\nĠQual ity\nN orth\nĠ ic\nĠCub a\nĠChron icle\nĠPro perty\nĠfast est\not os\nĠG erm\nOW N\nĠbo om\nĠStan ley\nergus on\nĠcle ver\nĠent ers\nm ode\nter ior\nĠS ens\nĠlin ear\nAR K\nĠcomp aring\nĠpure ly\nĠsaf er\nĠPot ter\nĠc ups\nR T\nĠgl uc\nĠatt ributed\nĠdu pl\nĠP ap\nĠprec ious\nĠp a\niction ary\nĠT ig\nĠTo o\nol utions\nst an\nĠrob ots\nĠlob b\nĠstat ute\nĠprevent ion\nw estern\n16 0\nĠAct ive\nĠMar ia\nh al\nN one\nell ar\nĠK B\nĠPart ners\nĠSing le\nĠFollow ing\nang o\nac ious\nĠth ou\nĠk g\nĠinflu ential\nĠFriend s\nS ur\nain ted\nĠfor ums\nĠst arter\nĠcitizens hip\nĠE lection\non ge\not ation\nos ph\n;; ;;\nut ical\np ur\nere n\nĠaccus ations\nbit ious\nab bit\nĠOr d\nPost ed\nir k\nĠsens itivity\nic he\nĠAm y\nĠF ab\nĠsum mit\nĠped est\nĠrub ber\nĠagric ultural\nĠcan cel\nA E\nĠin aug\nĠcont am\nĠfirm ly\ni w\nst age\nĠK an\nĠt ier\nĠinv ention\nĠtransl ated\nĠR ules\nB ox\nTw itter\nID S\nĠp izza\nĠdeb ug\nĠD rop\nv s\nĠh orses\nb ig\nĠb oring\nĠh ood\nĠMcC ain\nat ched\nĠBro s\nĠsk ip\nĠess ay\nst at\nĠLeg ends\nĠam munition\nau c\nĠshoot er\nĠun h\nĠsuppl ied\nĠgener ic\nĠS K\nib an\nyr ics\nĠ25 5\nĠclim bing\nForm er\nĠfl ip\nĠjump ing\nĠfrust ration\nĠTer ry\nĠneighborhood s\nĠmed ian\nbe an\nĠbr ains\nFollow ing\nĠsh aped\nĠdraw s\nĠal tered\nJ ack\nĠrecip es\nĠsk illed\nwe alth\nach i\ne lection\nĠbehavi ors\nde als\nĠU ntil\nF e\nĠdecl aration\nmar ks\nĠBet ween\ncel ona\nĠres on\nĠbub ble\nAm ong\nĠim perial\nG S\nĠfemin ist\n200 5\nĠK yle\nĠaccount ing\nĠTe le\nĠT yr\nĠconnect ing\nĠre hab\nĠP red\ns im\nĠmeant ime\nĠphys ician\nM W\nĠCamp bell\nĠBr andon\nĠcontribut ing\nĠR ule\nĠWe ight\nĠN ap\nĠinter active\nĠv ag\nĠhel met\nĠCom b\nf our\nĠsh ipped\nĠcomple ting\nĠP D\nPD ATE\nĠspread ing\nĠsc ary\nerv ing\nĠG as\nĠfr ank\ns chool\nĠrom antic\nĠstab il\nR ob\nĠaccur ately\nĠac ute\nĠH ann\nĠsymbol s\nĠcivil ization\nĠA W\nĠlight ning\nĠcons iders\nĠven ue\nĠ ×\nĠo ven\nĠS F\nh is\nĠn u\nĠLear n\nĠpe oples\nĠst d\nĠsle e\nĠs lic\nĠStat istics\nĠcor ners\nĠB aker\nĠ: )\nment ation\nol ver\nĠlaugh ing\nĠT odd\nond e\nĠH ills\nĠn uts\nĠW oman\npl ane\nĠl iver\nĠIn side\nS orry\nĠagre es\nĠfund ament\nĠF isher\nĠa uction\nĠthread s\ngl as\nĠBas ic\nĠN at\nĠlack ing\nĠceleb ration\nj u\nĠs illy\nE uro\nĠt att\night y\ncont rolled\nT est\nĠSing h\nĠr age\nĠrh yth\no ffic\nĠPh antom\nĠhead lines\nĠrespond ing\nĠMor ning\nĠvit amin\nĠboot s\nĠS ite\nal in\np i\nĠvir al\nĠU C\nD ER\nĠSe x\nĠst ocks\nc urrent\nĠch urches\nĠR are\nĠMur phy\nĠden ial\nĠG aming\nĠtou g\nĠn ick\nĠm akers\nĠRon ald\nĠgener ous\nĠD oc\nĠMor ris\nĠtransform ed\nĠN ormal\nĠ10 4\nĠKick starter\nĠUp on\nOn line\nĠI RS\nĠw rap\nĠl oving\nĠarri ves\nĠD ue\nĠhe ter\nĠM ade\nĠrent al\nĠbelong s\nĠatt orneys\nĠcro ps\nĠmat ched\nul um\nol ine\n10 9\nĠdis par\nĠbuy ers\nĠCam bridge\nĠeth ics\nrou ps\nĠjust ified\nĠmarg inal\nĠrespect ed\nwin ning\nĠnodd ed\nĠSer ge\nĠForm er\nC raft\n######## ########\nĠWar ner\nĠd ash\net e\nĠent ert\nĠE scape\nout heast\nĠkn ees\nĠB omb\nĠr ug\nP ass\nĠatt itudes\ngo vernment\nĠPri or\nĠqual ities\nĠnot ification\nĠPh one\nl ie\nĠanticip ated\nĠCom bat\nĠBar ry\nĠ198 2\nUs ers\non er\nĠcomput ing\nĠConnect icut\nĠless er\nĠpe ers\nĠC u\nĠtechn ically\nĠsub mission\nĠUn iversal\nĠman ually\nour ge\nĠrespond ents\nĠB TC\nĠH ost\nĠf are\nĠB ird\nĠrece ipt\nal so\nĠj ack\nĠagric ulture\nĠsk ull\nĠ! =\nĠpass ive\nĠC I\nĠsoc ieties\nĠremind ed\nĠinter ference\nB uy\nĠâ ľ\ng on\nĠscrut iny\nĠW itch\nĠconduct ing\nĠ ãĥ\nĠexch anges\nĠMit chell\nĠinhab it\nĠtw ist\nB D\nĠwhere ver\ngroup on\nĠj okes\nĠBen jamin\nĠR andom\nfr ame\nĠL ions\nĠhighlight ed\nĠArk ansas\nE nt\nĠp ile\nĠpre lim\ng s\nmind ed\nĠfel ony\nĠG A\nĠL uck\nĠpract ically\nĠB os\nĠact ress\nD am\nĠB ou\nĠvis a\nĠembed ded\nĠhy brid\nĠear liest\nĠsoon er\ns ocial\nĠH A\nĠste ep\nĠdis advant\nĠexplo it\nĠE gg\nĠUlt ra\nĠnecess ity\nL ocal\nie ge\nĠd ated\nĠmass es\nĠsubsc ription\npl ess\nĠan onym\nĠpresum ably\nBl ue\nThe ir\nasket ball\nĠPhil ip\nĠcom ed\nload ed\nr ane\nĠref lection\nCh ina\nĠext ends\nĠform ing\nĠund ers\n200 1\nĠgr at\nĠconcent rations\nĠins ulin\nĠsec ular\nĠwh ilst\nĠwin ners\nAd vertisements\nĠdeliber ately\nĠWork ing\nĠs ink\net ics\nd ale\nĠmand ate\nĠg ram\nĠvac ation\nĠwarn ings\nri pp\nĠTH AT\nĠcomment ary\nĠint u\nĠa est\nĠreason ing\nĠbreak down\nĠZ ombie\nĠ-- >\nĠPolit ical\nc ott\nĠthr ust\nĠtechn ological\nĠdec iding\nĠtraff icking\nL ong\nW elcome\npr ising\nĠCommun ications\nĠend ors\nĠsw ift\nĠmetab ol\nco ins\nres a\nĠHT TP\nĠen roll\nĠH appy\nus r\nint age\nĠ[ \"\nu ably\nĠM aterial\nĠrepe al\nSe pt\nk h\nĠMod i\nĠunder neath\nĠI L\nsh ore\nĠdiagn osed\nace utical\nĠsh ower\nau x\nĠSw itch\nĠStre ngth\nĠj ihad\nn ational\nĠtra uma\nuss y\non i\nĠcons olid\nĠcal ories\nĠF lynn\nag ged\n16 8\nĠP ink\nĠfulf ill\nĠch ains\nĠnot ably\nĠA V\nL ife\nĠCh uck\nm us\nĠUr ban\nĠH end\nĠdep osit\nĠS ad\nĠaff air\nOR K\nie val\nĠF DA\nĠt rop\nĠOver all\nĠvirt ue\nĠsatisf action\nau nd\nĠl un\nĠSw itzerland\nĠOper ation\npro cess\nĠsh ook\nĠcount ies\nle ased\nĠCharl otte\n1 12\nĠtrans cript\nĠre dd\np ush\nĠHe y\nĠAn alysis\n[ \"\nĠaltern atives\nard less\nĠele ph\nĠpre jud\nĠLe af\nH aving\nĠH ub\nĠexpress ions\nĠVol ume\nĠshock ing\nĠRed s\nĠread ily\nĠplan ets\nad ata\nĠcollaps ed\nĠMad rid\nĠir rit\ni pper\nĠEn c\nĠW ire\nĠbu zz\nĠG P\nash a\nĠaccident ally\nur u\nĠfrust rated\nĠS A\nĠhung ry\nĠH uff\nĠlab els\nant o\nĠE P\nĠbar riers\n) |\nĠBer keley\nĠJ ets\nĠp airs\nĠL an\nJ ames\nĠB ear\nĠhum or\nĠLiber ty\nĠmagn itude\nĠag ing\nĠM ason\nĠfriends hip\numb ling\nĠemer ge\nĠnewsp apers\nĠam bitious\nĠRich ards\natern al\nĠ198 1\nĠcook ies\nĠsc ulpt\nĠpur suit\nL ocation\nĠscript s\np c\nĠarrang ements\nĠd iameter\nĠl oses\nam ation\nĠl iqu\nĠJ ake\naret te\nĠunderstand s\nĠZ en\nv m\nĠappro ve\nĠw ip\nĠult ra\nĠint end\nĠD I\nasc ular\nĠst ays\nĠK or\nĠK l\nĠinvest ing\nL a\nĠbelie ving\nb ad\nm outh\nĠtaxp ayer\nãĥ ĥ\nĠQue bec\nĠl ap\nĠSw iss\nd rop\nĠdr ain\nir i\net c\nft en\nĠN ex\nĠst raw\nĠscream ing\nĠcount ed\nĠdam aging\nĠamb assador\ncent ury\nĠpro x\nĠarrest s\nu v\nil ateral\nĠCh arg\nĠpresc ribed\nĠindepend ently\nĠf ierce\nĠB aby\nĠb rave\nĠsu its\n= >\nĠbas eline\nĠR ate\nĠis lands\nĠ( (\ng reen\nix els\nĠname ly\nĠVill age\nth an\nam y\nV ersion\ng mail\nential s\nĠS ud\nĠMel bourne\nĠarri ving\nĠquant um\ne ff\nrop olitan\nT ri\nĠfun eral\nĠI R\nÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ ÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ\nĠC ob\nit ably\nĠt urb\nĠcomb o\nRe view\nĠdeploy ment\nu ity\nĠB ott\nĠinv isible\nĠrender ing\nĠunl ocked\nĠa qu\nĠVlad imir\nĠp ad\nĠBr ain\nĠLeg acy\ndr agon\nĠKurd ish\nĠsound ed\nĠdet ained\nĠD M\ng ary\nĠd aughters\nĠdistur bing\nuk a\nĠPar ad\nĠt ast\nĠunf ortunate\nĠu l\nem in\nĠattend ance\ntr l\nĠpar ks\nĠMem orial\nĠAl ice\noth y\ngu ard\nĠD ise\nĠSh an\nĠFor um\nR ich\nĠshif ted\nue z\nĠl ighter\nĠMag n\nĠc od\nS ch\nham mad\nP ub\n3 50\nĠP okemon\nĠprot otype\nĠun re\nB ase\nĠStud ents\nĠRep ly\nĠCommun ist\nĠg au\nĠTy ler\nI Z\nĠparticip ated\nĠsup rem\nĠDet ails\nĠvessel s\nro d\nĠt ribe\nke ep\nĠassum ptions\nĠp ound\nĠcr ude\nĠAv ailable\nĠswim ming\nĠin clusion\nĠadv ances\nc ulation\nĠconserv ation\nĠover d\nĠBuff alo\nArt icle\ned ge\nĠaw a\nĠMad ison\nĠsid ew\nĠcat ast\nĠK rist\nuc le\nĠHigh way\nĠTer ror\nĠactiv ation\nĠuncons cious\nĠSat an\nĠSus an\nill ery\nĠarr anged\ni op\nĠrum ors\nur ring\nth ink\nĠKe ith\nĠK ind\nĠavoid ing\nby n\nn ut\nĠSpe aker\nr us\nn ames\nĠgu ilt\nĠOlymp ics\nĠsa il\nĠM es\nlev ant\nĠColumb us\na ft\nC ity\nS outh\nĠHar vey\nĠP un\nS everal\nĠment ally\nĠimp ress\nm ount\nĠUb untu\nâĢĶâĢĶâĢĶâĢĶ âĢĶâĢĶâĢĶâĢĶ\nĠSuper man\nĠMP s\nĠintent ions\nĠR acing\nĠlike lihood\nĠ2 40\nT otal\nĠto ys\nĠW atson\nĠur ge\nL ear\nĠP aper\nĠoccur ring\nĠB eng\nĠC ert\nĠst ones\nT im\nĠTw in\nz b\nĠD ynam\nĠpolit ician\nk ens\nĠEnter prise\nUT ERS\nĠab ol\nĠref resh\nĠarbit rary\npe ction\nĠtrou bles\nĠ} );\nt v\nĠpil ots\nĠdist ribute\nĠaud it\nĠp ause\norig inal\nĠr ivals\nÂ £\nF ig\nT L\nab il\nry ing\nL in\nion ed\nl on\nĠf ancy\nĠcr ashed\nĠt ract\nĠshe d\nĠcons ume\nB ased\ndown load\nin it\nĠvolt age\nInt rodu\nĠcondem ned\nĠFin ance\nres pect\nĠex cluded\nĠestablish ing\nher ic\nĠher itage\nĠspect acular\nĠun st\nĠSnow den\nĠL ane\nS an\nĠprotect ions\nst ruction\ninc inn\nĠmac ro\nC ustom\nios ity\nĠes p\nĠfunction ing\nĠm ush\nĠp uzzle\nĠeth ical\nM al\nĠgo verning\nĠF erguson\nĠrest ored\nĠst ressed\nĠCoun ter\nĠK as\ncl ip\nAN S\nĠse iz\nU K\nby ss\nold own\nap i\nĠperman ently\noun ters\nW est\nTh rough\nL ight\nat oes\nĠne at\nĠc ord\nure r\nĠsevere ly\nĠA ven\nĠinter rog\nĠtri ple\nG iven\nN umber\nĠar ise\nĠs her\npl ant\nĠfl ower\nĠC ou\nĠat e\nĠnew er\nb ul\nĠmean while\nĠL air\nĠadjust ment\nĠCop yright\nĠd ivers\ni ological\nĠgam ers\no at\nĠhistor ically\nĠanal og\nĠlong time\nĠpres cription\nĠM ist\nĠHy per\nĠM aine\nĠDe ity\nĠmulti pl\nĠRe incarn\nĠH yd\nĠP ic\nS il\nr ants\nĠC ris\n. ;\n( {\nepend ence\nĠrec y\nate ur\nĠqu ad\nĠgl ob\nĠcon ced\nte am\nĠcapital ist\nĠL ot\nĠroy al\nĠCy ber\nĠblack s\nmet ic\nri v\nĠD anny\nĠsp o\nĠR O\nĠanim ated\nrypt ed\nĠDep uty\nĠrend ered\nF E\nĠstre ak\nĠcloud s\nĠDou g\n~~~~ ~~~~\nĠdisc our\nĠVe h\nĠpsych ology\nĠJ ourney\nĠcry stal\nĠFro st\nĠsuspic ion\nĠrel ate\nor us\nĠC rypt\nĠN VIDIA\ncom ed\nut ing\nincinn ati\nĠvulner ability\nost ic\nĠisol ation\nĠcool ing\nĠCoal ition\nĠ1 19\nF our\nĠDe al\nĠâ ī\nse mble\nram ent\nĠBar celona\nĠ10 2\nĠcoc aine\nocaly pse\nF eb\nogen ic\nĠmut ation\nĠcrypt oc\nĠK el\nĠG it\na is\nĠs isters\nAN K\nĠactiv ate\nT er\nĠd read\nyl on\nĠprop ri\nA ust\nĠDef ault\nĠout door\nĠshe er\nce ive\nĠg ently\nÐ ¾\nPro gram\nĠâ ĨĴ\nĠve gan\nĠCr us\nĠrespons ibilities\nĠH R\nOL D\nĠprev ents\nĠst iff\nĠW ere\nĠathlet ic\nĠSc ore\nĠ) :\nĠcolumn s\nĠL oc\nav ailable\nĠF ram\nĠS essions\nĠcompan ion\nĠpack s\n14 0\nĠKn ights\nĠf art\nĠstream s\nĠsh ore\nĠapp eals\nĠPer formance\nh aul\nĠSt ra\nĠN ag\n10 3\nĠTrans portation\nB B\nE v\nz an\nP ublic\nĠtw in\nuls ion\nM ult\nĠelect ro\nĠstat ue\nation ally\nĠN ort\nĠins pection\n/ *\nig ue\nĠcomp assion\nĠT ales\nĠSte in\nĠSc reen\nĠB ug\nĠL ion\ng irl\nĠwithdraw al\nĠobject ives\nĠblood y\nĠprelim inary\nĠj acket\nĠdim ensions\nĠC ool\nĠOcc up\nĠw reck\nĠdoub led\nank ing\nĠ19 75\nĠglass es\nĠW ang\npro v\nP ath\nconnect ed\nĠMult i\nĠNor way\nagon ist\nĠfe ared\nĠtouch ing\nĠarg uably\nÂ¯Â¯Â¯Â¯ Â¯Â¯Â¯Â¯\nĠNC AA\nche m\nĠsp at\nĠW WE\nĠC el\nig ger\nĠattack er\nĠJo in\nob ject\nett a\nĠelim inated\nd et\nĠdest ruct\nĠLuc as\nct uary\n18 0\nĠBr ady\nĠBl ues\nB ay\nau kee\nĠtim eline\nĠdeleg ates\nw ritten\nuff icient\nĠsh apes\nCop yright\nou ble\nserv ice\nĠp ione\nĠcolleg es\nĠrow s\nĠsp ite\nĠassess ed\n3 60\nĠle ase\nĠconfident ial\nck er\nĠMan ning\nĠV oice\nĠse aled\nĠcalcul ate\nN O\nĠAss istant\nĠteen ager\nul ent\nather ine\nĠm ock\nĠd iamond\nĠf est\nĠsw itched\nĠres ume\nĠPu erto\nĠl anes\nir ation\nĠSimilar ly\nĠro d\nĠS el\nĠPal ace\nĠLim ited\ne ous\nĠvar iant\nĠw ard\nĠ) )\nSh ow\nOO K\nA lex\nĠN ep\nbr is\nĠWik ipedia\nĠexcept ional\nĠman ages\nĠD raw\nAg ain\nĠco pper\nut t\nĠex ports\nĠport folio\nĠelev ated\nR ated\nĠOther wise\nĠT act\nĠShe l\nĠT X\n\" âĢĶ\nĠres ur\nĠW a\nven ant\nĠmon etary\npe ople\nE mail\nĠfif ty\nĠS weet\nĠMalays ia\nĠconf using\nĠR io\nud a\nuten ant\n\" );\nĠpra ised\nĠvol umes\nt urn\nĠm ature\nĠnon profit\nĠpassion ate\nĠPriv ate\nĠ10 3\nĠdesc end\nç ¥ŀ\nuff y\nhead ed\nWhe ther\nri en\nze ch\nbe it\nĠch rom\nĠMc M\nĠd ancing\nĠe leg\nĠNot iced\n11 5\nĠadvoc acy\nENT S\namb ling\nĠMin or\nĠF inn\nĠprior ities\nĠthere of\nĠSt age\nĠRog ers\nĠsubst itute\nĠJ ar\nĠJeff erson\nĠlight ly\n10 2\nĠL isa\nu its\nys ical\nĠshif ts\nĠd rones\nĠwork place\nĠres id\nens ed\nah n\nĠpref erences\nser ver\nĠdeb ates\nd oc\nĠGod s\nĠhelicop ter\nĠhon our\nĠconsider ably\ned ed\nĠF emale\nĠAn ne\nĠre un\nĠF ace\nĠHall ow\nĠBud get\nĠcondem n\nĠt ender\nPro f\nocr atic\nĠTurn er\nĠAg ric\nĠ19 76\nĠa pt\nd isc\nĠF ighter\nĠA ur\nĠgar bage\nin put\nĠK arl\nĠOl iver\nĠL anguage\nk n\nN on\nĠCl ar\nĠtrad itions\nĠad vertisement\nĠS or\nĠarch ive\nĠvill ages\n7 50\nĠimplement ing\nw aukee\nĠdiet ary\nĠswitch ing\nRep ublic\nĠvel ocity\nĠc it\nĠA wards\nĠfin ancing\nĠlast ed\n) ]\nĠrem inder\nP erson\nĠprec ision\nĠdesign ers\nĠF ried\nĠB order\nĠtr agic\nĠw ield\nĠiniti atives\nĠT ank\nw er\nĠjo ins\nR o\nin ery\nĠar row\nĠgener ating\nfound er\nĠsear ches\nĠrandom ly\nA ccess\nĠb atch\nĠp osed\nl at\nĠpursu ing\nas a\nĠtest ified\nform ing\nĠSh ar\nw iki\nĠE ither\nS ometimes\nĠsen ators\nĠJohn ny\nĠTal iban\nĠG PS\n\":\" /\nãģ® å\nĠanaly zed\nĠRub io\nĠMove ment\nop ard\nii i\nSt and\nf ight\nĠign oring\ni ang\nĠG N\nso ever\nĠST AT\nĠref using\nĠswe at\nĠb ay\nP ORT\nir med\nak y\nĠdis pro\nĠlabel ed\nĠ10 8\nH ello\nĠple asant\nab a\nĠtri umph\nĠab oard\nĠinc om\nĠC row\nle tt\nĠfol k\nĠch ase\n` `\nĠBr us\nĠte ens\nc ue\nĠter rain\nh yd\nil ight\nOR Y\nSu pport\new s\nll i\nrain ts\nĠC and\nĠab used\nach ment\nl arg\nB as\nĠC ancer\nĠ19 78\nĠsupp orter\nac cess\nĠTer min\nĠT ampa\nĠAN Y\nĠnew est\nĠCrim inal\ned u\nĠ19 30\nĠadm its\nĠend e\nĠfail ures\nur ate\nful ness\ncy cl\nĠSub ject\nĠinf inite\nth ree\nW A\np it\nĠInst all\nR ad\nili ation\nG M\nĠcontin ent\nĠaccommod ate\nĠCl ay\nĠp up\nĠF unction\nĠham mer\nĠAlbert a\nĠrev ised\nĠminor ities\nĠmeasure ment\nCon nell\nĠdis able\nĠM ix\nIn cre\nĠfor k\nĠR osen\nĠimpl ies\numb lr\nAN G\nĠprote ins\nĠagg ression\nĠfacilit ate\nS N\nĠilleg ally\nu er\nĠacad em\nĠp uzz\nĠSh ift\np ay\noll o\nĠaud iences\nB uild\nĠno ble\nĠsynt ax\nâ ĺħ\nĠbe am\nĠB ed\nĠA ld\nĠorig ins\nv ideo\nĠ19 77\nĠAss ault\nĠgar age\nTe am\nĠver dict\nĠd war\nĠVirt ual\ne vent\nKe ep\nĠsent iment\nĠwild life\nsh irt\nĠb urg\nĠrecommend ation\nrep resent\nĠgall ery\nown ers\nĠsch olar\nĠconven ience\nĠSw ift\nĠconv inc\nC ap\nĠwar fare\nĠVis ual\nĠconst itute\nĠab ort\nĠWe ather\nĠLook ing\nĠH em\nĠmart ial\nĠinc oming\net ition\nĠtoler ance\nĠCre ated\nĠfl ows\nĠE lder\nĠsoul s\nĠf oul\nĠP ain\nĠC AN\nĠ2 20\nb c\nhe nd\nĠgen ius\nR eal\nĠW r\nomet er\np ad\nĠlim iting\nĠS i\nĠL ore\nĠAd ventures\nĠvar ied\nD isc\nf in\nĠPerson al\nCh ris\nĠinv ented\nĠd ive\nĠR ise\nĠo z\nĠCom ics\nĠexp ose\nĠRe b\nlet ters\ns ite\nim ated\nĠh acking\nĠeduc ated\nĠNob ody\nĠdep ri\nĠincent ive\nãĤ ·\nĠovers ight\nĠtrib es\nĠBelg ium\nĠlicens ing\nour t\nProdu ct\nah l\nĠG em\nĠspecial ist\nĠc ra\nann ers\nĠCor byn\nĠ19 73\nRE AD\nĠsum mar\nĠover look\nĠApp lication\nĠin appropriate\nĠdownload ed\nQ ue\nĠB ears\nĠth umb\nĠChar acter\nĠReincarn ated\nĠS id\nĠdemonstr ates\ns ky\nĠBloom berg\nĠAr ray\nĠRes ults\nĠFour th\nĠED T\nĠO scar\nc end\nĠ10 6\nĠN ULL\nĠH ERE\nm atch\nĠBr un\nĠgluc ose\nie g\neg u\nĠcert ified\nĠrel ie\nĠhuman itarian\nĠpr ayers\nK ing\nĠn an\nh ou\n10 8\nul u\nĠrenew able\nĠdistingu ish\nĠd ense\nĠV ent\nĠPack age\nĠB oss\nĠedit ors\nĠm igr\nT ra\nĠPet ers\nĠAr ctic\n200 4\nĠC ape\nĠloc ally\nĠlast ing\nĠhand y\n. ).\nP an\nĠR ES\nInd ex\nĠt ensions\nĠformer ly\nĠide ological\nĠsens ors\nĠdeal ers\nĠdef ines\nS k\nĠproceed s\nĠpro xy\naz ines\nĠB ash\nĠP ad\nĠC raft\neal ous\nĠshe ets\nomet ry\nJ une\ncl ock\nT T\nĠThe atre\nĠB uzz\nĠch apters\nĠmill enn\nĠd ough\nĠCongress ional\nĠimag ined\nav ior\nĠclin ic\nĠ19 45\nĠhold er\nro ot\noles ter\nĠrest art\nB N\nĠHam as\nĠJ ob\nĠor b\nĠr am\nĠdiscl ose\nĠtransl ate\nĠimm igrant\nĠannoy ing\nĠtreat y\nan ium\nĠTe a\nĠLeg ion\nĠcrowd s\nĠB ec\nĠA er\noh yd\nB ro\nLook ing\nĠl bs\nĠagg ress\nĠse am\nĠinter cept\nĠM I\nmer cial\nact iv\nĠC it\nĠdim ension\nĠconsist ency\nĠr ushing\nĠDou glas\nĠtr im\nInst all\nick er\nĠsh y\n10 6\nĠment ions\npe lled\nĠT ak\nc ost\nĠclass room\nĠfort une\ndri ven\nĠun le\nĠWhe el\nĠinvest or\nĠM asters\nk it\nĠassoci ations\nĠEv olution\nop ing\nus cript\nĠprov incial\nĠWal ter\nav i\nS O\nĠun limited\nEng lish\nĠC ards\nĠEb ola\nne red\nĠreven ge\nĠout right\num per\nĠf itting\nĠSol id\nĠform ally\nĠproblem atic\nĠhaz ard\nĠenc ryption\nĠstraight forward\nĠA K\nĠp se\nĠOr b\nĠCh amber\nĠM ak\nCont ents\nĠloyal ty\nĠl yrics\nĠSy m\nĠwel comed\nĠcook ed\nĠmon op\nĠn urse\nĠmis leading\nĠe ternal\nĠshif ting\nĠ+ =\nV is\nĠinst itutional\nill ary\nĠp ant\nVER T\nĠA CC\nĠEn h\nĠinc on\nĠRE UTERS\nĠdon ated\nâĢ¦âĢ¦ âĢ¦âĢ¦\nIn tern\nĠexhib it\nĠt ire\nĠR ic\nĠCh ampion\nĠMu hammad\nN ING\nĠSoc cer\nĠmob ility\nĠvary ing\nĠM ovie\nĠl ord\no ak\nF ield\nĠve ctor\nus ions\nĠsc rap\nĠen abling\nm ake\nT or\n. *\n| |\nĠWe bsite\nĠN PC\nĠsocial ist\nĠBill y\nĠAdd itional\nĠc argo\nĠfar ms\nĠSo on\nĠPri ze\nĠmid night\nĠ9 00\nse en\nĠSp ot\nĠshe ep\nĠspons ored\nĠH i\nĠJ ump\nĠ19 67\nMicro soft\nĠAg ent\nĠch arts\nd ir\nĠadj acent\nĠtr icks\nĠman ga\nĠex agger\n/ >\nfoot ball\nĠF CC\nG C\nĠT ier\nand ra\nOU ND\n% ),\nĠfru its\nV C\nĠA A\nR ober\nĠmid st\nâ Ĺ\nank a\nĠlegisl ature\nĠNe il\nĠtour ists\n\" \"\nĠWar ning\nĠNever theless\nĠOffic ial\nĠWh atever\nĠm old\nĠdraft ed\nĠsubst ances\nĠbre ed\nĠt ags\nĠT ask\nĠver b\nĠmanufact ured\ncom ments\nĠPol ish\nPro v\nĠdetermin es\nOb ama\nk ers\nĠutter ly\nĠse ct\nsc he\nĠG ates\nĠCh ap\nĠal uminum\nĠz ombie\nĠT ouch\nĠU P\nĠsatisf y\nĠpred omin\nasc ript\nĠelabor ate\nĠ19 68\nĠmeas uring\nĠV ari\nany ahu\nĠs ir\nul ates\nid ges\nick ets\nĠSp encer\nT M\noub ted\nĠpre y\nĠinstall ing\nĠC ab\nre ed\nre ated\nSu pp\nĠwr ist\nĠK erry\n10 7\nĠK le\nĠR achel\nĠc otton\nĠA RE\nĠE le\nCont rol\nĠload s\nĠD od\nan as\nb one\nĠclass ical\nĠReg ional\nĠInt eg\nV M\nĠdes ires\nĠaut ism\nsupport ed\nĠM essage\nĠcomp act\nwrit er\nĠ10 9\nĠHur ricane\nc ision\nĠcy cles\nĠdr ill\nĠcolle ague\nĠm aker\nG erman\nĠmist aken\nS un\nĠG ay\nĠwhat soever\nĠsell s\nĠA irl\nl iv\nĠO ption\nĠsol ved\nĠse ctors\nĠhorizont al\nĠequ ation\nĠSk ill\nĠB io\ng ement\nĠSn ap\nĠLeg al\nĠtradem ark\nĠmake up\nĠassemb led\nĠsa ves\nĠHallow een\nĠVer mont\nĠFR OM\nĠfar ming\nĠP odcast\naccept able\nĠHig her\nĠas leep\null ivan\nĠrefere n\nĠLe v\nĠbul lets\nok o\nH C\nĠst airs\nĠmain tains\nĠL ower\nĠV i\nĠmar ine\nĠac res\nĠcoordin ator\nĠJ oh\nĠcounterpart s\nĠBrother s\nĠind ict\nb ra\nĠch unk\nĠc ents\nH ome\nĠMon th\nĠaccording ly\nif les\nĠGerm ans\nĠSy n\nH ub\nĠey eb\nâĶĢâĶĢ âĶĢâĶĢ\nĠr anges\nĠHoll and\nĠRob ot\nf c\nM ike\nĠpl asma\nĠsw ap\nĠath lete\nĠR ams\n,' \"\nĠinfect ions\nĠcor rid\nĠv ib\nĠpat ches\nĠtradition ally\nĠrevel ation\nĠswe ep\nĠgl ance\nĠin ex\n200 3\nĠR aw\nwork ing\nos ures\nĠD at\nĠLyn ch\nĠle verage\nĠRe id\nĠcorrel ation\nian ces\nav ascript\nĠrep ository\nret ty\nĠ19 72\n24 0\nĠo un\np ol\nĠRe ed\nĠtact ical\nis ite\nApp le\nĠQu inn\nĠrap ed\nill o\nEuro pe\nĠalgorith ms\nĠRod rig\ni u\nĠill um\nĠf ame\nĠintrodu cing\nĠdel ays\nĠRaid ers\nĠwh istle\nĠnovel s\nĠRe ally\nĠder iv\nĠpublic ations\nĠNe ither\nĠCom merce\nĠa ston\nl anguage\nNot es\nĠR oth\nĠF ear\nĠm ate\nĠpar ade\nĠQ B\nĠman eu\nĠC incinnati\nm itting\nĠwa ist\nĠR ew\nĠdisc ont\nÐ °\nĠst aring\nĠal ias\nĠsec urities\nĠtoile t\nĠJ edi\nĠun law\nv ised\n//// ////\n] (\nĠWe iss\nĠpre st\nĠComp an\nĠmem o\nĠGr ace\nJ uly\nĠEl ite\ncent er\nĠSt ay\nĠgal axy\nĠto oth\nĠS ettings\nĠsubject ed\nãĤ ¦\nĠline back\nĠretail ers\nĠW ant\nĠd angers\nA ir\nĠvolunt ary\new ay\nĠinterpret ed\not ine\nÃ §\nĠp el\nServ ice\nĠEvent ually\nĠcare ers\nĠthreat en\nĠmem or\nĠBrad ley\nanc ies\ns n\nĠUn known\nN ational\nĠsh adows\nail and\nĠD ash\nEvery one\nizz ard\nM arch\n= (\nĠpull s\nĠstr anger\nĠback wards\nĠBern ard\nimens ional\nĠch ron\nĠtheoret ical\nk top\nĠw are\nĠInvest ig\nĠIn iti\nĠOper ations\no ven\noc ide\n* /\nĠfl ames\nĠC ash\nsh it\nĠc ab\nĠAn aly\nĠSe ah\nĠdefin ing\nĠorder ing\nĠimm un\nĠpers istent\nAC H\nRuss ian\nm ans\nĠh ind\nĠphot ography\nÂ ©\nĠh ug\nĠ10 7\nĠH ence\ni ots\nude au\nĠsubsid ies\nĠroutine ly\nĠDev ice\nit ic\nĠdisg ust\nland er\nĠ19 40\nĠassign ment\nĠB esides\nw ick\nĠD ust\nus c\nstruct ed\n11 1\nde velop\nĠf ond\nĠinter section\nĠdign ity\nĠcommission er\nWith out\nre ach\nĠcart oon\nĠsc ales\nãĥ Ń\nF IG\nĠsurve ys\nĠIndones ia\nĠart work\nĠun ch\nĠcy cling\nun ct\nau er\nor ate\nĠOb viously\nĠcharacter ized\nfe ld\nĠaff irm\nĠinn ings\nĠ é\nĠal iens\nĠcl oth\net ooth\nĠC ertain\nÂ §\nĠdig est\nk now\nĠX L\nĠpredict ions\nĠd in\nW AR\nĠafter math\nEx ample\nĠSu ccess\nĠTh r\nIG N\nĠmin er\nB us\nĠcl arity\nheim er\nĠO UT\nĠS end\nĠCirc le\nĠD iet\nĠpron ounced\nĠcreat ors\nĠearthqu ake\natter y\nge ons\nĠo d\nĠlay ing\nor p\nU lt\npro ject\nĠunder min\nĠsequ el\nS am\nĠDark ness\nĠre ception\nb ull\nY S\nĠV ir\nĠsequ ences\nĠCo in\nĠout fit\nĠW ait\n1 19\nĠdel ivers\n.... ..\nĠbl own\nĠE sc\nĠM ath\nper m\nĠU l\nĠgl im\nĠfac ial\nĠgreen house\nĠto kens\n/ -\nĠAnn ual\nĠON E\nĠteen age\nĠPhys ical\nĠL ang\nĠC elt\nĠsu ed\nivid ually\nĠpat ience\nch air\nreg ular\nĠa ug\nin v\nex cept\nĠL il\nĠn est\nf d\ns um\nĠCh ase\nRuss ia\nĠJenn ifer\nĠoff season\nOver all\nF ore\nĠr iot\nA ud\nform er\nĠdefend ers\nĠC T\niot ic\nrib ly\nĠautom ated\nĠpen is\nĠins ist\nĠdi agram\nĠS QL\nĠG arc\nĠw itch\ncl ient\nier ra\nam bers\nĠrec ount\nf ar\nV ery\noster one\nĠappreci ated\nĠPer fect\nS ection\nĠd oses\noca ust\nĠcost ly\nĠg rams\nĠSh i\nĠwrest ling\nĠ19 71\nĠtro phy\nĠn erve\nĠK az\nĠExper ience\nĠpled ged\nĠplay back\nĠcreat ivity\nby e\nĠattack ers\nĠhold ers\nĠCo ach\nĠPh D\nĠtransf ers\nĠcol ored\nĠH indu\nĠd rown\nĠlist ened\nĠW A\nias m\nP O\nĠappeal ing\nĠdiscl osed\nĠCh icken\nag ging\nĠple aded\nĠnav igation\nĠReturn s\nĠ[ [\nR OR\nE A\nĠphotograp her\nĠR ider\nipp ers\nĠsl ice\nĠe rect\nĠhe d\niss ance\nĠVik ings\nur ious\nĠapp et\noubted ly\nCh ild\nĠauthent ic\no os\nĠM aking\nĠannoun cing\nĠb od\nĠmet er\nĠN ine\nĠR ogue\nĠwork force\nĠrenew ed\nĠorganis ations\nac s\nP LE\nSh ort\nĠcomp ounds\nĠVis it\nĠen velop\near th\nĠsupport ive\ngg le\nĠBrus sels\nĠGu ild\nCre ate\nRE L\nĠaver aged\nĠ19 69\nri ages\nĠlength y\nĠforg ot\nO kay\nĠE rd\nĠdeal er\nĠrec ession\nD D\nĠdesper ately\nĠhun ger\nĠst icks\nĠm ph\nĠF aith\nĠintention ally\nĠdem ol\nue ller\nĠS ale\nĠde bris\ns pring\nĠle ap\n>> >>\nĠcontain ers\nse lling\nrane an\natter ing\nĠcomment ed\nĠC M\non ut\nĠwood s\nes pecially\nĠorgan ize\niv ic\nĠWood s\nang a\ns qu\nĠm aj\nam on\nĠax is\nĠ19 74\nĠDen mark\nĠwar rior\nĠP and\nĠout lined\nĠB O\nins ula\nz illa\neb ook\nĠd are\nĠsear ched\nĠnav igate\nS n\nwrit ing\nĠun ited\nJ apan\nĠHe brew\nĠfl ame\nĠrel ies\nĠcatch ing\nĠSh o\nĠimprison ment\nĠp ockets\nĠclos ure\nĠF am\nt im\nade qu\nAct ivity\nĠrecru iting\nĠW ATCH\nĠArgent ina\nd est\nĠapolog ize\nor o\nĠlack s\nĠtun ed\nĠGriff in\nĠinf amous\nĠcelebr ity\nss on\nĠ ----------------------------------------------------------------\nĠIs is\nĠDis play\nĠcred ibility\nĠeconom ies\nĠhead line\nĠCow boys\nĠind ef\nĠl ately\nĠincent ives\nbut ton\nĠM ob\nA ut\nĠres igned\nĠO m\nc amp\nĠprof iles\nĠsche mes\nolph ins\nay ed\nCl inton\nen h\nĠY ahoo\nĠab st\nĠan k\nsu its\nĠw ished\nĠMar co\nudd en\nĠsp here\nĠB ishop\nĠincorpor ated\nĠPl ant\n11 4\nĠh ated\np ic\nĠdon ate\nĠl ined\nĠbe ans\nĠsteal ing\nĠcost ume\nĠsher iff\nĠfor ty\nĠint act\nĠadapt ed\nĠtrave lling\nb art\nĠnice ly\nĠdri ed\nĠsc al\nos ity\nNOT E\nĠB h\nĠBron cos\nĠI gn\nĠint imate\nĠchem istry\nĠopt imal\nD eb\nĠGener ation\nĠ] ,\nich i\nĠW ii\nĠYOU R\nvent ions\nW rite\nĠpop ul\nun ning\nĠW or\nV ol\nĠqu een\nhead s\nK K\nĠanaly ze\nop ic\near chers\nĠd ot\nleg raph\nast ically\nĠupgr ades\nĠca res\nĠext ending\nĠfree ze\nĠin ability\nĠorg ans\nĠpret end\nĠout let\n11 3\nol an\nĠM all\nul ing\nt alk\nĠexpress ing\nĠAl ways\nĠBe gin\nf iles\nĠlic enses\n% %\nĠM itt\nĠfil ters\nĠMil waukee\nG N\nĠunf old\nM o\nĠnut rition\npp o\nB o\nĠfound ing\nĠunder mine\nĠeas iest\nĠC zech\nĠM ack\nĠsexual ity\nĠN ixon\nW in\nĠAr n\nĠK in\nãĤ £\nic er\nĠfort un\nĠsurf aces\nagh d\nĠcar riers\nĠP ART\nĠT ib\nĠinter val\nĠfrust rating\nĠSh ip\nĠAr med\nff e\nĠbo ats\nĠAb raham\nin is\nĠsu ited\nth read\ni ov\nab ul\nĠVenezuel a\nĠto m\nsu per\nĠcast le\nalth ough\niox ide\nec hes\nĠevolution ary\nĠnegoti ate\nĠconfront ed\nRem ember\nĠ17 0\nS uch\nĠ9 11\nm ult\nĠA byss\nur ry\nke es\nspe c\nĠBarb ara\nĠbelong ing\nĠvill ain\nist ani\nĠaccount able\nĠport ions\nĠDe cl\nU r\nĠK ate\ng re\nĠmag azines\nUC K\nĠregul ate\nom on\nĠAl most\nĠover view\nĠsc ram\nĠl oot\nĠF itz\nĠcharacter istic\nĠSn ake\ns ay\nĠR ico\nĠtra it\nĠJo ined\nau cus\nĠadapt ation\nĠAirl ines\nĠarch ae\nĠI de\nĠb ikes\nĠliter ary\nĠinflu ences\nĠUs ed\nC reat\nĠple a\nĠDef ence\nĠAss ass\nĠp ond\nUL T\n) \"\nĠeval uated\nĠob taining\nĠdem ographic\nĠvig il\nale y\nĠsp ouse\nĠSeah awks\nresp ons\nĠB elt\num atic\nĠr ises\nrun ner\nĠMichel le\nĠpot ent\nr ace\nĠP AC\nF ind\nolester ol\nIS S\nĠIntrodu ced\nress es\nign ment\nO s\nĠT u\nĠDe x\nic ides\nĠspark ed\nĠLaur a\nĠBry ant\nĠsm iling\nĠNex us\nĠdefend ants\nĠCat al\nĠdis hes\nsh aped\nĠpro long\nm t\n( $\nãĢ Ĥ\nĠcalcul ations\nĠS ame\nĠp iv\nH H\nĠcance lled\nĠgr in\nĠterrit ories\nist ically\nC ome\nĠP arent\nPro ject\nĠneg lig\nĠPriv acy\nĠam mo\nLE CT\nolute ly\nĠEp ic\nĠmis under\nw al\nApr il\nm os\npath y\nĠC arson\nĠalbum s\nĠE asy\nĠpist ol\n< <\nĠ\\ (\nt arget\nhel p\nĠinter pre\ncons cious\nĠH ousing\nĠJ oint\n12 7\nĠbe ers\ns cience\nĠFire fox\neffect ive\nĠC abin\nĠO kay\nĠApp lic\nĠspace craft\nĠS R\nve t\nĠStr ange\nS B\nĠcor ps\niber al\ne fficient\nĠpreval ence\nĠeconom ists\n11 8\nTh read\nord able\nOD E\nĠC ant\n=- =-\nif iable\nĠA round\nĠpo le\nĠwilling ness\nCL A\nĠK id\nĠcomple ment\nĠsc attered\nĠin mates\nĠble eding\ne very\nĠque ue\nĠTr ain\nĠh ij\nĠme lee\nple ted\nĠdig it\nĠg em\noffic ial\nĠlif ting\nÐ µ\nRe qu\nit utes\nĠpack aging\nĠWork ers\nh ran\nĠLeban on\nol esc\nĠpun ished\nĠJ uan\nĠj am\nĠD ocument\nĠm apping\nic ates\nĠinev itably\nĠvan illa\nĠT on\nĠwat ches\nĠle agues\nĠiniti ated\ndeg ree\nport ion\nĠrec alls\nĠru in\nĠm elt\nI AN\nĠhe m\nEx p\nĠb aking\nĠCol omb\nat ible\nĠrad ius\npl ug\nĠI F\net ically\nĠf ict\nH ER\nĠT ap\natin um\nĠin k\nĠco h\nĠW izard\nb oth\nte x\nĠsp ends\nĠCurrent ly\nĠP it\nĠneur ons\nig nt\nĠr all\nĠbus es\nb uilding\nĠadjust ments\nĠc ried\nibl ical\natt ed\nĠZ ion\nĠM atter\nĠmed itation\nĠD ennis\nĠour s\nĠT ab\nĠrank ings\nort al\nĠad vers\nĠsur render\nĠG ob\nci um\nom as\nim eter\nĠmulti player\nĠhero in\nĠoptim istic\nĠindic ator\nĠBr ig\nĠgro cery\nĠapplic ant\nĠRock et\nv id\nEx ception\np ent\nĠorgan izing\nĠenc ounters\nĠT OD\nĠjew el\nS ave\nĠChrist ie\nĠhe ating\nĠl azy\nĠC P\nĠcous in\nCon fig\nĠreg ener\nĠne arest\nĠachie ving\nEN S\nth row\nĠRich mond\nant le\n200 2\nĠan ten\nb ird\n13 3\nĠn arc\nr aint\nun ny\nĠHispan ic\nourn aments\nĠprop he\nĠTh ailand\nĠT i\nĠinject ion\nĠinher it\nrav is\nĠmed i\nĠwho ever\nĠDE BUG\nG P\nĠH ud\nC ard\np rom\nĠp or\nĠover head\nL aw\nĠviol ate\nĠhe ated\nĠdescript ions\nĠachieve ments\nĠBe er\nĠQu ant\nW as\nĠe ighth\nĠI v\nĠspecial ized\nU PDATE\nĠD elta\nP op\nJ ul\nĠAs k\noph y\nĠnews letters\nĠT ool\nĠg ard\nĠConf eder\nĠGM T\nĠAb bott\nĠimm unity\nĠV M\nIs lam\nĠimpl icit\nw d\nĠ19 44\nrav ity\nomet ric\nĠsurv iving\nur ai\nĠPr ison\nĠr ust\nĠSk etch\nĠbe es\nĠThe ory\nĠmer it\nT ex\nch at\nĠm im\nĠpast e\nĠK och\nĠignor ance\nĠSh oot\nĠbas ement\nUn ited\nĠAd vis\nhe ight\nĠf oster\nĠdet ain\nin formation\nĠne ural\n' ;\nĠprov es\nall ery\nĠinv itation\num bers\nĠc attle\nĠbicy cle\nz i\nĠconsult ant\nĠap ology\nĠT iger\nĠ12 3\n99 9\nĠind ividually\nr t\nig ion\nĠBrazil ian\nĠdist urb\nĠentreprene urs\nĠfore sts\ncer pt\npl ates\np her\nclip se\nĠtw itter\nĠac ids\nograph ical\nh um\nĠB ald\nif ully\nĠcomp iler\nĠD A\nĠdon or\nas i\nĠtrib al\nl ash\nĠCon fig\nĠapplic ants\nĠsal aries\n13 5\nPut in\nĠF ocus\nir s\nĠmisc onduct\nĠH az\nĠeat en\nM obile\nMus lim\nĠMar cus\nv iol\nĠfavor able\nĠst ub\nad in\nĠH ob\nĠfaith ful\nĠelectron ics\nĠvac uum\nw ait\nback ed\neconom ic\nd ist\nĠten ure\nĠsince re\nĠT ogether\nĠW ave\nĠprog ression\nĠden ying\nĠdist ress\nbr aska\nth ird\nĠmix ing\nĠcolon ial\nĠpriv ately\nĠun rest\natern ity\nĠprem ises\nant i\ngreg ation\nĠlic ence\nĠH ind\nĠSam uel\nĠconvinc ing\nĠA ce\nĠR ust\nĠNet anyahu\nĠhand les\nĠP atch\norient ed\nah o\nĠG onz\nĠhack ers\nclaim er\nĠcustom s\nĠGr an\nf ighters\nĠl uc\nĠman uscript\naren thood\nĠdev il\nĠwar riors\nĠoff enders\nWill iam\nĠhol idays\nĠnight mare\nĠle ver\niff erent\nSt at\nĠexhib ition\nput ed\nĠP ure\nĠal pha\nĠenthus iasm\nĠRepresent atives\nE AR\nĠT yp\nĠwhe at\nĠAl f\nĠcor rection\nĠev angel\nAT T\nM iss\nĠs oup\nĠimpl ied\npar am\nĠsex y\nĠL ux\nĠrep ublic\np atch\nab lish\nĠic ons\nĠfather s\nĠG ET\nĠCar ib\nĠregul ated\nĠCo hen\nĠBob by\nĠn er\nĠb ent\nvent ory\nĠAl ong\nĠE ST\nĠWall ace\nĠmurd ers\nr ise\nke ll\nĠCommon wealth\nĠn asty\net a\nĠM IT\nĠadminist ered\nĠgenuine ly\nEd itor\nn ick\nĠhyd ro\n**************** ****************\nĠB le\nĠfin es\nĠg orge\naus ible\nr h\nĠapp le\nment ioned\nĠro pe\not yp\nH R\nĠdisappoint ing\nĠc age\nn ik\nĠdoub ts\nĠF REE\nprint s\nĠM UST\nĠvend ors\nĠIn qu\nĠliber als\nĠcontract or\nĠup side\nchild ren\nĠtrick y\nĠregul ators\ncharg ed\nl iter\nĠ ***\nĠreb ell\nl ang\nĠloc als\nĠphys icians\nĠhe y\nar se\nt m\nĠLe x\nĠbehavior al\nsuccess ful\nF X\nĠbr ick\nov ic\nĠcon form\nĠreview ing\nĠins ights\nĠbi ology\nĠRem ove\nĠExt ra\nĠcomm itting\nindu ced\nignt y\nig m\nĠat omic\nComm on\nĠE M\nĠP ere\nĠIt ems\ne h\nĠpres erved\nĠH ood\nĠprison er\nĠbankrupt cy\nĠg ren\nus hes\nĠexplo itation\nĠsign atures\nĠfin an\n] ,\"\nĠM R\nĠme g\nrem lin\nĠmusic ians\nĠselect ing\nĠexam ining\nIN K\nl ated\nH i\nĠart ic\nĠp ets\nĠimp air\nĠM AN\nĠtable ts\nin clude\nR ange\nĠca ut\nĠlog s\nĠmount ing\nĠun aware\nĠdynam ics\nĠPalest ine\nĠQu arter\nĠPur ple\nĠm a\nĠIm port\nĠcollect ions\nci ation\nĠsuccess or\nĠcl one\nĠaim ing\nĠposs essed\nĠstick ing\nĠsh aking\nĠloc ate\nĠH ockey\nT urn\n17 0\nĠfif teen\nĠHar rison\nĠcontinu ously\nĠT C\nĠVal ent\nĠRes cue\nĠby pass\nam ount\nĠm ast\nĠprotect s\nĠart istic\nĠsomet ime\nĠsh oe\nĠshout ed\nific ant\net itive\nĠReg ister\nĠJ in\nĠconcent rated\nling ton\non ies\nĠgener ator\nyr im\nĠAr men\nĠclear ing\nid o\nĠT W\nal ph\nĠlad ies\nH ard\nĠdial og\nĠinput s\næ ľ\nĠpos es\nĠsl ots\nĠPrem ium\nĠle aks\nĠboss es\nĠ11 3\nc ourse\nA cc\nĠNew ton\nĠAust ria\nĠM age\nĠte aches\nab ad\nĠwe ars\nĠc yl\nĠcur se\nĠS ales\nĠW ings\nĠp sy\nĠg aps\nĠIce land\nĠP interest\nĠland lord\nĠdefin itions\nĠK er\nĠsufficient ly\nĠP ence\nĠArch itect\nĠsur pass\nĠ11 4\nĠsuper hero\nĠDise ase\nĠpri ests\nĠC ulture\nĠdefin itive\nĠsecret ly\nĠD ance\ninst all\nch ief\nĠJess ica\nW ould\nUp dated\nĠlock er\nĠK ay\nĠmem orial\nè ¦\nf at\nĠdis gu\nĠflav ors\nĠBase ball\nĠRes istance\nĠk icks\nĠen v\nĠteen agers\nD ark\nĠC AR\nĠh alt\nĠL G\nĠGab riel\nĠfe ver\nĠs atur\nĠm all\nĠaffili ate\nĠS leep\nĠSpe cific\nĠV el\nĠj ar\nĠSac red\nĠEd wards\nĠA CL\nĠret ained\nĠG iant\nĠlim itation\nin ces\nĠref usal\nĠT ale\nĠBut ler\nĠacc idents\nĠC SS\nĠimport ed\nĠCop y\nÎ ±\nER T\nz el\nĠdiv isions\nh ots\nĠAl b\nĠD S\nLoad er\nW ashington\nat isf\nĠCreat ive\n\\ .\nĠAut om\nred ict\nĠrecept or\nĠCarl os\nMet hod\nok a\nĠmal icious\nĠste pping\n, [\nĠD ad\nĠatt raction\nĠEffect s\nĠPir ate\nĠC er\nĠIndust ry\nĠR ud\nĠchar ter\nĠd ining\nĠins ists\nĠconfig ure\nĠ( #\nĠSim ple\nĠSc roll\nUT C\n17 5\nĠK on\nĠmarket place\nĠ ãĤ\nĠref res\nĠg ates\ner red\nĠP od\nĠbeh ave\nFr ank\nn ode\nĠendors ed\nhe tt\nas ive\nĠHom eland\nĠr ides\nĠLe ave\ner ness\nĠflood ing\nA FP\nĠris en\nĠcontin ually\nĠun anim\nĠCont ract\nĠP as\nĠgu ided\nĠCh ile\nb d\nĠsu cc\npt ic\nĠcomm ittees\nĠL uther\nĠAny one\nĠs ab\n12 4\nĠp ixel\nĠB ak\nĠT ag\nĠBenn ett\nEn ter\nsm all\nĠPresident ial\nĠp ul\nĠcontr ace\narch ive\nĠcoast al\nĠK ids\n19 2\nâĢ ²\nick y\nING TON\nĠw olf\nĠSt alin\nT ur\nid get\nam as\nĠUn less\nĠspons or\nĠmor ph\nĠCho ose\nĠrun ner\nĠun bel\nĠm ud\nĠMan a\nĠdub bed\nĠg odd\nure rs\nwind ow\nĠrel ied\nĠcelebr ating\nos c\nĠ13 5\nĠlobb ying\nĠincom plete\nĠrestrict ion\nĠinc ap\nit us\nĠexpect ation\nĠAp ollo\nĠint ens\nĠsyn c\nG H\nĠmanip ulation\nB Y\nĠspe ar\nĠbre asts\nĠvol can\nil ia\nM aterial\nĠform ats\nĠB ast\nĠparliament ary\nĠsn ake\nĠserv ants\nĠTr udeau\nĠGr im\nĠArab ic\nĠSC P\nĠBoy s\nst ation\nĠprospect ive\nord e\nin itialized\nĠb ored\nAB LE\nĠaccess ed\nĠtax i\nĠShe ll\naid en\nurs ed\nin ates\nĠIns urance\nĠPet e\nSept ember\n6 50\nĠad ventures\nĠCo ver\nĠt ribute\nĠsk etch\nĠem power\nĠ Ø\nĠGl enn\nĠD aw\n= \\\"\nĠPolit ics\nĠgu ides\nĠd ioxide\nĠG ore\nĠBr ight\nĠS ierra\nĠval ued\nc ond\nĠpo inter\nSe lect\nĠrisk y\nĠabsor b\nim ages\nĠref uses\nĠbon uses\n__ _\nĠh ilar\nĠF eatures\n2 20\nĠCollect or\nF oot\nĠ19 64\ncul us\nĠd awn\nĠwork out\nĠL O\nĠphilosoph ical\nĠSand y\nĠYou th\nĠl iable\nA f\nbl ue\nĠovert urn\nless ness\nĠTrib une\nĠIn g\nĠfact ories\nĠcat ches\nĠpr one\nĠmat rix\nĠlog in\nĠin acc\nĠex ert\ns ys\nĠneed le\nĠQ ur\nĠnot ified\nould er\nt x\nĠremind s\nĠpublisher s\nĠn ort\nĠg it\nĠfl ies\nĠEm ily\nĠflow ing\nĠAl ien\nĠStr ateg\nĠhard est\nĠmod ification\nAP I\nĠM Y\nĠcr ashes\nst airs\nn umber\nĠur ging\nch annel\nĠFal con\nĠinhabit ants\nĠterr ifying\nĠutil ize\nĠban ner\nĠcig arettes\nĠsens es\nĠHol mes\nĠpract ition\nĠPhill ips\nott o\nĠcomp ile\nMod el\nĠK o\nĠ[ ]\nAmeric ans\nĠTer ms\nĠmed ications\nĠAn a\nĠfundament ally\nĠNot ice\nĠwe aker\nĠ 0000\nĠgar lic\nĠout break\nĠeconom ist\nĠB irth\nĠobst acles\nar cer\nĠOr thodox\nĠplace bo\nĠC rew\nasp berry\nĠAng els\nĠdis charge\nĠdestruct ive\n11 7\nĠR ising\nĠd airy\nl ate\nĠcoll ision\nĠTig ers\nean or\nocument ed\nĠIn valid\nĠd ont\nĠL iter\nĠV a\nĠhyd rogen\nĠvari ants\nĠBrown s\nĠ19 65\nĠind igenous\nĠtrad es\nĠremain der\nĠswe pt\nĠImp act\nĠred ist\nĠun int\ngrad uate\nãĥ ķ\nĠW ILL\nãģ® ç\nĠCrit ical\nĠf isher\nĠv icious\nĠrevers ed\nY ear\nĠS ox\nĠshoot ings\nĠfil ming\nĠtouchdown s\nai res\nm el\nĠgrand father\nĠaffect ion\ning le\nĠover ly\nAdd itional\nĠsup reme\nĠGr ad\nĠsport ing\nĠmer cy\nĠBrook s\nount y\nĠperform s\nĠtight ly\nĠdem ons\nĠkill ings\nĠfact ion\nĠNov a\naut s\nĠund oubtedly\nar in\nĠunder way\nra k\nĠl iv\nĠReg ion\nĠbrief ing\ns ers\ncl oud\nĠM ik\nus p\nĠpred iction\naz or\nĠport able\nĠG and\nĠpresent ing\nĠ10 80\nÂ »\nush i\nĠSp ark\nthere um\nĠjust ification\nĠN y\nĠcontract ors\nming ham\nĠSt yle\nå ħ\nĠChron icles\nĠPict ure\nĠprov ing\nĠw ives\nset t\nĠmole cules\nĠFair y\nĠconsist ing\nĠp ier\nal one\nin ition\nĠn ucle\nj son\nĠg otta\nĠmob il\nĠver bal\nar ium\nĠmon ument\nuck ed\nĠ25 6\nT ech\nmine craft\nĠTr ack\nĠt ile\nĠcompat ibility\nas is\nĠs add\nĠinstruct ed\nĠM ueller\nĠle thal\nĠhorm one\nĠor che\nel se\nĠske let\nĠentert aining\nĠminim ize\nag ain\nĠunder go\nĠconst raints\nĠcig arette\nĠIslam ist\nĠtravel s\nĠPant hers\nl ings\nC are\nĠlaw suits\nur as\nĠcry st\nĠlow ered\nĠaer ial\nĠcomb inations\nĠha un\nĠch a\nĠv ine\nĠquant ities\nĠlink ing\nb ank\nĠso y\nB ill\nĠAngel a\nĠrecip ient\nĠProt est\nĠs ocket\nĠsolid arity\nĠâ Ĩ\nm ill\nĠvar ies\nĠPak istani\nDr agon\nĠun e\nĠhor izon\nÂłÂłÂłÂł ÂłÂłÂłÂł\nĠprov inces\nĠfrank ly\nĠenact ed\nnot es\n[ '\nĠ19 2\nocr acy\nĠendorse ment\nĠover time\nTr ue\nL ab\nlic ted\nĠD NC\nĠbe ats\nĠJam ie\n15 2\nĠIN T\nCont act\nĠaccount ed\nh ash\nĠPack ers\np ires\nĠles bian\nĠamend ments\nĠhop eful\nĠFin land\nĠspot light\nĠconfig ured\nĠtrou bled\nĠg aze\nĠCal gary\nĠrel iability\nĠins urg\nsw er\nb uy\nĠSk in\nĠp ixels\nĠhand gun\nĠpar as\nĠcateg or\nĠE L\nĠRe x\nInd eed\nĠkind a\nĠconj unction\nĠBry an\nĠMan ufact\ny ang\nPl us\nS QL\nish ment\nĠdom inate\nĠn ail\nĠo ath\nĠeru pt\nĠF ine\nit bart\nĠCh ip\nĠAb d\nĠN am\nĠbuy er\nĠdiss ent\nLe aks\nCont in\nĠr ider\nĠSome one\nĠill usion\nc in\nĠBoe ing\nĠin adequ\nov ation\ni ants\nĠreb uild\n4 50\nĠDest iny\nS W\nĠT ill\nH it\nia z\nĠBang l\nacher s\nĠRe form\nĠse gments\nĠsystem atic\nd c\nĠConserv atives\nĠport al\nh or\nĠDragon bound\nĠdrag ged\nom o\nĠthe e\nad vert\nĠRep orts\nĠE t\nĠbarrel s\nAug ust\nĠcompar isons\nĠhe x\nĠan throp\n\" [\nbor ough\nab i\nĠpict ured\nplay ing\nĠAdd ress\nĠMir ror\nSm ith\nĠt ires\nĠN PR\nAA AA\nĠclass ification\nĠTh an\nĠH arm\nĠR A\nĠreject ion\nmin ation\nĠr anged\nĠF alls\nD I\nH ost\nãĤ ´\nĠEx ample\nlist ed\nth irds\nĠsaf egu\nbr and\nĠprob able\nCan ada\nIT ION\nĠQ aeda\nĠch ick\nĠimport s\nh it\nl oc\nW W\nĠble w\nĠany time\nĠwh oles\nik ed\nĠcal culation\ncre ate\nĠO ri\nĠupgr aded\nĠapp ar\nut ory\nĠM ol\nB rit\nĠJ ong\nIN AL\nĠStart ing\nĠd ice\nurt le\nĠre lying\ncl osure\nĠprof itable\nĠsl aughter\nĠMan ual\nc aster\nĠ\" $\nĠfe ather\nĠSim ply\nie ves\nĠdeter ior\nĠPC I\nĠst amp\nĠfl aws\nĠsh ade\nham mer\nĠpass port\nĠcont ing\nam el\nĠobser vers\nĠneg lect\nĠR B\nĠBrother hood\nĠskept ical\nf amily\nus k\nĠemotion ally\nâ Ļ\nĠBet a\nason able\nid ity\nĠM ul\nĠkick ing\nĠC arm\noll ah\nVERT IS\nĠAt hen\nĠlad der\nĠBul let\nå £\n00 01\nĠWild life\nĠM ask\nĠN an\nR ev\nĠun acceptable\nleg al\nĠcrowd ed\nag i\nĠC ox\nj e\nĠmor ality\nĠfu els\nĠc ables\nĠman kind\nĠCarib bean\nĠanch or\nĠby te\nĠO ften\nĠO z\nĠcraft ed\nĠhistor ian\nĠW u\nĠtow ers\nĠCitiz ens\nĠhel m\nĠcred entials\nĠsing ular\nĠJes se\nĠtack les\nĠcont empt\nĠa fore\nĠSh adows\nĠn il\nĠur gent\napp le\nbl ood\nĠv on\nĠoff line\nĠbreat he\nĠj umps\nĠirre levant\nox ic\nom al\nimport ant\nJ im\nĠgl oves\narm ing\ndep th\nĠtal ents\nook ie\nĠS B\nĠpal m\nuff s\nest a\nIG H\nĠcan on\nĠVer izon\nĠP le\nĠcou pled\nvel t\nĠfundra ising\nĠGet ting\nĠD LC\nĠmathemat ical\nĠH S\nĠCard inals\nte lling\nĠspons ors\nĠ Ï\nĠBull s\nop tion\nĠprop ose\nĠmem orable\nĠembr aced\nĠdecl ining\nHe alth\ned a\nĠ} ;\nĠsp am\nm ile\nĠpit cher\nĠE ight\nĠcar ing\nut ic\nro le\nĠair line\nernand ez\nĠAth let\nĠcert ification\nux e\nrig er\nĠem pir\nĠsens ation\nĠdis m\nĠb olt\nĠev olve\nH ouse\nĠconsult ation\nĠD uty\nĠtou ches\nĠN athan\nĠf aint\nh ad\n\" (\nĠCons umer\nĠExt reme\nĠ12 7\nĠHer m\nĠSac rament\niz oph\nĠanx ious\nul ously\nĠsoc ially\nĠU TC\nĠsol ving\nĠLet ter\nHist ory\ned uc\nPr ice\n) );\nĠrel oad\nam ic\nĠp ork\nĠdisc ourse\nĠt ournaments\nai ro\nĠK ur\nĠCost a\nĠviol ating\nĠinterf ere\nĠrecre ational\nuff le\nĠspe eches\nĠneed ing\nĠremem bers\nĠcred ited\nn ia\nf ocused\namer a\nĠb ru\num bs\nĠCub an\nĠpreced ing\nĠnons ense\nac ial\nĠsmart phones\nĠSt ories\nS ports\nĠEmer gency\noun cing\nef ined\nĠb er\nĠconsult ing\nĠm asters\nhe astern\n.\" [\nĠRun ning\nĠsus cept\nĠF eng\nAmeric a\npr ises\nst itial\nĠWeek ly\nĠGreat er\nmod ules\nif ter\nG raphics\nul er\nĠwho lly\nĠsupp ress\nĠconce aled\nĠhapp ily\nĠaccept s\nĠEn joy\nĠr ivers\nĠEx cept\n2 25\nĠN HS\nĠMc Connell\nĠp ussy\nfer red\nut able\nĠatt ain\nĠ> =\nĠdepos its\nroph ic\nĠnot orious\nĠSh aw\nil itation\nĠepid emic\nall ic\nĠsmall est\nov ich\nĠaccess ories\nper ties\nĠsur plus\nĠMe ch\nĠamb ig\nĠImm igration\nĠch im\nev al\nĠpract icing\nĠMyster y\nĠdom ains\nĠSil icon\napp s\nĠkilomet ers\ne a\nĠSm ash\nĠwarrant y\nĠn ost\ns il\nre v\nJ on\nĠDub lin\nĠtast es\nĠb out\ng reat\ner ror\nĠsw itches\nĠB apt\nD O\nok i\nĠsour ced\npro du\nĠattach ment\nĠIss ue\nĠQuest ion\nJo in\nĠf itted\nĠunlaw ful\n^ ^\nere k\nĠauthent ication\nĠst ole\nĠaccount ability\nl abel\nS earch\nĠal beit\natic an\nfund ed\nĠAdd ing\nĠI Q\nĠsub mar\nl it\na que\nĠLear ning\nĠint eger\nM aster\nĠCh rom\nĠprem ier\nO p\nĠLi u\nĠbl essed\nĠGl obe\nĠResp onse\nĠlegit im\nĠMer kel\nĠdispos al\nÂ ´\nĠgau ge\npe at\nĠindu ced\nĠquestion able\narth y\nĠV it\nĠF eed\nU ntil\nU t\nworth y\nR Y\nĠH erald\nĠHam mer\nĠmed al\nĠR ivers\nĠH ack\nĠclar ify\nĠtrack ed\nĠautonom ous\nĠten ant\nĠQ atar\ner ie\nĠgr im\nĠMon itor\nĠresist ant\nĠSpe c\nĠWell s\nN AS\n14 8\nĠmin ers\niot ics\nĠmiss es\n11 6\ng ian\ng it\nĠE yes\np res\nĠgrad uated\nĠang el\nĠsyn chron\nĠefficient ly\nĠtrans mitted\nH arry\nĠglob ally\nEN CE\nĠMont ana\nr aged\nĠPre vention\nĠp iss\nĠL l\nĠshe lf\nĠB JP\nĠTest ament\nĠL ate\nik er\nĠH app\nĠJul ian\nh all\nĠsp ont\nĠshut down\nĠincons istent\nĠsubscrib ers\nĠske leton\nĠNe braska\nĠins pire\nĠV oid\nF eed\nĠang les\nĠSpr ings\nĠbench mark\nĠvacc ines\nizoph ren\nse xual\nuff ed\nĠsh ine\nĠK ath\nĠgest ure\nine a\nĠr ip\nĠopp ression\nĠcons cience\nb t\nĠL um\nĠinc idence\nĠF a\nw r\nĠmin eral\nĠSp urs\nalk y\nĠth under\nĠop io\nBe ing\nĠPal m\nĠwas ted\nĠl b\ni aries\nĠIniti ative\nĠcur ric\nĠmark er\nĠMc L\nĠext ensions\nĠP v\nĠAr ms\nĠoffer ings\nĠdef enses\nĠvend or\nĠcontrad ict\nĠCol in\nĠredd it\nĠper ipher\n12 2\nĠs ins\nE dit\nIC T\nSo ft\nĠSh ah\nĠadministr ator\nĠT rip\nĠporn ography\nĠtu ition\nin ence\nĠPro gress\nĠcat alog\nĠsu ite\nĠh ike\nĠreprodu ctive\neng ine\nĠd rought\nĠNo ah\nĠ2 30\nĠd ude\nĠrelax ed\nĠpart ition\nĠparticip ant\nĠtel esc\nĠfe as\nĠF F\nown er\nĠswe eping\nĠl enses\nĠmatch up\nĠRe pl\nourn als\nĠcred ible\nĠgrand mother\nĠther mal\nĠsubscrib ing\nĠident ities\ncol m\nU CT\nĠreluct ant\nus ers\nĠC ort\nĠassist ed\nOS S\nATION S\nIS H\nĠpharm aceutical\nic able\nad ian\nĠSon ic\nĠF ury\nĠM ong\nA H\nĠPsych ology\nĠph osph\nĠtreat s\nŃ Ķ\nĠstead ily\nĠHell o\nĠrel ates\nĠcl ue\nEx pl\na uth\nĠrev ision\nĠe ld\nos ion\nĠbr on\n14 4\nri kes\nĠmin es\nĠblank et\nĠF ail\nel ed\nĠIm agine\nĠPl anned\na ic\nRe quest\nM ad\nĠHor se\nĠEag le\nĠcap ac\n15 7\nĠl ing\nĠN ice\nĠP arenthood\nmin ster\nog s\nens itive\nNot hing\nĠcar n\nF in\nĠP E\nĠr ifles\nĠL P\nS and\nĠgui Active\nĠtour ist\nC NN\nĠunve iled\nĠpredec essor\n} {\nu ber\nĠoff shore\nĠopt ical\nĠR ot\nĠPear l\net on\nĠst ared\nĠfart her\nat ility\ncont in\nĠG y\nĠF oster\nĠC oc\nri ents\nĠdesign ing\nĠEconom y\nON G\nW omen\nĠN ancy\ner ver\nĠmas cul\nĠcasual ties\nĠ2 25\nĠS ullivan\nĠCh oice\nĠa ster\nw s\nĠhot els\nĠconsider ations\nĠcou ch\nĠSt rip\nĠG n\nĠmanip ulate\nl ied\nĠsynt hetic\nĠassault ed\nĠoff enses\nĠDra ke\nĠim pe\nOct ober\nĠHer itage\nh l\nĠBl air\nUn like\nĠg rief\nĠ4 50\nĠopt ed\nĠresign ation\nil o\nĠver se\nĠT omb\nĠu pt\nĠa ired\nĠH ook\nĠML B\nĠassum es\nout ed\nĠV ers\nĠinfer ior\nĠbund le\nĠD NS\nograp her\nĠmult ip\nĠSoul s\nĠillust rated\nĠtact ic\nĠdress ing\nĠdu o\nCon f\nĠrel ent\nĠc ant\nĠscar ce\nĠcand y\nĠC F\nĠaffili ated\nĠspr int\nyl an\nĠGarc ia\nĠj unk\nPr int\nex ec\nC rit\nĠport rait\nir ies\nĠOF F\nĠdisp utes\nW R\nL ove\nãģ Ħ\nĠRe yn\nĠh ipp\nop ath\nĠflo ors\nĠFe el\nĠwor ries\nĠsett lements\nĠP os\nĠmos que\nĠfin als\nĠcr ushed\nĠPro bably\nĠB ot\nĠM ans\nĠPer iod\nĠsovere ignty\nĠsell er\nĠap ost\nĠam ateur\nĠd orm\nĠconsum ing\nĠarm our\nĠRo ose\nĠint ensive\nĠelim inating\nĠSun ni\nĠAle ppo\nj in\nĠadv ise\np al\nĠH alo\nĠdes cent\nĠsimpl er\nĠbo oth\nST R\nL ater\nĠC ave\n== =\nĠm ol\nĠf ist\nĠshot gun\nsu pp\nĠrob bery\nE ffect\nĠobsc ure\nĠProf essional\nĠemb assy\nĠmilit ant\nĠinc arcer\nĠgener ates\nĠlaun ches\nĠadministr ators\nĠsh aft\nĠcirc ular\nĠfresh man\nĠW es\nĠJo el\nĠD rew\nĠDun can\nĠApp arently\ns ight\nĠIntern al\nĠInd ividual\nĠF E\nĠb ore\nĠM t\nĠbroad ly\nĠO ptions\nount ain\nip es\nĠV ideos\n20 4\nĠh ills\nĠsim ulation\nĠdisappoint ment\nit an\nĠLabor atory\nĠup ward\nĠbound ary\nĠdark er\nh art\nĠdomin ance\nC ong\nĠOr acle\nĠL ords\nĠscholars hip\nĠVin cent\ned e\nĠR ah\nĠencour ages\nro v\nĠqu o\nĠprem ise\nĠCris is\nĠHol ocaust\nĠrhyth m\nĠmet ric\ncl ub\nĠtransport ed\nĠn od\nĠP ist\nĠancest ors\nĠFred er\nth umbnails\nĠC E\nON D\nPh il\nven ge\nĠProduct s\ncast le\nĠqual ifying\nĠK aren\nVERTIS EMENT\nĠmight y\nĠexplan ations\nĠfix ing\nD i\nĠdecl aring\nĠanonym ity\nĠju ven\nĠN ord\nĠDo om\nĠAct ually\nO k\nph is\nĠDes ert\nĠ11 6\nI K\nĠF M\nĠinc omes\nV EL\nok ers\nĠpe cul\nĠlight weight\ng ue\nĠacc ent\nĠincre ment\nĠCh an\nĠcompl aining\nĠB aghd\nĠmidfield er\nĠover haul\nPro cess\nĠH ollow\nĠTit ans\nSm all\nman uel\nĠUn ity\nĠEv ents\nS ty\nĠdispro portion\nn esty\nen es\nĠC od\nĠdemonstr ations\nĠCrim son\nĠO H\nĠen rolled\nĠc el\nĠBre tt\nĠa ide\nĠhe els\nĠbroad band\nĠmark ing\nĠw izard\nĠN J\nĠChief s\nĠingred ient\nĠd ug\nĠSh ut\nurch ase\nend or\nĠfar mer\nĠGold man\n12 9\n15 5\nOr der\nĠl ion\ni ably\nĠst ain\nar ray\nilit ary\nĠFA Q\nĠexpl oded\nĠMcC arthy\nĠT weet\nĠG reens\nek ing\nl n\nens en\nĠmotor cycle\nĠpartic le\nĠch olesterol\nB ron\nĠst air\nĠox id\nĠdes irable\nib les\nĠthe or\nfor cing\nĠpromot ional\nov o\nb oot\nĠBon us\nraw ling\nĠshort age\nĠP sy\nĠrecru ited\nĠinf ants\nĠtest osterone\nĠded uct\nĠdistinct ive\nĠfirm ware\nbu ilt\n14 5\nĠexpl ored\nĠfact ions\nĠv ide\nĠtatt oo\nĠfinan cially\nĠfat igue\nĠproceed ing\nconst itutional\nĠmis er\nĠch airs\ngg ing\nipp le\nĠd ent\nĠdis reg\nç Ķ\nst ant\nll o\nb ps\naken ing\nĠab normal\nĠE RA\nå£ «\nĠH BO\nĠM AR\nĠcon cess\nĠserv ant\nĠas pir\nl av\nĠPan el\nam o\nĠprec ip\nĠrecord ings\nĠproceed ed\nĠcol ony\nĠT ang\nab lo\nĠstri pped\nLe ft\nto o\nĠpot atoes\nĠfin est\n% ).\nĠc rap\nĠZ ach\nab ases\nĠG oth\nĠbillion aire\nw olf\nĠsan ction\nS K\nĠlog ged\nP o\ney ed\nun al\nĠcr icket\nĠarm ies\nĠunc overed\nCl oud\nÃ³ n\nĠreb ounds\nĠm es\nO per\nP ac\nĠnation ally\nĠinsert ed\np ict\nĠgovern ance\nÐ ¸\nĠprivile ges\nG ET\nĠfavor ites\nim ity\nĠlo ver\nthe m\nem pl\nĠgorge ous\nAn n\nĠsl ipped\nĠve to\nB ob\nĠsl im\nu cc\nĠF ame\nudden ly\nĠden ies\nĠM aur\nĠdist ances\nĠw anna\nt ar\nĠS ER\nĠâ Ī\nĠle mon\nat hetic\nĠlit eral\nĠdistingu ished\nĠansw ering\nG I\nĠrelig ions\nĠPhil os\nĠL ay\nĠcomp os\nire ments\nĠK os\nine z\nroll ing\nĠyoung est\nand ise\nĠB orn\nĠalt ar\nam ina\nĠB oot\nv oc\nĠdig ging\nĠpress ures\nĠl en\n26 4\nĠassass ination\nĠBir mingham\nĠMy th\nĠsovere ign\nĠArt ist\nĠPhot ograph\nĠdep icted\nĠdisp ens\north y\nĠamb ul\nint eg\nĠC ele\nĠTib et\nĠhier archy\nĠc u\nĠpre season\nĠPet erson\nĠcol ours\nĠworry ing\nĠback ers\nĠPal mer\nĠÎ ¼\nĠcontribut or\nĠhear ings\nĠur ine\nĠ Ù\nourge ois\nSim ilar\nĠZ immer\ns omething\nĠUS C\nĠstrength s\nĠF I\nĠlog ging\nAs ked\nĠTh ai\nin qu\nĠW alt\nĠcrew s\nit ism\n3 01\nĠshar ply\num ed\nĠred irect\nr ators\nIn f\nĠWe apons\nĠte asp\n19 99\nL ive\nĠEs pecially\nĠS ter\nĠVeter ans\nĠint ro\nother apy\nĠmal ware\nĠbre eding\nĠmole cular\nĠR oute\nĠCom ment\noc hem\nĠa in\nSe ason\nĠlineback er\nÄ «\nĠEconom ics\nes ar\nĠL ives\nĠEm ma\nĠk in\nĠTer rit\nĠpl anted\not on\nĠBut ter\nĠSp ons\nP ER\nĠdun geon\nĠsymb olic\nĠfil med\nĠdi ets\nĠconclud es\nĠcertain ty\nĠForm at\nĠstr angers\nform at\nĠPh ase\nĠcop ied\nĠmet res\nld a\nĠUs ers\nĠdeliber ate\nĠwas hed\nĠL ance\nim ation\nĠimpro per\nĠGen esis\nick r\nĠK ush\nĠreal ise\nĠembarrass ing\nalk ing\nb ucks\nĠver ified\nĠout line\nyear s\nĠIn come\n20 2\nĠz ombies\nF inal\nĠMill enn\nĠmod ifications\nĠV ision\nĠM oses\nver b\niter ranean\nĠJ et\nĠnav al\nĠA gg\nĠur l\nĠvict ories\nĠnon etheless\nĠinj ust\nĠF act\nç ļ\nĠins ufficient\nre view\nface book\nĠnegoti ating\nĠguarant ees\nim en\nuten berg\nĠg ambling\nĠcon gr\nLoad ing\nĠnever theless\nĠpres idents\nĠIndust rial\nĠ11 8\nĠp oured\nĠT ory\nĠ17 5\nĠ: =\nSc ott\nange red\nT ok\nĠorgan izers\nM at\nĠG rowth\nĠad ul\nĠens ures\nĠ11 7\né¾į å\nĠmass acre\nĠgr ades\nbe fore\nAD VERTISEMENT\nĠSl ow\nĠM MA\nâĢĶ \"\nĠV atican\nQ aeda\nĠo we\n66 66\nĠS orry\nĠGr ass\nĠbackground s\nĠexha usted\nĠcl an\nĠcomprom ised\nĠE lf\nĠIsa ac\nens on\nIn vest\nIF A\nĠinterrupt ed\nãĥī ãĥ©\nĠtw isted\nĠDrag ons\nM ode\nĠK remlin\nĠfert il\nhe res\nph an\nĠN ode\nf ed\nĠOr c\nĠunw illing\nC ent\nĠprior it\nĠgrad uates\nĠsubject ive\nĠiss uing\nĠL t\nĠview er\nĠw oke\nTh us\nbro ok\nĠdep ressed\nĠbr acket\nĠG or\nĠFight ing\nĠstri ker\nRep ort\nĠPortug al\nĠne o\nw ed\n19 9\nĠflee ing\nsh adow\nident ified\nUS E\nSte am\nĠstret ched\nĠrevel ations\nart ed\nĠD w\nĠalign ment\nest on\nĠJ ared\nS ep\nĠblog s\nup date\ng om\nr isk\nĠcl ash\nĠH our\nĠrun time\nĠunw anted\nĠsc am\nĠr ack\nĠen light\non est\nĠF err\nĠconv ictions\nĠp iano\nĠcirc ulation\nĠW elcome\nĠback lash\nĠW ade\nĠrece ivers\not ive\nJ eff\nĠnetwork ing\nĠPre p\nĠExpl orer\nĠlect ure\nĠupload ed\nĠMe at\nB LE\nĠNaz is\nĠSy nd\nst ud\nro ots\nri ans\nĠportray ed\nĠ ??\nĠBudd ha\ns un\nRober t\nĠCom plex\nĠover see\nĠste alth\nT itle\nĠJ obs\nĠK um\nĠappreci ation\nĠM OD\nĠbas ics\nĠcl ips\nĠnurs ing\nĠpropos ition\nĠreal ised\nĠNY C\nĠall ocated\nri um\nar an\nĠPro duction\nĠV ote\nĠsm ugg\nĠhun ter\naz er\nĠCh anges\nĠfl uct\ny on\nAr ray\nĠk its\nW ater\nĠuncom mon\nĠrest ing\nell s\nw ould\nĠpurs ued\nĠassert ion\nomet own\nĠMos ul\nĠPl atform\nio let\nĠshare holders\nĠtra ils\nP ay\nĠEn forcement\nty pes\nĠAn onymous\nĠsatisf ying\nil ogy\nĠ( '\nw ave\nc ity\nSte ve\nĠconfront ation\nĠE ld\nC apt\nah an\nht m\nĠC trl\nON S\n2 30\nif a\nhold ing\nĠdelic ate\nĠj aw\nĠGo ing\nor um\nS al\nĠd ull\nĠB eth\nĠpr isons\nĠe go\nĠEl sa\navor ite\nĠG ang\nĠN uclear\nĠsp ider\nats u\nĠsam pling\nĠabsor bed\nĠPh arm\niet h\nĠbuck et\nĠRec omm\nO F\nĠF actory\nAN CE\nĠb acter\nH as\nĠObs erv\n12 1\nĠprem iere\nDe velop\nĠcur rencies\nC ast\nĠaccompany ing\nĠNash ville\nĠfat ty\nĠBre nd\nĠloc ks\nĠcent ered\nĠU T\naugh s\nor ie\nĠAff ordable\nv ance\nD L\nem et\nĠthr one\nĠBlu etooth\nĠn aming\nif ts\nAD E\nĠcorrect ed\nĠprompt ly\nĠST R\nĠgen ome\nĠcop e\nĠval ley\nĠround ed\nĠK end\nal ion\np ers\nĠtour ism\nĠst ark\nv l\nĠblow ing\nĠSche dule\nst d\nĠunh appy\nĠlit igation\nced es\nĠand roid\nĠinteg ral\nere rs\nud ed\nt ax\nĠre iter\nĠMot ors\noci ated\nĠwond ers\nĠAp ost\nuck ing\nĠRoose velt\nf ram\nĠyield s\nĠconstit utes\naw k\nInt erest\nĠinter im\nĠbreak through\nĠC her\nĠpro sec\nĠD j\nĠM T\nRes p\nĠP T\nĠs perm\ned it\nB T\nLin ux\ncount ry\nle ague\nĠd ick\nĠo ct\nĠinsert ing\nĠsc ra\nĠBrew ing\nĠ19 66\nĠrun ners\nĠpl un\nid y\nĠD ian\nĠdys function\nĠex clusion\nĠdis gr\nĠincorpor ate\nĠrecon c\nĠnom inated\nĠAr cher\nd raw\nachel or\nĠwrit ings\nĠshall ow\nĠh ast\nĠB MW\nĠR S\nĠth igh\nĠ19 63\nĠl amb\nĠfav ored\nag le\nĠcool er\nĠH ours\nĠG U\nĠOrig in\nĠglim pse\n---------------- ----\nL im\nĠche ek\nĠj ealous\n- '\nĠhar ness\nĠPo ison\nĠdis abilities\nne apolis\nĠout look\nĠnot ify\nĠIndian apolis\nĠab rupt\nns ic\nĠenc rypted\nĠfor fe\nreat h\nĠr abb\nĠfound ations\nĠcompl iment\nĠInter view\nĠS we\nĠad olesc\nĠmon itors\nĠSacrament o\nĠtime ly\nĠcontem pl\nĠposition ed\nĠpost ers\nph ies\niov ascular\nv oid\nĠFif th\nĠinvestig ative\nOU N\nĠinteg rate\nĠIN C\nish a\nibl ings\nĠRe quest\nĠRodrig uez\nĠsl ides\nĠD X\nĠfemin ism\nĠdat as\nĠb end\nir us\nĠNig eria\nF ox\nCh ange\nĠair plane\nĠLad en\nĠpublic ity\nixt y\nĠcommit ments\nĠaggreg ate\nĠdisplay ing\nĠAr row\nĠ12 2\nĠrespect s\nand roid\ns ix\nĠSh a\nĠrest oration\n) \\\nW S\noy s\nĠillust rate\nwith out\n12 6\nĠâĶ Ĥ\nĠpick up\nn els\nĠ ....\nf ood\nĠF en\n) ?\nĠphenomen a\nĠcompan ions\nĠW rite\nĠsp ill\nĠbr idges\nĠUp dated\nĠF o\nĠinsect s\nASH INGTON\nĠsc are\nil tr\nĠZh ang\nĠsever ity\nĠind ul\n14 9\nĠCo ffee\nĠnorm s\nĠp ulse\nĠF T\nĠhorr ific\nĠDest roy\nĠJ SON\nĠo live\nĠdiscuss es\nR est\nE lect\nĠW inn\nĠSurv iv\nĠH ait\nS ure\nop ed\nĠro oted\nĠS ke\nĠBron ze\nĠl ol\nDef ault\nĠcommod ity\nred ited\nĠliber tarian\nĠforb idden\nĠgr an\nà ¨\nĠl ag\nen z\ndri ve\nĠmathemat ics\nĠw ires\nĠcrit ically\nĠcarb ohyd\nĠChance llor\nĠEd die\nĠban ning\nĠF ri\nĠcompl ications\net ric\nĠBangl adesh\nĠband width\nSt op\nĠOrig inally\nĠhalf way\nyn asty\nsh ine\nĠt ales\nrit ies\nav ier\nĠspin ning\nĠWH O\nĠneighbour hood\nb ach\nĠcommer ce\nĠS le\nB U\nĠentreprene ur\nĠpecul iar\nĠCom ments\nf re\n3 20\nIC S\nĠimag ery\nĠCan on\nĠElect ronic\nsh ort\n( (\nD ig\nĠcomm em\nu ced\nĠincl ined\nĠSum mon\nĠcl iff\nĠMed iterranean\nĠpo etry\nĠprosper ity\nĠRe ce\nĠp ills\nm ember\nĠfin ale\nun c\nĠG ig\nä ½\nĠl od\nĠback ward\n- +\nĠFor ward\nĠth ri\ns ure\nĠso ap\nĠF X\nR ES\nĠSe xual\noul os\nĠfool ish\nĠright eous\nĠco ff\nterror ism\nust ain\not er\nĠab uses\nne xt\nĠab usive\nĠthere after\nĠprohib ition\nĠS UP\nĠd ip\nĠr ipped\nĠinher ited\nĠb ats\nst ru\nG T\nĠflaw ed\nph abet\nĠf og\ndo ors\nĠim aging\nĠdig its\nĠHung ary\nĠar rog\nĠteach ings\nĠprotocol s\nĠB anks\nà ¸\np ound\nĠC urt\n.\" )\n. /\nĠex emption\nend ix\nĠM ull\nĠimpro ves\nĠG amer\nd imensional\nI con\nĠMarg aret\nSt atus\nd ates\nĠint ends\nĠdep ict\nĠpark ed\nJ oe\nĠMar ines\nchn ology\n! ).\nĠjud ged\nĠwe ights\nR ay\nĠapart ments\nhe ster\nĠrein force\nĠoff ender\nocc up\nĠs ore\ne pt\nĠPH P\nĠB row\nĠauthor ization\nĠR isk\nĠDel aware\nĠQ U\nĠnot ifications\nĠsun light\nĠex clude\nd at\nĠm esh\nĠSud an\nĠbelong ed\nĠsub way\nĠno on\nĠInter ior\nol ics\nĠL akers\nĠc oding\nDis claimer\nCal if\nO ld\nĠdis l\n???? ?\nĠconfir ms\nĠrecruit ment\nĠhom icide\nCons ider\nĠJeff rey\nft y\n} ;\nĠobject ion\ndo ing\nĠLe o\nW ant\nĠgl ow\nĠClar ke\nĠNorm an\nĠver ification\nĠpack et\nĠForm ula\nĠpl ag\nes ville\nĠshout ing\nĠo v\nĠR EC\nĠB ub\nĠn inth\nĠener g\nĠvalid ity\nĠup s\nj ack\nĠneighbor ing\nĠN ec\new orks\nĠH ab\nare z\nĠsp ine\nĠevent ual\nĠLe aders\nĠC arn\nĠprob ation\nĠrom ance\nms g\nĠMechan ical\nER Y\nR ock\nĠpart isan\nN ode\nass ets\nmin ent\nĠforeign ers\nĠtest ify\nĠUs ually\nl ords\nĠG ren\nĠPow ell\nBI L\nĠs r\nĠadd ict\nĠshell s\nĠs igh\nĠY ale\ntern ity\nĠ7 50\nE U\nĠR ifle\nĠpat ron\nem a\nĠB annon\nan ity\nĠtrop ical\nĠV II\nc ross\nEvery thing\nĠIS O\nĠhum ble\nass ing\nĠF IG\nĠupd ating\nys on\nĠcal cium\nĠcompet ent\nĠste ering\nPro t\nĠS Y\nĠFin als\nĠR ug\n15 9\n13 7\nĠG olf\nĠ12 6\nĠaccommod ation\nĠHug hes\nĠaest hetic\nart isan\nĠTw ilight\nĠpr ince\nĠAgric ulture\nĠDis co\nĠpreced ent\nĠtyp ing\nauthor ized\nO ption\nĠA ub\nl ishes\nach t\nm ag\nP eter\nĠU FO\nmont on\nĠL ith\nĠa rom\nĠsec uring\nĠconf ined\npriv ate\nĠsw ords\nĠmark ers\nĠmetab olic\nse lect\nĠCur se\nĠO t\ng ressive\nĠinc umb\nĠS aga\nĠpr iced\nĠclear ance\nCont ent\nĠdr illing\nĠnot ices\nĠb ourgeois\nĠv est\nĠcook ie\nĠGuard ians\nry s\nin yl\nĠ12 4\nĠpl ausible\non gh\nĠOd in\nĠconcept ion\nĠY uk\nĠBaghd ad\nĠFl ag\nAust ral\nĠI BM\nĠintern ationally\nĠWiki Leaks\nI ED\nĠc yn\nĠcho oses\nĠP ill\nĠcomb ining\nĠrad i\nĠMoh ammed\ndef ense\natch ing\nSub ject\nic iency\nFr ame\nĠ{ \"\nĠche ss\nĠtim er\n19 0\nĠt in\nĠord inance\nemet ery\nĠacc using\nĠnotice able\nĠcent res\nĠl id\nĠM ills\nimg ur\nĠz oom\nerg ic\nĠcomp ression\npr im\nf ind\nĠsur g\nĠp and\nĠK ee\nĠCh ad\ncell ence\noy le\nĠsocial ism\nĠT ravis\nĠM Hz\nĠgu ild\nALL Y\nĠSub scribe\nĠRel ated\nĠoccur rence\nitch ing\nĠfict ional\nĠcr ush\nĠE A\nc od\nm ix\nĠTri ple\nĠretrie ve\nĠstimul us\nĠpsych iat\nĠDo or\nĠhomosexual ity\nĠelement ary\nĠcell ular\nid ian\nĠL aun\nĠintrig uing\nĠfo am\nĠB ass\nid i\nits u\nĠass ure\nĠcongr at\nĠbusiness man\nĠBo ost\ncl ose\nĠl ied\nĠsc iences\nĠO mega\nĠG raphics\nĠ< =\nsp oken\nĠconnect ivity\nS aturday\nĠAven gers\nĠto ggle\nĠank le\nĠnational ist\nmod el\nĠP ool\nophob ia\nV ar\nĠM ons\nator ies\nĠaggress ively\nC lear\nFor ge\nact ers\nĠhed ge\nĠpip es\nĠbl unt\nĠs q\nĠremote ly\nW ed\nas ers\nĠref riger\nĠt iles\nĠresc ued\nĠcompr ised\nins ky\nĠman if\navan augh\nĠprol ifer\nĠal igned\nx ml\nĠtri v\nĠcoord ination\nĠP ER\nĠQu ote\n13 4\nb f\nĠS aw\nĠtermin ation\nĠ19 0\nĠadd itions\nĠtri o\nĠproject ions\nĠpositive ly\nĠin clusive\nĠmem br\n19 90\nold er\nĠpract iced\nink le\nAr ch\nĠstar ters\nari us\nĠinter mediate\nĠBen ef\nĠK iller\nĠinter ventions\nĠK il\nĠF lying\nIn v\nĠprem ature\nĠpsych iatric\nĠind ie\nĠcoll ar\nĠRain bow\naf i\nĠdis ruption\nĠFO X\ncast ing\nĠmis dem\nc ro\nĠw ipe\nard on\nĠb ast\nĠTom my\nĠRepresent ative\nĠbell y\nĠP O\nĠBre itbart\n13 2\nĠmess aging\nSh ould\nRef erences\nĠG RE\nist ical\nL P\nĠC av\nĠC razy\nĠintu itive\nke eping\nĠM oss\nĠdiscont in\nĠMod ule\nĠun related\nĠPract ice\nĠTrans port\nĠstatist ically\norn s\nĠs ized\np u\nĠca f\nĠWorld s\nĠRod gers\nĠL un\nĠCom ic\nl iving\nĠc ared\nĠclim bed\n) {\nĠconsist ed\nĠmed ieval\nfol k\nĠh acked\nĠd ire\nĠHerm ione\nĠt ended\nce ans\nD aniel\nw ent\nĠlegisl ators\nĠred es\ng ames\nĠg n\nam iliar\nĠ+ +\ngg y\nth reat\nĠmag net\nĠper ceive\nĠz ip\nĠindict ment\nĠcrit ique\ng ard\nĠSaf e\nĠC ream\nĠad vent\nob a\nĠv owed\nous ands\nĠsk i\nĠabort ions\nu art\nĠstun ned\nĠadv ancing\nĠlack ed\nĠ\\ \"\nĠsch izophren\nĠeleg ant\nĠconf erences\nĠcance led\nĠHud son\nĠHop efully\nĠtr ump\nĠfrequ encies\nĠmet eor\nĠJun ior\nĠFle et\nĠMal colm\nĠT ools\nĠ ........\nĠh obby\nĠEurope ans\nĠ15 00\nĠInt o\nĠs way\nĠApp ro\nĠCom pl\nComm unity\nĠt ide\nĠSum mit\nä »\nĠinter vals\nĠE ther\nĠhabit at\nĠSteven s\nlish ing\nĠDom ain\nĠtrig gers\nĠch asing\nĠchar m\nĠFl ower\nit ored\nĠbless ing\nĠtext ures\nF ive\nĠliqu or\nR P\nF IN\nĠ19 62\nC AR\nUn known\nĠres il\nĠL ily\nĠabund ance\nĠpredict able\nr ar\nĠbull shit\nle en\nche t\nM or\nM uch\nä ¹\nĠemphas ized\nĠcr ust\nĠprim itive\nĠenjoy able\nĠPict ures\nĠteam mate\npl er\nĠT ol\nĠK ane\nĠsummon ed\nth y\nram a\nĠH onda\nĠreal izing\nĠquick er\nĠconcent rate\ncle ar\nĠ2 10\nĠErd ogan\nar is\nĠrespond s\nĠB I\nĠelig ibility\nĠpus hes\nĠId aho\nĠagg rav\nĠru ins\nur ations\nĠb ans\nĠan at\nsh are\nĠgr ind\nh in\num en\nĠut ilities\nĠYan kees\nĠdat abases\nĠD D\nĠdispl aced\nĠdepend encies\nĠstim ulation\nh un\nh ouses\nĠP retty\nĠRaven s\nĠTOD AY\nĠassoci ates\nĠthe rape\ncl ed\nĠde er\nĠrep airs\nrent ice\nĠrecept ors\nĠrem ed\nĠC e\nĠmar riages\nĠball ots\nĠSold ier\nĠhilar ious\nop l\n13 8\nĠinherent ly\nĠignor ant\nĠb ounce\nĠE aster\nREL ATED\nĠCur rency\nE V\nãĥ ŀ\nĠLe ad\nĠdece ased\nB rien\nĠMus k\nJ S\nĠmer ge\nheart ed\nc reat\nm itt\nm und\nĠâĢ ĭ\nĠB ag\nĠproject ion\nĠj ava\nĠStand ards\nĠLeon ard\nĠcoc onut\nĠPop ulation\nĠtra ject\nĠimp ly\nĠcur iosity\nĠD B\nĠF resh\nĠP or\nĠheav ier\nne ys\ngom ery\nĠdes erved\nĠphr ases\nĠG C\nĠye ast\nd esc\nDe ath\nĠreb oot\nĠmet adata\nIC AL\nĠrep ay\nĠInd ependence\nĠsubur ban\nical s\nĠat op\nĠall ocation\ngener ation\nĠG ram\nĠmoist ure\nĠp ine\nĠLiber als\nĠa ides\nĠund erest\nĠBer ry\nĠcere mon\n3 70\nast rous\nĠPir ates\nĠt ense\nĠIndust ries\nĠApp eals\nĠN ear\nĠè£ı ç\nĠlo vers\nĠC AP\nĠC raw\nĠg iants\nĠeffic acy\nE lement\nĠBeh avior\nĠToy ota\nĠint est\nP riv\nA I\nĠmaneu ver\nĠperfect ion\nĠb ang\np aper\nr ill\nGe orge\nb order\nin ters\nĠS eth\nĠcl ues\nĠLe vi\nĠRe venue\n14 7\nĠv apor\nĠfortun ate\nĠthreat ens\nĠve t\nĠdepend ency\ners ed\nart icle\nĠBl izzard\nĠch lor\nĠmin us\nĠB ills\nĠcryptoc urrency\nĠmetabol ism\nter ing\nĠp estic\nstep s\nĠTre asure\nract ed\nĠConst ant\nĠtem p\n13 9\nĠDet ective\nur ally\nĠrecover ing\nĠcort ex\nĠ14 4\ncl osed\nĠprejud ice\naun ted\nĠstorm s\nĠN OW\nĠmach inery\nAdd ress\nĠcompe lled\n27 0\nĠdesp air\nb ane\nĠveget able\nĠbed s\nLear n\nĠcolor ful\nĠsp ike\nĠmarg ins\nĠsymp athy\nĠworks hop\nĠC BC\nS at\nĠburn s\nĠG ender\nĠ12 9\nĠC able\nĠdeb ts\nĠThe resa\nĠreflect ing\nĠa irst\nĠr im\nram id\nĠweakness es\nW rit\nogg le\nt i\nĠCh arge\nĠwe ighed\nĠ( .\nĠl aughter\nĠrou ter\nĠDemocr acy\nD ear\nĠhas ht\nĠd y\nĠhint s\nrun ning\nĠfin ishes\nar us\nM ass\nres ult\nasc us\nĠv intage\nĠcon qu\nĠwild ly\nac ist\nĠl ingu\nĠprot agonist\nst rom\nte enth\nĠSol o\nm ac\nf illed\nĠre nown\nit ives\nĠmot ive\nĠAnt ar\nĠM ann\nĠAd just\nĠrock ets\nĠtrou bling\ne i\nĠorgan isms\nass is\nChrist ian\nĠ14 5\nĠH ass\nĠsw all\nĠw ax\nĠSurv ival\nV S\nĠM urd\nv d\nstand ard\nĠdrag ons\nĠacceler ation\nr ational\nf inal\nĠp aired\nĠE thereum\nĠinterf aces\nĠres ent\nĠartif acts\nÅ «\nare l\nĠcompet itor\nĠNich olas\nĠSur face\nc pp\nĠT ot\nĠeconom ically\nĠorgan ised\nĠen forced\nin ho\nĠvar ieties\nĠab dom\nĠBa iley\nid av\nĠSal v\np aid\nĠalt itude\ness ert\nĠG utenberg\nare a\nop oulos\nĠprofess ors\nigg s\nĠF ate\nhe y\nĠ3 000\nD ist\nĠtw ins\nc ill\nĠM aps\nĠtra ps\nĠwe ed\nĠK iss\nĠy oga\nĠrecip ients\nĠWest minster\nĠpool s\nĠWal mart\n18 8\nĠSchool s\natt ack\nĠAR M\npar agraph\nW arning\nj l\nĠself ish\nanche z\nĠHe ights\nF re\nĠS oph\nĠ --------------------------------\nt ml\n33 3\nĠraid s\nĠsatell ites\nKE Y\nĠlast s\nÑ Ĥ\nIn s\nĠD ame\nĠunp redict\n// /\ngh ai\nĠart illery\nĠcru ise\nĠg el\nĠCabin et\nĠbl ows\nĠE sp\nĠprox imity\not he\nĠSk ills\nĠU pper\nob o\nĠN DP\nĠenjoy s\nĠrepe ating\nĠConst ruction\nĠQuest ions\nH illary\nĠu int\nĠprocess ors\nĠGib son\nĠMult iple\nq a\nĠB om\nĠM iles\nvent ional\nĠhur ts\ns kin\nĠA IDS\nĠadvis ers\nĠR oot\nĠmethod ology\nĠD ale\nĠdet on\nĠKnow ledge\nsequ ently\nĠ12 1\nĠconnect s\nC y\nĠD anger\nĠcontribut ors\nĠB ent\nĠbr ass\nĠGun s\nint o\nĠFort une\nĠbro ker\nbal ance\nĠlength s\nĠv ic\nĠaver aging\nĠappropri ately\nĠCamer a\nĠsand wich\nĠCD C\nĠcoord inate\nĠnav ig\nĠgood ness\nl aim\nĠbra ke\nĠextrem ist\nĠW ake\nĠM end\nĠT iny\nĠC OL\nĠR F\nĠD ual\nĠW ine\nC ase\nĠref ined\nĠl amp\nL ead\nĠb apt\nĠCar b\nĠS add\nĠMin neapolis\nPD F\nEar ly\nĠH idden\nI ts\nĠT IME\nĠp ap\nĠcommission ed\nĠF ew\nĠCol ts\nĠB ren\nĠbot hered\nĠlike wise\nEx per\nĠSch w\nc ry\nn n\nĠM itch\nim on\nM G\nb m\nUM P\nr ays\nĠregist ry\nĠ2 70\nach ine\nre lla\nant ing\n00 000\nĠru ined\nsp ot\nĠt a\nĠmaxim ize\nĠincon ven\nD ead\nH uman\nEn abled\nĠMar ie\nĠch ill\nĠParad ise\nĠstar ring\nĠLat ino\nĠProt ocol\nĠE VER\nĠsuppl iers\nm essage\nĠBro ck\nĠser um\nâĸĪâĸĪ âĸĪâĸĪ\nĠen comp\nĠamb ition\nues e\nĠar rows\nAnd rew\nĠanten na\nĠ19 61\nĠB ark\nĠb ool\nãĤ ª\nĠSt orage\nĠrail way\nĠtoug her\nĠC ad\nĠwas hing\nP y\n' ]\nem bed\nĠMem phis\nack le\nĠfam ously\nĠF ortunately\nov ies\nĠmind set\nĠsne ak\nĠD h\nRA W\nĠSim pson\nĠliv est\nĠland mark\nĠc ement\nL ow\nĠthr illed\nĠCour se\nin el\nĠch uck\nid ate\ngl obal\nĠwh it\nĠ ï¿½\nad ays\ns ki\nĠS V\nĠvir uses\n30 6\nĠResp ons\nĠthe aters\nĠBr anch\nĠGene va\nĠM K\nĠunbel iev\nĠcommun ist\nOrig inal\nĠRe ceived\nĠTrans fer\nĠAr g\nIn put\nĠStr ategy\nĠpal ace\nthe ning\nD ri\nĠsent encing\numbn ail\nĠp ins\nre cy\nĠs iblings\nGet ting\nĠB U\nĠNorth west\nĠprolong ed\nĠSak ura\nC omb\nĠB our\nĠinadequ ate\nĠK ash\nĠus ername\nĠImpro ve\nĠbatt ling\nĠM AC\nĠcurric ulum\nĠs oda\nĠC annon\nĠsens ible\nsp ons\nDe cember\nĠw icked\nĠP engu\nĠdict ators\nĠHe arts\nog yn\nĠsimilar ities\nĠSt ats\nĠh ollow\nit ations\n\": [\nĠh over\nĠList en\ns ch\nS und\nĠc ad\nĠPar ks\nĠl ur\nĠhy pe\nĠL em\nN AME\nis ure\nFr iday\nĠshoot s\nĠclos es\nĠd b\nĠR idge\nĠDiff erent\nĠrepl ies\nĠBroad way\nop ers\nĠint oler\nĠZe us\nakes pe\nĠpropri etary\nĠrequest ing\nĠcontro llers\nĠM IN\nim edia\nbe cca\nĠexp ans\nĠoil s\nB ot\nĠCh and\nĠpr inter\nĠto pped\nĠP OL\nĠEar lier\nS ocial\nav in\nĠdecre ases\nĠSe b\nĠspecific ations\nĠBl ast\nĠK urt\nĠfre el\nB rown\nĠdil ig\nro e\nĠPro blem\nĠQu ad\nĠdecent ral\nĠV ector\nan ut\nĠplug ins\nĠGreg ory\nĠfuck ed\nel ines\nĠAmb assador\nt ake\nĠcle ans\nong yang\nAn onymous\nst ro\n\" }\nal ine\nĠO dd\nĠE ug\n2 16\nĠbo il\nĠP owers\nĠnurs es\nOb viously\nĠTechn ical\nĠexceed ed\nOR S\nĠextrem ists\nĠtr aces\nex pl\nĠcom r\nĠS ach\n) /\nĠm asks\nĠsc i\nB on\nĠreg ression\nwe gian\nĠadvis or\nit ures\nĠV o\nex ample\nĠInst ruct\nĠs iege\nĠredu ctions\npt r\nĠstat utory\nĠrem oves\nĠp uck\nred its\nĠbe e\nĠsal ad\nĠpromot ions\nĠJosh ua\nwith standing\nET H\nĠCh a\nim us\nĠexpend iture\naun ting\nĠdelight ed\nĠ15 5\nbe h\nĠcar pet\nĠSp art\nĠj ungle\nl ists\nĠbull ying\nĠNob el\nĠGl en\nĠreferen ced\nĠintrodu ces\nse in\nĠcho pped\ngl ass\nĠW rest\nĠneutral ity\nĠâ Ļ\nĠinvestig ator\nĠshel ves\nĠun constitutional\nĠreprodu ction\nĠmer chant\nm ia\nĠmet rics\nĠexplos ives\nĠSon ia\nĠbod ily\nĠthick ness\nĠpredomin antly\nĠAb ility\nĠmon itored\nIC H\nĠ] .\nĠMart inez\nĠvis ibility\nĠqu eries\nĠgen ocide\nĠWar fare\nQu ery\nĠstud ios\nĠemb ry\nĠcorrid or\nĠclean ed\ncom plete\nĠM H\nĠenroll ment\nING S\nĠimpact ed\nĠdis astrous\nĠY un\nĠCl aire\nĠBas ically\ny t\nuster ity\nĠindirect ly\nw ik\nĠd od\nĠCar r\nĠam p\nĠprohib it\nĠIn itial\nĠR d\nij i\nĠeduc ate\nc orn\ni ott\nĠBeaut y\nĠdetect ive\nĠCon n\ns ince\nĠst agger\nĠob ese\nĠb ree\nolog ic\nis se\nwalk er\nĠbl ades\nĠlaw ful\nfun c\nĠBeh ind\nĠappet ite\nĠ( *\nĠt ennis\nĠoff spring\nĠj ets\nĠstruct ured\nĠafore mentioned\nN ov\nĠsc aling\nf ill\nĠst ew\nĠcur b\nĠStep han\ned In\nS F\nob ic\né ŃĶ\nou g\nĠM M\nĠgen etically\nope z\n13 6\nĠu mb\nanc ers\nĠcoh ort\nĠmerch andise\nĠimp osing\nĠLegisl ature\nĠArch ive\niv ia\nĠN aval\nĠoff ences\nĠmir acle\nĠsn apped\nĠf oes\nĠextensive ly\nĠR af\nĠc ater\ned ience\nK it\nĠB in\nĠrecomm ends\nĠC ities\nĠrig id\nĠRE AD\nĠNob le\nĠT ian\nĠcertific ates\nant is\no iler\nĠBudd hist\nd id\nĠsurvey ed\nĠdown ward\nĠprint s\nĠMot ion\nron ics\nĠS ans\noss ibly\nu ctions\nĠcolon ies\nĠDan ish\nun it\nĠsp oil\nĠadvis ory\nber ries\nPl an\nĠspecific ation\nop hers\nĠRes ource\nĠsh irts\nprising ly\ncommun ications\nĠtriv ial\nĠmention ing\nise xual\nĠsupp lements\nĠsuper vision\nB P\nv or\nĠw it\nĠco oldown\nĠplaint iff\nĠReview s\nĠS ri\nĠM int\nĠSug ar\nĠafter ward\nĠPri est\nĠInvest ment\nog ene\nĠT aking\nĠstretch ing\nĠinflamm ation\nĠTe hran\nĠl ining\nĠfree zing\nĠEnt ity\nĠins piring\nspe cial\npr ice\nĠsu e\nĠP orter\noun ge\nET A\nĠD erek\nĠLu is\nu o\nym ph\nĠex terior\nih il\nĠAsh ley\nin ator\nĠnut rients\nĠTh rones\nĠfin ances\nĠIn spect\nĠspe cially\nĠRequ ired\nĠP TS\nĠViol ence\noint ed\nsh ots\nĠex cerpt\nco on\nIN S\nĠG ri\nĠrecogn ised\nWe ek\nYou ng\nĠv om\nis le\nĠCur ry\nĠBudd h\nĠnot ebook\nĠd urable\n/ ?\nĠG ad\nĠP upp\nĠforg ive\np ark\nĠpersonal ities\nan alysis\ncl amation\nĠelev ator\nĠware house\nĠR ole\nun n\nĠillust ration\nĠSc an\nĠatmosp heric\nIm port\nAN C\nrict ed\nf u\n01 0\nĠar che\nĠreward ed\nakespe are\nĠintern ally\nĠR BI\nalk er\nĠeleph ant\now itz\nĠP izza\nĠbip artisan\nÃ© s\nĠslow ed\nĠSt ark\nĠover ride\nOU S\nĠ3 20\nundred s\nĠDe ck\nĠC ensus\nbe e\n14 6\not or\nĠ ip\nĠu b\noc ations\nĠBut ton\nr ice\nĠc ripp\nff f\nĠorig inated\nĠoverwhel med\napp a\nĠfore most\nâĢ ĳ\nĠL EG\nre lease\neat ured\nat ches\nĠre ps\nĠl ending\nĠRe ference\nĠCl ient\n16 5\nvent h\nCom plete\nĠPat rol\nĠsw orn\nc am\nĠshut tle\nĠR alph\nĠh ometown\n- ,\non al\nĠB P\nå ı\nĠpersu ade\nĠAlex and\nĠcomb ines\nĠv ivid\nĠL ag\nĠenc oding\nĠsal vation\nw en\nĠRec overy\ni ya\nUn iversity\nĠB iden\nĠbud gets\nĠTex ans\nf its\nĠhon ored\nĠp ython\nT D\n## #\ncl one\nĠbl ink\nĠL iquid\nĠunemploy ed\nĠcl ashes\nĠCoun sel\nĠdirect ing\nĠpun ct\nĠFal cons\nĠsh ark\nĠDam ascus\nĠje ans\nĠemb ark\nĠse ize\nĠup wards\n2 80\nĠE z\nĠAny thing\nĠex otic\nl ower\nĠCreat or\nĠU m\nĠsubur bs\nber ger\nĠW end\nĠm int\nĠX X\nĠD ro\nĠsuff ers\nĠher b\nt ree\nĠfrag ile\nĠflood ed\nĠAl cohol\nole an\nny der\nĠK O\nF ram\nĠ13 6\nĠow ed\nĠMe lee\nĠH ash\nĠwh isk\nĠsu do\nr r\nQu ick\napp ro\nĠi i\nĠEx amples\nhe e\nĠpromot es\nper ature\nk ar\nĠHon or\nĠs odium\nĠL if\nros so\nintend ent\nĠcorrespond ent\nF ound\nsec ret\nĠident ifies\nag ne\nĠl ou\nĠP P\nĠcoinc idence\nm ove\nĠmilit ia\nĠinf iltr\nĠPrim ary\nĠpitch ing\nĠI b\nĠGO OD\nãĤ ¸\nĠW izards\nir al\nĠVen us\nR R\nĠâĢ ķ\nĠCase y\nĠsad ly\nĠadm ire\nĠembarrass ed\nc b\nM el\nĠtub es\nĠbeaut ifully\nĠQueens land\nBel ow\nre z\nqu et\nple asant\nĠÂ «\nC amp\nĠdec isive\n19 98\nĠL amb\nut ton\nh n\nĠJ agu\nau nder\nĠC ord\nĠcl erk\nĠca ffe\nĠwip ed\nĠre im\nĠMount ains\nĠimprison ed\nĠdevelop s\nĠP ra\nĠmodel ing\nAny one\nance l\nĠS it\nĠshield s\nĠl awn\nĠcard iovascular\nĠdemonstr ating\nĠpar se\nĠIsrael is\nĠeuro s\n14 3\nĠgl orious\nins ki\nec d\nĠcondition ing\nĠhel pless\nĠmicro sc\nĠHar bor\nĠst akes\nĠ2 60\nĠun equ\nĠFl oyd\nĠd amp\nĠappar atus\nĠLaw s\nĠcoun ters\nĠindu ce\nat able\nĠAh med\nĠsl am\nN ovember\nĠpers ist\nĠim minent\nÃ¡ n\nĠsh red\nĠph ases\nĠEd monton\nĠArm strong\nĠMe et\nĠK itty\nÑ Ģ\nc irc\nĠAd ult\nĠa rose\nĠX en\nD an\ng ow\nĠsuper f\nĠAd mir\nĠend ure\nĠkey word\nyr us\nĠy arn\nĠpath way\nĠHop kins\nmid t\nĠcens orship\nd ependent\nĠinstruct or\nS ources\nĠto e\nĠball oon\nN ob\nĠsw ear\nĠCast ro\nĠgl oss\nĠK avanaugh\nĠremark ably\nPh otos\nĠN om\nĠS outheast\ny ers\nĠvalid ation\nĠcann on\nĠVict ory\nĠPier re\nĠcaut ious\nAud io\nĠf etch\nĠG ift\nĠH yp\nĠrem edy\nZ E\nĠsc ent\nĠbe ard\nĠR ut\n- \"\nĠpat ents\nH y\nĠun just\nĠpot ato\nĠforth coming\nĠche f\nĠR ift\naff e\nĠR OM\nĠL aunch\nĠp ads\nĠNe o\nĠon set\nĠsquee ze\ns afe\nĠpref ix\nĠT M\nĠN early\nĠClin ical\nĠM ental\not iation\nĠUn ic\nant ry\nĠC ir\nĠep it\nÃ ¦\nĠextract ed\nverse ly\nri ad\nĠstr ains\nĠto ps\nĠpo em\nĠRand y\nĠMap le\nTH ER\nup iter\nĠSS D\nļ é\nĠun con\nper ing\nĠsle pt\nin ers\nĠunder water\nĠEv idence\ng one\n20 5\nĠhistor ians\nĠsynt hesis\nĠf rog\nb asketball\nĠvibr ant\nĠsub ord\nĠ3 65\nĠD ial\nĠcooper ate\nHA HA\nĠgreet ed\n15 8\nĠj azz\nĠinto x\nĠWalk ing\nĠsuper visor\nĠF usion\nĠMer cedes\ns end\nH am\ns d\nn l\nĠtour s\nĠF IFA\nĠcul p\ng d\n30 4\nĠple as\nĠillust rates\nĠColomb ia\nĠhighlight ing\nĠSum mary\nĠexp osing\nĠD ru\nĠir ony\nr itional\nĠCar roll\nĠEll is\nP ict\nĠR apt\nĠad apter\nĠun m\nĠcor pse\nĠceleb rities\nD en\nat um\nĠAp ocalypse\nĠW ag\nlin ing\nĠhorm ones\nR ub\nĠX i\nĠV aults\n20 8\nalky rie\ninos aur\nĠfeed s\nv ity\nĠdefe ating\nW ait\nĠemphas ize\nĠSteel ers\nyr inth\nle ys\nĠWhe never\nCurrent ly\nĠCl ock\nĠcollect ively\nany on\nĠJ P\nĠment ality\nĠdownload s\nĠsurround ings\nĠBarn es\nĠflags hip\nĠindic ators\nĠgra pp\nJan uary\nĠElement al\nĠAthen a\nib al\nĠs ights\nĠcap ita\nĠTreat y\nĠvo iced\nĠG az\nlet te\nĠy a\nĠexp ired\nLeg end\nH ot\nn ature\nĠunst able\nĠ2 80\nÃ º\nCom ment\nAL E\nĠquest s\nĠhand ler\nn is\nĠvers atile\nĠconce al\nenge ance\nĠInter active\nĠobs essed\nĠDog s\nĠcr acked\nS ound\ns v\nĠD ylan\nro ads\nf x\nĠCath olics\nĠH ag\nĠsl ammed\nĠgl owing\ns ale\nĠtiss ues\nĠCh i\nne e\nĠc her\ns ic\nur rection\nĠb acon\nul atory\n) .\"\nĠir regular\nFOR M\nass ed\nĠintention al\nĠcompens ate\nĠSpe aking\nĠS ets\n15 3\nĠconvent ions\nb ands\nem ade\nĠe cc\nĠWin ston\nĠAssass in\nĠBelg ian\nĠdepend ence\nĠnic he\nĠb ark\nĠJ azz\nĠdisadvant age\nĠgas oline\nĠ16 5\nçļ Ħ\ness a\nmod ule\nang ular\nO Y\nĠTreat ment\nit as\nol ation\nĠArn old\nĠfe ud\nĠN est\nĠthe atre\new ater\nĠmin ors\nolic y\nĠH aven\ndiv ision\nĠtr unk\nF ar\nĠP ull\nĠcapt uring\nĠ18 00\nĠTe en\nĠex empl\nĠclin ics\nĠB urg\nĠsubst it\nĠpay load\nĠL av\nĠT roy\nĠW itness\nĠfrag ments\nĠpass words\nĠg ospel\nĠG in\nĠten ants\nol ith\nS ix\nPre vious\nĠAg es\nĠDar win\nĠbl at\nĠem pathy\nsm ith\nb ag\nĠE cho\nĠC amb\nĠM add\nĠB oo\nĠred e\nĠBurn ing\nĠsmooth ly\nĠAd rian\nĠV ampire\nĠMon sters\nste am\nSty le\nM a\nre a\nĠD war\naly st\nurs or\nĠelim ination\nĠcrypt o\nch t\nĠE ternal\nâĢ¦ ]\nĠS orce\nI ll\nN ER\nĠu h\nCon clusion\nw age\nĠresp ir\nĠrem inis\nhet ical\nĠg y\nĠutil ized\nic idal\nĠ19 00\nĠhun ters\nĠSw an\nĠRe act\nĠvis itor\nĠThanks giving\n30 8\nPost s\nĠh ips\n19 97\nom ers\nĠkn ocking\nĠVeh icle\nĠt il\nĠ13 8\nĠm i\nĠInvest igation\nĠKen ya\nĠcas ino\nĠmot ives\nĠreg ain\nre x\nĠweek ends\nĠstab bed\nbor o\nĠexplo ited\nĠHA VE\nĠTe levision\nc ock\nĠprepar ations\nĠende av\nĠRem ote\nĠM aker\nĠPro du\nĠEv an\nĠinform ational\nĠLouis ville\n15 4\nĠDream s\nĠpl ots\nĠRun ner\nĠhur ting\nĠacad emy\nĠMont gomery\nn m\nĠL anc\nĠAl z\n2 10\nel ong\nĠretail er\nĠar ising\nĠrebell ion\nĠbl onde\nplay ed\nĠinstrument al\nC ross\nĠret ention\nĠtherape utic\nĠse as\nĠinfant ry\nĠCl int\nĠprompt ing\nĠbit ch\nĠst ems\nĠK ra\nĠthe sis\nĠB og\nru ed\nĠk ings\nĠcl ay\nific ent\nĠY ES\nĠTh ing\nĠCub s\nvey ard\nels h\nin arily\nĠE y\nĠRoll ing\nĠev olving\nInd ia\nĠrecogn izes\nĠgrad uation\nis ers\nĠfert ility\nĠMil an\nComm and\nĠbox ing\nĠ19 43\nĠgl uten\nĠEm ir\nĠid ol\nĠcon ceived\nĠCre ation\nMer it\nudd y\nuss ions\nĠLie utenant\niet al\nĠunch anged\nĠSc ale\nĠCrime a\nball s\nator ial\nĠdepth s\nĠempir ical\nĠtrans m\nĠuns afe\nmiss ible\ncom fort\n15 6\nĠmechan ic\n00 2\nl ins\nĠsm oked\nP os\nĠslow ing\nĠl av\nTex as\nĠche ating\nĠMet ropolitan\neth yl\nĠdiscover ing\nas se\nĠpen cil\nĠPy ongyang\nĠclos et\nĠShe et\nĠEnt ry\nou stic\nĠmy st\ner ate\nari at\nĠminer als\nĠmusic ian\nĠP ul\nĠM az\n24 9\nĠper missions\nĠ iv\nen ary\nick ers\nĠB ing\nhe a\nen able\nĠgri ev\nĠassert ed\nĠColon el\nĠaff idav\nw o\nĠse ated\nĠR ide\nĠpaint ings\nĠP ix\nĠ13 7\nish i\numb ai\ng otten\nĠEar l\nĠin ning\nĠc ensus\nĠtrave lled\nĠCons ult\n18 5\nb ind\nĠsimpl icity\nĠoverlook ed\nĠHelp ful\nĠmon key\nĠoverwhelming ly\nBl ood\nĠFl int\nĠJ ama\nĠPres ent\nĠR age\nĠT A\npt ive\nĠturn out\nw ald\nĠD olphins\nĠV PN\nĠon ion\nĠcraft ing\nm ma\nĠMerc ury\nĠarr ange\nĠalert s\nĠO T\nzb ollah\nĠg ases\nĠRichards on\ns al\nl ar\nĠfro st\nĠlower ing\nĠacc laim\nĠstart ups\nĠG ain\ness ment\nĠguard ian\näº º\nĠP ie\nĠL inks\nĠmer its\nĠaw ake\nĠparent al\nĠexceed s\nĠid le\nĠPil ot\nĠe Bay\nĠAc cept\nipe g\nC am\nĠK ot\nĠtrad ers\nolit ics\nunk er\nĠP ale\nos i\nan mar\nĠ19 47\nĠF ell\nest ial\nit ating\nG F\nĠS r\nif ted\nĠconnect or\nĠB one\nill es\n2 60\nh ma\nĠoverl ap\nĠGit Hub\nĠclean er\nĠBapt ist\nĠW AS\nĠlung s\nÑ ģ\nĠB UT\nĠc ite\nĠpit ched\nreat ment\nĠtro phies\nĠN u\n38 6\nĠPr ide\nĠattend ees\n[ ]\n17 9\nĠspat ial\nĠpri zes\nĠRel igion\nĠshow case\nĠC ategory\nvid ia\nT arget\nPro perty\n? ,\nĠf usion\np ie\nĠU CLA\nĠsound track\nĠprin cess\nĠC aval\nsh ould\nĠlim bs\nBack ground\nĠlone ly\nĠc ores\nĠT ail\nshe et\nĠ13 2\nR a\nãĤ «\nĠB olt\nĠbook ed\nĠadmin ister\nĠequ als\nw y\nĠobserv ing\nĠBar on\nĠAd obe\nĠv irgin\nĠSocial ist\nM ove\ngh azi\nĠLind a\n2 12\nĠbre wing\nĠmerch ants\nbur se\nĠdiv or\nĠmet als\nĠN er\nĠsum s\nĠEn emy\nĠen vision\nĠgrant ing\nĠH oney\nĠSk yrim\nĠsoc io\ngr aded\nĠselect ive\nW ASHINGTON\nĠ19 48\nĠSir ius\nĠG ross\nact ivity\nĠI van\nĠfur ious\nBS D\nĠPre vious\nĠrespons ive\nĠchar itable\nĠle aning\nĠP ew\nĠviol ates\n\\\\\\\\ \\\\\\\\\nĠCom ing\nw ire\nĠpo et\nĠres olutions\ncomm and\nĠPortug uese\nĠnick name\nĠde af\nFeb ruary\nĠrecogn ise\nĠentire ty\nĠseason al\npl aced\nĠTe legraph\nĠmicro phone\nour ing\nĠgr ains\nĠgovern ed\nĠpost p\nĠW aters\nin ement\nĠund ocumented\nĠCom cast\nĠf ox\nĠassault s\nre on\nman y\nĠJen kins\nĠAny way\nĠassess ments\nĠdown s\nĠM ouse\nĠsuper b\nk t\nĠD ow\nĠtax ation\n4 01\nĠsm iles\nĠundert aken\nĠex h\nĠenthusi astic\nĠtw ent\nĠgovernment al\nĠautonom y\nĠTechn ologies\nĠCh ain\nĠpreval ent\nf b\nĠnic otine\nog ram\nj ob\nĠawa iting\nĠMen u\nĠdep uties\nk ov\nish ops\nBut ton\nĠShan ghai\nĠdies el\nĠD uck\nR yan\nĠPC s\nN F\nj ury\nent e\nĠinacc urate\nedd y\nWh atever\nĠshow c\nĠN ad\nod us\net r\nĠplaint iffs\nĠW OR\nĠAss ange\nĠpriv at\nĠpremium s\nĠt am\nUR L\nĠel ites\nĠR anger\notten ham\nĠH off\nĠAt hens\nĠdefin ite\nĠs ighed\nĠeven ly\n2 11\nĠAm ber\nak ia\nĠmail ing\nĠcr ashing\nĠConfeder ate\nru gged\nW al\nĠDep ths\nĠjuven ile\nĠreact or\nIntrodu ction\nĠDel uxe\n19 95\nĠS anchez\nĠM ead\niv able\n: -\nĠPlan ning\nĠT rap\nqu in\nĠProt ect\nve red\nIn formation\nĠkid ney\ninn amon\nl as\nĠpolic ing\nĠtoler ate\nĠQ i\nĠbi ased\nF ort\nĠK i\ns ave\nĠprivile ged\nĠbe asts\nĠGl as\nĠC inem\nĠcome back\nSund ay\nĠext inction\nh ops\nĠtrans mit\nĠdoub les\nĠFl at\n16 7\nĠdis puted\nĠinjust ice\nf oo\nV ict\nrole um\nĠJul ie\nCon text\nĠR arity\niss ue\nComp onent\nĠcounsel ing\nan ne\nd ark\nĠobject ions\nu ilt\nĠg ast\nĠpl ac\nĠun used\nãĥ ĩ\nĠT rial\nĠJ as\nhed ral\nob b\nĠtempor al\nĠPR O\nĠN W\nĠAnn iversary\nL arge\nĠther m\nĠd avid\nĠsystem ic\nĠSh ir\nm ut\nĠNe pt\nadd ress\nĠscan ning\nĠunderstand able\nĠcan vas\nC at\nĠZ oo\nĠang els\nL O\nĠStat ement\nĠS ig\nov able\nĠA way\nsh aring\nocr ats\nst ated\nĠweigh ing\nN or\nw ild\nB ey\nĠaston ishing\nĠReyn olds\nĠop ener\nĠtrain er\nĠsurg ical\np n\nĠadjust ing\nwhe el\nĠf rown\nerv ative\nĠsusp end\nWith in\nte in\nĠobst acle\nĠliber ties\nym es\nĠur anium\nans om\nan ol\nub a\nĠL oss\nĠa rous\nĠHend erson\nW ow\ns pl\nc ur\nĠÂ Ń\nĠtheir s\nDam age\nĠdownload ing\nĠdisc ern\nĠSt o\nĠFl a\nĠh ath\nĠA j\nĠun pleasant\nEurope an\nexp ensive\nĠscreens hot\nĠU V\nĠall ied\nĠPers ian\nĠmonop oly\nĠat om\nĠReds kins\n\"> <\nĠcan cell\nĠcinem a\n13 1\nf air\nĠAlf red\nĠd uck\narg s\n22 3\nĠIS I\nĠsign aling\nin ar\nĠlaugh s\nĠfor wards\nĠreck less\nĠlisten ers\nat ivity\nĠvast ly\nn ant\nL ess\nĠHun ting\nĠScient ific\nIT ED\nĠkn ight\nĠH TC\nus a\nt mp\nĠr ude\nĠLegend ary\nĠar ises\nB ad\nĠCl aim\npe g\nĠreal ities\nTh ink\nĠÂ °\nĠro de\nĠstri ve\nĠan ecd\nĠshort s\nĠhypot hes\nĠcoord inated\nĠGand hi\nĠF PS\nR ED\nĠsuscept ible\nĠshr ink\nĠCh art\nHel p\nĠ ion\nde ep\nrib es\nĠK ai\nĠCustom er\nSum mary\nĠc ough\nw ife\nĠl end\nĠposition ing\nĠlot tery\nĠC anyon\nĠf ade\nĠbron ze\nĠKenn y\nĠbo asts\nĠEnh anced\nrec ord\nĠemer gence\nĠa kin\nĠB ert\nit ous\nâĸ ĳ\nĠst ip\nĠexch anged\nom ore\nals h\nĠreserv oir\nĠstand point\nW M\nĠiniti ate\nĠdec ay\nĠbrew ery\nĠter ribly\nĠmort al\nlev ard\nĠrev is\nN I\nel o\nĠconf ess\nĠMS NBC\nĠsub missions\nCont roller\nĠ20 2\nĠR uth\n} );\nĠAz ure\nĠ .\"\n20 6\nĠMarket ing\nĠl aund\nien cies\nĠrenown ed\nĠT rou\nĠN GO\nble ms\nĠterr ified\nĠwar ns\nĠper t\nĠuns ure\n4 80\nale z\nult z\nĠOut side\nĠst yl\nĠUnder ground\nĠp anc\nĠd ictionary\nĠf oe\nrim inal\nĠNor wegian\nĠj ailed\nĠm aternal\nÃ© e\nĠLu cy\nc op\nCh o\nĠuns igned\nĠZe lda\nĠIns ider\nĠContin ued\nĠ13 3\nĠNar uto\nĠMajor ity\n16 9\nĠW o\nãĤ ĵ\nĠpast or\nĠinform al\nÐ ½\nan throp\njo in\nãģ Ĺ\nit ational\nN P\nĠWrit ing\nf n\nĠB ever\n19 5\nĠy elling\nĠdr astically\nĠe ject\nĠne ut\nĠth rive\nĠFre qu\nou x\nĠpossess es\nĠSen ators\nĠD ES\nĠSh akespeare\nĠFran co\nĠL B\nuch i\nĠinc arn\nĠfound ers\nF unction\nĠbright ness\nĠB T\nĠwh ale\nĠThe ater\nm ass\nĠD oll\nS omething\nĠecho ed\nĠHe x\nc rit\naf ia\nĠgodd ess\nĠele ven\nĠPre view\nĠAur ora\nĠ4 01\nuls ive\nĠLog an\nin burgh\nĠCent ers\nĠON LY\nĠA id\nĠparad ox\nĠh urd\nĠL C\nD ue\nc ourt\nĠoff ended\nĠeval uating\nĠMatthew s\nĠto mb\nĠpay roll\nĠextra ction\nĠH ands\nif i\nĠsuper natural\nĠCOM M\n] =\ndog s\nĠ5 12\nĠMe eting\nRich ard\nĠMax imum\nĠide als\nTh ings\nm and\nĠReg ardless\nĠhum ili\nb uffer\nL ittle\nĠD ani\nĠN ak\nĠliber ation\nĠA be\nĠO L\nĠstuff ed\nac a\nind a\nraph ic\nĠmos qu\nĠcampaign ing\nĠoccup y\nS qu\nr ina\nĠW el\nĠV S\nĠphys ic\nĠp uls\nr int\noad ed\nET F\nĠArch ives\nĠven ues\nh ner\nĠTur bo\nĠl ust\nĠappeal ed\nque z\nil ib\nĠTim othy\nĠo mn\nd ro\nĠobs ession\nĠSav age\n19 96\nGl obal\nJ es\n2 14\nĠsl iding\nĠdisapp ro\nĠMag ical\nĠvolunt arily\ng b\nane y\nĠprop het\nĠRe in\nĠJul ia\nĠW orth\naur us\nĠb ounds\nie u\n)) )\nĠcro re\nĠCitiz en\nS ky\nĠcolumn ist\nĠseek ers\nond o\nIS A\nĠL ength\nĠnost alg\nĠnew com\nĠdet rim\nent ric\n3 75\nĠG E\nĠaut op\nĠacadem ics\nApp Data\nĠS hen\nĠid iot\nĠTrans it\nĠteasp oon\nW il\nK O\nĠCom edy\n> ,\nĠpop ulated\nW D\nĠp igs\nĠO culus\nĠsymp athetic\nĠmar athon\n19 8\nĠseiz ure\ns ided\nĠd op\nirt ual\nL and\nĠFl oor\nosa urs\n... ]\nĠl os\nĠsubsid iary\nE Y\nĠPart s\nĠSt ef\nĠJud iciary\nĠ13 4\nĠmir rors\nĠk et\nt imes\nĠneuro log\nĠc av\nĠGu est\nĠtum or\nsc ill\nĠLl oyd\nE st\nĠcle arer\nĠstere otypes\nĠd ur\nnot hing\nRed dit\nĠnegoti ated\n---------------- --------\n23 5\nĠfl own\nĠSe oul\nĠRes ident\nĠS CH\nĠdisappear ance\nĠV ince\ng rown\nĠgrab s\nr il\nĠInf inite\nĠTw enty\nĠpedest rian\nĠjer sey\nĠF ur\nĠInf inity\nĠEll iott\nĠment or\nĠmor ally\nĠob ey\nsec ure\niff e\nĠantib iotics\nang led\nĠFre eman\nĠIntrodu ction\nJ un\nĠm arsh\nic ans\nĠEV ENTS\noch ond\nW all\nicult y\nĠmisdem eanor\nĠl y\nTh omas\nĠRes olution\nĠanim ations\nĠD ry\nĠinter course\nĠNew castle\nĠH og\nĠEqu ipment\n17 7\nĠterrit orial\nĠarch ives\n20 3\nFil ter\nĠMun ich\nĠcommand ed\nĠW and\nĠpit ches\nĠCro at\nĠrat ios\nĠM its\nĠaccum ulated\nĠSpecific ally\nĠgentle man\nacer b\nĠp enn\nĠa ka\nĠF uk\nĠinterven e\nĠRef uge\nĠAlz heimer\nĠsuccess ion\noh an\nd oes\nL ord\nĠsepar at\nĠcorrespond ence\nĠsh iny\nP rior\nĠs ulf\nĠmiser able\nĠded ication\n( ).\nĠspecial ists\nĠdefect s\nĠC ult\nĠX ia\nĠje opard\nĠO re\nAb ility\nĠle ar\nĠamb itions\nĠB MI\nĠArab s\nĠ19 42\nĠpres ervation\nific ate\nĠash amed\nl oss\nĠRest aur\nĠrese mble\nĠen rich\nĠK N\nĠCl an\nfl oat\nĠplay able\nIT T\nĠharm ony\narr ison\nĠWe instein\nw ere\nĠpoison ing\nĠCom put\nĠWord Press\nm ajor\nĠVal ve\nF an\nĠTh row\nĠRom ans\nĠDep ression\nad os\nĠtort ured\nĠbal ancing\nbott om\nĠacqu iring\nĠMon te\nard i\nĠa ura\nĠ# #\nĠStand ing\nĠAtl as\nC F\nĠintr ins\nĠBen ghazi\nĠcamp ing\nĠt apped\nbl ade\nst rous\nĠR abb\nĠW ritten\nt ip\nĠNe igh\nster dam\nĠAll ow\nĠHe aling\nĠR hod\nn um\nĠcaffe ine\nĠPer cent\nĠbo o\nĠapp les\n30 5\nĠwel coming\nĠappl aud\nĠa usterity\nÂ ±\nĠRe ality\nef e\nå ®\nĠsu cks\nĠtab s\nĠPay Pal\nĠback pack\nĠgif ted\nabul ary\nĠSc out\nir teen\nĠch in\nĠo mitted\nĠnegative ly\nĠaccess ing\nĠE arn\nĠambul ance\nĠhead phones\nĠ20 5\nĠRef resh\np resident\nĠKit chen\nĠEnt ered\nĠS nyder\n00 5\nom ical\nĠborrow ed\nĠN em\nĠav iation\nĠst all\nrim ination\nĠuniform s\nit ime\nĠSim mons\nener gy\nab lished\ny y\nqual ified\nĠrall ies\nĠSt uart\nfl ight\nĠgang s\nr ag\nĠv ault\nlu x\nĠCom par\nĠdesign ation\n20 9\nĠJ os\nd ollar\nz ero\nĠwell s\n30 3\nĠconstitu ents\nĠhe ck\nĠc ows\nĠcommand ers\nĠdifferent ial\nĠC atherine\n29 9\nĠval ve\nĠbr ace\nĠperspect ives\nc ert\nf act\nicular ly\nĠMc N\npl anes\nĠint ric\nĠpe as\nov an\nĠtoss ed\nret ch\nĠL opez\nĠunf amiliar\nde ath\nĠA part\nĠCh ang\nĠrelie ved\nrop he\nĠair ports\nĠfre ak\nut il\nM ill\nĠCh in\nĠOw en\nm ale\nĠBro ken\nĠWind s\nro b\nr ising\nĠfire fighters\nĠauthor itarian\nĠ14 8\nBit coin\nex ternal\nĠbrow sers\niche ver\nor ian\nĠun b\nĠpo ke\nĠZ ot\nM id\nĠPop ular\nĠco vert\nĠcont ributes\nĠ6 50\nĠcont ention\nG ate\nĠcons oles\nĠchrom os\nĠI X\nĠvis ually\nĠE isen\nĠjewel ry\nĠdeleg ation\nĠacceler ate\nĠR iley\nĠsl ope\nĠind oor\nit ially\nĠhuge ly\nĠtun nels\nĠfin ed\nĠdirect ive\nĠfore head\nustom ed\nĠsk ate\nMus ic\ng as\nĠrecogn izing\nam bo\nĠover weight\nĠGr ade\nÙ Ĭ\nĠsound ing\nĠlock ing\nĠR EM\nSt ore\nĠexc av\nĠLike wise\nĠL ights\nĠel bow\nĠSupp ly\nw ic\nĠhands ome\n19 94\nC oll\nĠadequ ately\nĠAssoci ate\nĠstri ps\nĠcrack down\nĠmar vel\nĠK un\nĠpass ages\n@@ @@\nĠT all\nĠthought ful\nnames e\nĠprost itution\nbus iness\nĠball istic\nperson al\nc ig\niz ational\nR ound\nĠÂłĠÂł ĠÂłĠÂł\nĠCole man\nĠadm itting\nĠPl ug\nĠbit coins\nĠSu z\nĠfair ness\nĠsupp lier\nĠcatast rophic\nĠHel en\no qu\nM arc\nĠArt icles\ng ie\nĠend angered\nĠdest iny\nĠVol t\nol ia\nax is\nĠche at\nĠun ified\nIC O\nqu ote\n30 2\nĠS ed\nĠsupp ression\nĠanaly zing\nĠsqu at\nĠfig uring\nĠcoordin ates\nĠch unks\nĠ19 46\nĠsub p\nĠw iki\nĠFor bes\nĠJ upiter\nĠE rik\nim er\nĠCom mercial\n\\ )\nĠlegitim acy\nĠd ental\nĠMe an\nĠdefic its\n5 50\nOrig inally\nĠHor ror\nĠcontam ination\nll ah\nĠconf isc\nĠCl are\nT B\nĠF ailed\nan ed\nĠrul er\nĠCont roller\nĠfemin ists\nF ix\ng ay\n20 7\nĠr abbit\nTh ird\nownt own\nĠgl ue\nĠvol atile\nĠsh ining\nĠf oll\nĠimp aired\nĠsup ers\næ Ī\nĠcl utch\nļé ĨĴ\nĠpro let\nĠ( !\nĠy elled\nĠK iev\nĠEr n\nĠSh ock\nK B\nĠsit uated\nqu ery\nĠN as\nĠan nex\nchar acter\nĠHol iday\nĠautom ation\nĠJ ill\nĠRem astered\nĠl inem\nĠwild erness\nĠHor izon\nĠGu inea\nA Z\nĠmain land\nĠsec recy\nLE ASE\nĠp unk\nĠProv ince\n( ),\nSpe ed\nĠhand ing\nĠSeb ast\nS ir\nr ase\nĠj ournals\nĠcon gest\nĠT ut\nir rel\nĠschizophren ia\nĠmis ogyn\nhealth y\nI ron\nĠreact ed\n- $\n25 2\nĠpl ural\nĠpl um\nĠbarg ain\nĠground ed\nf inder\nĠdis se\nĠL az\nO OD\nĠat roc\nF actory\nĠmin ions\nĠo ri\nĠB rave\nĠP RE\nĠMy anmar\nĠH od\nĠexped ition\nĠexpl ode\nĠCo ord\nĠext r\nĠB rief\nĠAD HD\nĠhard core\nfeed ing\nĠd ile\nĠF ruit\nĠvacc ination\nĠM ao\nosp here\nĠcont ests\n- |\nĠf ren\nisp here\nR om\nĠSh arp\nĠTre nd\nĠdis connect\nâĢ¢ âĢ¢\nĠper secution\nEar th\nĠhealth ier\n38 4\nĠc ob\nĠTr inity\nOW S\nAN N\nĠspecial ty\nĠg ru\nĠcooper ative\nwh y\nStart ing\nĠIss ues\nst re\nens or\nĠ18 5\nAd v\n! ?\nĠRe vel\nem ia\nĠH ulk\nĠcelebr ations\nĠS ou\nra ud\nĠKle in\nĠun real\ncon text\nĠpartners hips\nĠadop ting\nt ical\nĠspl ash\nĠHe zbollah\nc ategory\ncycl op\nxt on\nĠD ot\nurd y\nt z\nĠenvelop e\nĠN L\nâ ķ\nĠwhere in\nSpe c\n18 4\nĠte lev\nal iation\nĠmyth s\nå °\nĠrig orous\nĠcommun icating\nĠobser ver\nĠre he\nĠW ash\nĠapolog ized\nĠT in\nĠexpend itures\nwork ers\nd ocument\nĠhes itate\nĠLen in\nĠunpredict able\nĠrenew al\ncl er\nok ia\nĠCON T\nĠpost season\nTok ens\nĠex acerb\nĠbet ting\nĠ14 7\nĠelev ation\nW ood\nĠSol omon\n19 4\n00 4\nout put\nĠredu nd\nĠM umbai\nĠp H\nĠreprodu ce\nĠD uration\nMA X\nĠb og\nC BS\nĠBal ance\nĠS gt\nĠRec ent\nĠc d\nĠpo pped\nĠincomp et\npro p\nay an\ng uy\nPac ific\nĠty r\nĠ{ {\nĠMy stic\nĠD ana\nĠmast urb\nĠge ometry\nÃ ¢\nĠCor rect\nĠtraject ory\nĠdistract ed\nĠf oo\nĠW elsh\nL uc\nm ith\nĠrug by\nĠrespir atory\nĠtri angle\nĠ2 15\nĠunder graduate\nĠSuper ior\nch anging\n_ -\nĠright ly\nĠrefere e\nĠluc rative\nĠun authorized\nĠresemb les\nĠGN U\nĠDer by\nĠpath ways\nĠL ed\nĠend urance\nĠst int\nĠcollect or\nF ast\nĠd ots\nĠnational s\nĠSec urities\nĠwh ip\nPar am\nĠlearn s\nM agic\nĠdetail ing\nm oon\nĠbroadcast ing\nĠb aked\n26 5\nhol m\nĠS ah\nĠHus sein\nĠCourt esy\n17 4\nĠ14 6\nĠge ographic\npe ace\nĠjud ging\nĠS tern\nB ur\nĠstory line\nG un\nĠSt ick\n24 5\n30 7\nãĤ´ ãĥ³\nĠAdminist rator\nĠbur nt\nĠp ave\nch oes\nEx ec\nĠcamp uses\nRes ult\nĠmut ations\nĠCh arter\nĠcapt ures\nĠcomp ares\nĠbad ge\nS cient\nĠer ad\nier y\no i\nett es\nĠE state\nĠst rap\nĠproud ly\nĠf ried\nĠwithd rawn\nĠV oy\nph ony\nIt ems\nĠP ierce\nb ard\nĠann otation\nant on\nill on\nIm pro\n... )\nĠhapp ier\n---- --\nad just\nĠstaff ers\nĠactiv ism\nĠper f\nĠal right\nN eed\nĠcomm ence\nĠopio id\nĠAm anda\nE s\nĠP ars\nĠK aw\nW orks\n24 8\nĠind o\nt c\nend ant\nĠM oto\nĠlegal ization\nOT E\nĠtask ed\nĠt sp\nĠACT IONS\n16 6\nĠrefres hing\nĠN R\nĠPere z\nĠinfring ement\nS Y\nList en\nin ning\nk u\nĠrot ate\npro gram\nar ah\nDes ign\nĠ( Â£\nĠst oring\nĠwar rants\nĠjud gement\nĠB rist\nus ually\nph oto\nĠR an\nĠP ine\nĠoutrage ous\nĠValent ine\nlu ence\nĠEvery body\nAl tern\nĠrele vance\nĠtermin ated\nĠd essert\nĠfulf illed\nĠprosecut ed\nĠW ords\nĠm igrant\nĠcultiv ation\nÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ ÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ\nidel ity\nĠV ern\nĠLog in\nĠmetaph or\nĠT ip\nĠrecru its\nĠP ig\nrib ing\nĠenthusi asts\nex per\nĠfright ening\nĠH air\nans on\nstr ate\nĠh i\nHe ight\nĠown ing\nn one\nĠdis like\nĠkn ives\npher d\nĠloud ly\nĠAP Is\nDis play\nĠL ac\nĠUS S\nab l\nver ages\nJ ew\nĠ17 2\nĠHist orical\nat oon\nĠPhys ics\nin tern\nĠwarm th\nĠto pp\nD M\nĠgun man\nĠem peror\nod i\nãĥ £\nin atory\nĠR ib\nĠ13 1\nĠSat urn\nĠSh ining\nĠw aking\nQu otes\nĠcomed ian\nen berg\nÂ ½\nĠbelie vers\nĠpaper work\nc ustom\nĠle v\nĠl ament\nĠpour ing\n22 2\np olitical\nĠSupp lement\nm aid\nĠcruel ty\nĠt read\nys ics\nA w\nrit es\nĠmod ifier\nĠP osition\nAd am\nl b\nub s\nĠimper fect\nĠcl usters\nĠEngine er\nĠC herry\nĠinaug uration\nĠS au\nĠembod iment\nĠUn cle\nĠover r\nĠexplos ions\nc ule\nĠPrinc eton\nĠAndre a\nĠincorrect ly\nĠearn est\nĠpil gr\nĠS print\nĠslee ve\nĠhe ars\nĠAm azing\nĠbrow sing\nag in\nĠhom eland\nĠha w\nĠd iving\nist ered\n17 8\nĠbarg aining\nĠArc ade\nĠdeleg ate\nters on\n................................ ................................\nĠJackson ville\n27 5\nĠst agn\nĠad am\nĠSher man\nC B\nĠsub urb\nĠFood s\nĠconver ting\nĠAr ist\nĠch ambers\nl ove\nĠam ino\nĠG an\nĠmad ness\nm c\nĠUS E\ndef ined\nĠul tr\nind ust\nĠw olves\nl ance\nAdd itionally\nĠcr acks\nas ia\nĠRe ason\nĠP ump\nĠaccident al\nĠL aser\nĠR id\nĠinitial ized\nell i\nĠun named\nĠn oun\nĠPass ed\nĠhost age\nĠEth iop\nsh irts\nĠun rel\nĠEmb assy\nĠ19 41\nĠat oms\nĠpur ported\n16 4\nĠF i\nĠgall ons\nĠMon ica\nĠp g\nen ment\nĠsort ed\nĠG ospel\nĠhe ights\nĠtr aced\nĠunder going\nShe ll\nĠs acks\nĠproport ions\nĠhall uc\nF ont\nac et\nĠwar mer\nĠIN TER\nĠgrab bing\nPl ug\nĠreal ization\nĠBur ke\nĠen chant\nAT ER\nĠSe ed\nĠabund ant\nF M\nĠc ivic\nV s\nis i\nĠv ow\nĠre per\nĠPartners hip\nĠpenet ration\nĠax e\nĠsh attered\nĠZ ombies\nĠv inyl\nĠAl ert\ne on\nĠoblig ed\nĠIll ust\nĠPl aza\nĠFront ier\nĠdavid jl\nĠSer ial\nĠH av\nĠNut rition\nB i\nĠâĸ Ī\nĠJ ays\nlin ux\nĠhur ry\nĠv oy\nĠhop eless\nĠSte alth\nĠ ãģ\ness ors\ntt le\nb org\nĠSaf ari\nf ell\nĠw ary\nd ue\nĠAb ove\nH a\nE LL\nĠnot or\nĠW on\nT oo\nĠoccup ations\nĠposs essions\nĠinv iting\nĠpred ators\nĠacceler ated\nĠ15 7\nuter te\nĠC ube\ne ast\nacc ount\nG ive\nĠtrans plant\nred ients\nid able\nĠscreens hots\nĠG und\nĠF S\nĠtravel ers\nĠsens ory\nĠF iat\nĠRock ets\nİ ĭ\n_ {\nF riend\nĠchar ming\nAL S\nĠenjoy ment\nm ph\nĠ5 000\nĠRE G\nÙ Ĩ\nb ia\nĠcomp ilation\nro st\nĠV P\nĠSch ne\n201 9\nĠcop ying\nM ORE\nĠFl ore\nf alls\n2 15\nt otal\nĠdis ciples\nd ouble\nĠexceed ing\nĠsm ashed\nĠconcept ual\nĠRom ania\nĠB rent\nĠI CE\nĠT ou\nĠg rap\nĠn ails\n18 9\nãĥ ĺ\nĠproc ure\ne ur\nĠconfir ming\nĠC ec\naw i\nĠEd en\nĠn g\nĠengine ered\nat ics\nĠhook ed\nĠdisgust ing\nĠMur der\nãĤ ¿\nL ibrary\nĠ16 8\nAl most\nhem atic\nMen u\nĠNot re\nĠJ ur\nĠkidn apped\nĠhack er\nĠJ ade\nĠcreep y\nĠdraw ings\nĠSpons or\nĠcycl ists\nĠGob lin\nĠoptim ized\nĠst aged\nĠMc D\nbet ween\nA ge\nen o\nS ex\nĠW ide\nn ings\nav is\nĠincap able\nĠK ob\nĠreward ing\nĠL one\noles cent\nĠcontract ed\nĠstick y\nJ ose\nB all\nf est\nĠIn put\nĠRec ently\nĠto mat\nsqu are\nApp lication\nĠnit rogen\nĠdupl icate\nĠRec on\nĠD ear\nL ondon\nĠint ra\nĠd ock\nĠout reach\nĠM illion\nĠmamm als\nam pton\nV AL\nĠsn aps\nĠd os\nĠWh ole\nĠRead y\nT ry\nĠWinn ipeg\near ance\nĠinc urred\nren ched\nĠNS W\nil ot\nrain e\nĠc ube\ng ot\nĠrun way\netermin ed\nĠHaw ks\nĠsurviv or\nĠW ish\nĠD in\nĠDE F\nĠV ault\n18 7\nĠmush rooms\nĠcris p\nbe y\nĠDisco very\nĠdevelopment al\nĠparad igm\nĠcha otic\nĠT su\nĠ3 33\nb ons\nĠbacter ial\nĠcomm its\nĠcos mic\nĠme ga\noc ative\nĠP aint\nophob ic\nĠv ain\nĠcar ved\nĠTh ief\nĠG ul\nows hip\nĠc ites\nĠEd inburgh\nĠdimin ished\nĠacknowled ges\nĠK ills\nĠmic row\nĠHer a\nĠsen iors\nĠwhere by\nH op\nat ron\nĠun available\nĠN ate\nĠ4 80\nĠsl ated\nĠRe becca\nĠB attery\nĠgram mar\nĠhead set\nĠcurs or\nĠex cluding\nany e\naunder ing\neb in\nĠfeas ible\nĠPub lishing\nĠLab s\nĠCl iff\nĠFerr ari\nĠp ac\nvis ible\nmark ed\npe ll\nĠpol ite\nĠstagger ing\nĠGal actic\nĠsuper st\nĠpar an\nĠOffic ers\nãĢ ģ\nĠspecific s\nul us\n23 9\nĠP aste\nAM P\nĠPan ama\nĠDe lete\nangu ard\nrest rial\nĠhero ic\nĠD y\nØ§ ÙĦ\nĠincumb ent\nĠcr unch\nt ro\nĠsc oop\nĠblog ger\nĠsell ers\nure n\nĠmedic ines\nĠC aps\nĠAnim ation\nox y\nĠout ward\nĠinqu iries\n22 9\nĠpsych ologist\nĠS ask\nev il\nĠcontam inated\nãĤ ¨\nhe rence\nĠbrand ed\nĠAbd ul\nz h\nĠparagraph s\nĠmin s\nĠcor related\ner b\nĠimp art\nĠmil estone\nĠSol utions\not le\nĠunder cover\nĠmar ched\nĠCharg ers\nf ax\nĠSec rets\nĠr uth\nwe ather\nĠfemin ine\nĠsh am\nĠprest igious\nigg ins\nĠs ung\nhist ory\nett le\ngg ie\nĠout dated\nol and\nĠper ceptions\nĠS ession\nĠDod gers\nu j\nĠE ND\nD oc\nĠdefic iency\nGr and\nĠJ oker\nĠretro spect\nĠdiagn ostic\nĠharm less\nĠro gue\nĠA val\nE qu\nĠtrans c\nĠRoberts on\nĠDep ending\nĠBurn s\niv o\nĠhost ility\nF eatures\nĵ ĺ\nĠdis comfort\nĠL CD\nspec ified\nĠEx pect\n3 40\nĠimper ative\nĠReg ular\nCh inese\nĠstate wide\nĠsy mm\nĠlo ops\nĠaut umn\nN ick\nĠsh aping\nĠqu ot\nĠc herry\nĠCross ref\nè¦ ļéĨĴ\nStand ard\nhe ed\nĠD ell\nĠViet namese\nĠo st\nĠV alkyrie\nO A\nAss ad\nĠreb ound\nĠTra ffic\npl aces\næ ĺ\nĠB uc\n17 2\nĠshel ters\nĠins isting\nĠCertain ly\nĠKenn eth\nĠT CP\nĠpen al\nĠRe play\nhe ard\nĠdial ect\niz a\nĠF Y\nit cher\nĠD L\nĠspir al\nĠquarterback s\nĠh ull\nĠgo ogle\nĠto dd\nĠSter ling\nĠPl ate\nĠsp ying\nmb ol\nĠReal m\nĠPro ced\nĠCr ash\nĠtermin ate\nĠprotest ing\nC enter\ngu ided\nĠun cover\nĠboy cott\nĠreal izes\ns ound\nĠpret ending\nĠV as\n19 80\nĠfram ed\nĠ13 9\nĠdesc ended\nĠrehab ilitation\nĠborrow ing\nĠB uch\nĠbl ur\nR on\nĠFro zen\nen za\nCh ief\nĠP oor\nĠtransl ates\nM IN\nĠ2 12\nJ ECT\nĠerupt ed\nĠsuccess es\nS EC\nĠpl ague\nĠg ems\nd oms\nĠstret ches\nĠSp y\nĠstory telling\nC redit\nĠP ush\nĠtra ction\nĠin effective\nĠL una\nĠt apes\nĠanaly tics\nerc ise\nĠprogram mes\nĠCar bon\nĠbeh old\nhe avy\nĠConserv ation\nĠF IR\nĠs ack\nter min\nric ks\nĠhous ed\nĠunus ually\nI ce\nĠexecut ing\nĠMor oc\ned ay\nĠed itions\nĠsm arter\nĠB A\nĠout law\nĠvan ished\nib a\nAL SE\nĠSil va\n23 8\nC ould\nĠphilos opher\nĠevac uated\nSec ret\n14 2\nĠvis as\nãĤ ¬\nĠM alt\nĠClear ly\nĠN iger\nĠC airo\nĠF ist\n3 80\nĠX ML\naut o\nit ant\nĠrein forced\nRec ord\nĠSurviv or\nG Hz\nĠscrew s\nparent s\nĠo ceans\nma res\nĠbra kes\nvas ive\nĠhell o\nĠS IM\nrim p\nĠo re\nĠArm our\n24 7\nĠterr ific\nĠt ones\n14 1\nĠMin utes\nEp isode\nĠcur ves\nĠinflamm atory\nĠbat ting\nĠBeaut iful\nL ay\nĠunp op\nv able\nĠr iots\nĠTact ics\nb augh\nĠC ock\nĠorg asm\nĠS as\nĠconstruct or\net z\nG ov\nĠant agon\nĠthe at\nĠde eds\nha o\nc uts\nĠMc Cl\nĠu m\nĠScient ists\nĠgrass roots\nys sey\n\"] =>\nĠsurf aced\nĠsh ades\nĠneighb ours\nĠad vertis\noy a\nĠmer ged\nUp on\nĠg ad\nĠanticip ate\nAny way\nĠsl ogan\nĠdis respect\nI ran\nĠT B\nact ed\nĠsubp oen\nmedi ately\nOO OO\nĠwa iver\nĠvulner abilities\nott esville\nĠHuff ington\nJ osh\nĠD H\nM onday\nĠEll en\nK now\nx on\nit ems\n22 8\nĠf ills\nĠN ike\nĠcum ulative\nand als\nI r\nĠ ì\nĠfr iction\nig ator\nĠsc ans\nĠVi enna\nld om\nĠperform ers\nP rim\nĠb idding\nM ur\nĠlean ed\nĠPri x\nal ks\nĠ[ âĢ¦]\nĠTw itch\nĠDevelop er\nĠG ir\nĠcall back\nAb stract\nĠacc ustomed\nĠfreed oms\nĠP G\nur acy\nĠl ump\nis man\n,, ,,\n19 92\nĠR ED\nĠwor m\nM atch\nĠPl atinum\nI J\nĠOwn er\nTri via\ncom pl\nĠnew born\nĠfant as\nO wn\nĠ19 59\nĠsymp ath\nĠub iqu\nĠoutput s\nĠal lev\nĠpr ag\nK evin\nĠfav ors\nĠbur ial\nĠn urt\nso lete\nc ache\nĠ15 6\nĠunl ocks\nte chn\nM aking\nĠcon quer\nad ic\næ ĸ\nĠel f\nĠelect orate\nĠKurd s\nĠSt ack\nĠSam urai\nĠâ ĺħ\nĠ{ }\nĠS aid\nĠFall out\nĠkind ness\nĠCustom s\nĠBou levard\nĠhelicop ters\not ics\nĠVe get\ncom ment\nĠcritic ised\nĠpol ished\nĠRem ix\nĠC ultural\nĠrec ons\nĠdo i\nat em\nSc reen\nĠbar red\nCom ments\nĠGener ally\nĠsl ap\n7 20\nV ari\np ine\nĠem pt\nĠh ats\nĠPlay ing\nl ab\na verage\nform s\nĠC otton\nĠcan s\nĠD ON\nĠSom alia\nC rypt\nĠIncre ases\nE ver\nmod ern\nĠsur geon\n3 000\nĠrandom ized\n================================ ================================\nB ern\nim pl\nĠC OR\nĠpro claim\nth ouse\nĠto es\nĠam ple\nĠpres erving\nĠdis bel\ngr and\nB esides\nĠsil k\nĠPat tern\nh m\nĠenter prises\nĠaffidav it\nĠAdvis ory\nĠadvert ised\nĠRel igious\nse ctions\npsy ch\nĠField s\naw ays\nĠhasht ag\nĠNight mare\nĠv ampire\nĠfore nsic\nrosso ver\nn ar\nĠn avy\nĠvac ant\nĠD uel\nĠhall way\nĠface book\nident ally\nĠN RA\nĠm att\nĠhur ricane\nĠKir by\nĠP uzzle\nĠsk irt\nou st\ndu llah\nĠanal ogy\nin ion\nĠtomat oes\nĠN V\nĠPe ak\nĠMe yer\nĠappoint ments\nĠm asc\nĠal ley\nre hend\nĠchar ities\nĠund o\nĠdest inations\nĠTest ing\n\"> </\nĠdest ined\nĠimp lements\nĠHar old\nRE CT\nĠoptim ization\nĠkilomet res\nĠc md\nĠimpair ment\nĠun successful\nĠswift ly\nĠGlas gow\nart en\nĠSh ares\nĠAn swer\nĠAl bum\nĠnut ritional\nãĥ ĸ\nĠF ut\nĠbl oc\nĠN FC\nĠwholes ale\nĠC W\nĠneg lected\nĠlaun cher\nĠannounce ments\nOU LD\ncom b\nĠrot ating\nĠrest s\nĠT icket\nched el\nL ou\nĠV ic\nĠ\" '\nĠtem plates\nĠrepl aces\nAr c\n:: ::\nĠGil bert\nĠillness es\nĠsched ules\nĠheter osexual\nL INE\nĠhere in\nĠco erc\nĠdecre asing\nĠde portation\ns udo\nĠInd igenous\nĠweigh s\nAl ong\n' );\nĠBeng als\n70 7\nĠjoint s\nver ts\nĠ14 9\nna ire\nĠsimpl est\nĠl ore\n10 80\nf iction\nĠDat abase\nĠreserv ation\nĠs ou\nĠsan ctuary\naud io\nap le\nĠveget arian\nĠanticip ation\nm icro\nĠend uring\nĠdepart ed\nĠsidew alk\nĠprohib its\nĠF ont\nĠcomp ute\nĠS ect\nĠ15 8\nB attle\nĠbom ber\nĠdist raction\nĠend ured\nĠpractition ers\nĠdistur bed\nĠdr ank\nord ered\nĠsurpr ises\nse at\nSec urity\nĠW isdom\nog o\nĠsub paragraph\nĠPen insula\nĠOrig ins\nire n\nĠP av\nigg le\nĠgrat itude\nĠG ravity\nover ty\nim an\nct r\nĠCa esar\nc ould\ng em\nĠsk ies\nĠch amp\nĠagree ing\nF amily\nD iv\n17 6\nĠmess y\num ption\nF ederal\nern o\nĠCh at\nBey ond\nĠdev ote\nĠW alsh\nĠdump ed\nĠaccum ulation\nst ad\nhib ition\nĠsm okers\nĠinspect or\nF rench\niss an\nĠV ita\nĠresearch ing\nR AM\nĠCelt ics\nĠcl oak\nĠTer ra\nM ary\nso ld\nĠD OM\nmod s\nInt el\nĠmult itude\nĠImpro ved\nĠrel iance\nĠartif act\nĠalarm ing\nP rom\nh on\nT ION\nmed ium\nĠref lex\nĠEx cel\nĠweaken ed\n16 3\n2 24\nĠcost umes\nĠunique ly\nĠs orrow\nĠm ansion\nw p\nĠsal v\nĠGro ve\nbs p\nĠSn iper\nĠSh ipping\nĠP OW\nĠund is\nĠbrand ing\nG irl\nĠAh mad\nĠL akes\nĠCore y\nĠinherit ance\nener y\nĠpack ing\nĠP rest\nD est\nF W\nĠregul ator\nl ocked\nĠcont ested\nĠMel issa\nĠD uc\nĠunpop ular\nĠst acked\nĠ19 17\nĠyear ly\nĠst are\nĠassess ing\nÃ ¸\nĠbe verages\nĠcompet itions\nĠstreng thening\nal ong\nĠL ud\nĠmel ted\nstan bul\nĠb ounty\nEN C\nĠL ands\nĠdecl ares\nĠcustom ize\nĠcomp osite\nãĥ ¬\nC M\nograph ics\nĠTem p\nĠcont ender\nĠins ign\nĠL AN\nĠdis asters\nins pired\nĠjud gments\nustain able\nurs ion\nĠvar iance\nĠUlt imately\nĠ --------\nu ador\nĠR X\nĠmel ting\nĠExt ended\nĠT we\nM ajor\nĠB il\nĠsy rup\nqu ick\nĠHold er\nĠinnoc ence\nU LE\nĠM ight\n99 99\nĠf al\nĠcontinu ity\nĠ19 53\nĠB S\nst ill\nL at\nĠAb use\nĠun supported\nxxxx xxxx\nĠinst itute\nĠfrag ment\nĠP ep\nW estern\nĠC ause\nĠFr ag\nĠAr s\nà ¥\nast ics\nĠb ishop\nĠcross es\nĠ15 4\nĠUp grade\nĠmit igate\nĠRay mond\nMod s\nĠtom ato\nĠst umbled\nĠdiff ers\nIn itial\nĠR aspberry\nĠign ores\nĠt ant\nÃ ł\nĠrel ay\nĠb isexual\nĠconf ession\nĠd ement\nin as\nĠHe ather\npl atform\ndri ving\nbour g\nĠM ush\nĠhy ster\nDet ails\nĠdr ift\nĠW ald\nĠLuck ily\nor f\nĠexp ire\nĠP unch\nzy me\ng old\nĠunp aid\nĠT rent\nĠun armed\nĠill icit\nĠT ottenham\nĠsm ash\nIntern ational\nink er\nĠst ing\nĠSadd am\nĠAR T\nĠtruth s\nb irth\nĠso ber\nĠN it\nĠ ib\nĠus able\nĠst acks\nĠSy lv\nĠnort heast\nĠdom ination\nĠM our\nEN SE\nĠMe asure\nĠprogram mer\nĠ< -\n18 2\nĠCond ition\nĠback yard\nir ling\nĠJ eb\nĠCre ed\nĠH ang\nĠCOM P\nF ER\nĠIs h\nĠdetect ives\n------------ ---\nĠMess enger\nĠlo oph\nĠgate way\n15 1\nĠMaterial s\nĠD T\nĠdo omed\nod o\nĠslic es\nĠemail ed\nĠPer l\nĠren ov\nUT H\nody nam\nĠSouth west\nget ic\nĠT PP\nĠoptim ism\nĠT ow\nul ators\nprot ected\ny les\nÂ «\nĠex ile\nen v\nP rop\nĠZimmer man\nÙ İ\nC a\nom aly\nãĥ Ĩ\nĠrail road\nL ee\n23 2\nĠrepl icate\nĠcomfort ably\nact ly\nĠr av\nĠtelesc ope\nĠhonest y\nĠPe pper\nĠBr ing\nĠric hest\nĠout doors\nĠh alls\nĠcont end\nIS E\nĠsub mitting\nĠna ive\nar ations\nĠ14 3\nĠpo ised\nrespons ible\nĠsoc ks\nĠSk ull\nQuest ion\nĠdiscover ies\nJo ined\nĠEn emies\nĠWire less\nĠRe venge\nĠpuzz les\nĠce ased\n29 0\ncript ions\nĠCon sole\nĠbo iling\nĠdisc rep\nĠded uction\nĠar senal\nXX XX\nĠAm sterdam\nrox imately\nĠSh ane\nĠpos ing\nĠACL U\nĠCompan ies\nĠthe ology\nĠU g\nqu arter\nĠH ank\nCo in\nĠL v\nĠalleg ation\nĠAv oid\nĠindef initely\nĠcommod ities\nĠbr ig\nĠMan it\nĠt enth\nmet hod\nĠKn icks\nĠâĢ İ\nĠinv oked\nD ial\nAR A\nĠc aucus\n22 7\nĠJ ab\nĠoun ces\nb ay\nĠbud dy\nf an\n23 4\nĠH il\nad h\nĠT Y\nĠIN D\nĠ19 39\nĠiter ation\nĠGonz alez\nĠV ert\nĠI O\nem b\nre ra\nen ch\nĠRequ irements\nĠW ins\nĠlivest ock\nh ours\n\" âĢ¦\nb ral\nM arg\nĠD one\nĠwas ting\ning ed\ng roups\nĠw ishing\nĠT umblr\nĠt apping\nĠnational ism\nĠB yr\nĠsqu ares\nĠAct ions\nãĥ ¥\nIn side\ndeb ug\nĠapp end\nĠstub born\nĠC ind\nT ell\nĠt earing\nĠRe y\nor c\nĠDay ton\nĠN H\nĠMad ness\nCh arl\nĠMor rison\nfil ter\nĠacc use\nĠ. /\nĠtor rent\nĠdecl ines\ng allery\nM ine\nĠneg otiation\nĠBash ar\nop ia\n19 93\nem ort\nĠNo vel\nĠF ang\ners ive\nĠInst ant\nĠroll er\nA round\nĠElect ions\nG ames\nĠin expensive\nĠwor s\nĠv ul\nĠH ole\nĠunbeliev able\nĠn ause\nĠent r\nbo at\nĠST E\nĠbus h\nĠHass an\nĠw o\nĠpa used\nĠM ig\nl ived\nĠsc out\nĠl ith\nPub lished\ndu ino\nc ool\nĠcirc ulating\nid as\nĠP am\nviol ent\nĠCraw ford\nudd le\nĠLet ters\nGu ard\nmor ph\nĠwand ering\nĠsoph omore\nĠque er\nĠBl ind\nr ue\nĠMar riage\nD om\nĠpadd ing\nĠfold ers\nĠmeaning less\nĠcandid acy\naf ort\nĠwhistle bl\nĠIdent ified\nĠcig ar\nĠh id\nĠDub ai\nĠpost ure\nĠh iking\nĠTermin al\nLegend ary\nĠT P\nĠAT K\nĠStar bucks\nĠR iot\n19 91\nĠBott om\ne ffic\nĠEug ene\nĠWy oming\nĠRock y\nĠsal mon\nĠmet ro\nĠb ilateral\nĠcelebr ates\nL ength\nb illion\nB at\nĠre leg\nĠpse udo\nD T\nĠRh ode\nP arent\nple tion\nĠatt ribut\nĠtun ing\nĠNOT E\nĠRe bel\nic us\nF und\nĠcock tail\nĠ5 01\nĠsp oon\nĠbrut ality\nĠun ite\nĠmicro bi\nĠRe ich\npos itive\nĠam azed\nĠN T\nD esc\nECT ION\nĠfalse ly\nĠHigh lander\nĠC rist\nĠVictor ian\nĠdistribut ions\nthe ir\nĠE instein\nĠp od\nĠepid em\nĠhe ap\nĠR anch\nĠan them\nĠre app\nĠAub urn\nĠconc urrent\nĠThrough out\nĠP OST\nâ ĺ\nĠhom emade\nk ick\nB eg\nĠch assis\nc ounter\nĠmer ger\nĠl aps\n2 17\nun ion\nĠTr igger\nĠdeb ated\nĠsil ently\nĠrest raint\nB al\n0000 000\nĠform idable\nĠFil ip\nĠsacrific es\nF ood\nĠdwar f\nĠSe qu\nin ian\nMore over\nĠtang ible\nops is\nĠMine craft\nĠRegist ration\no an\nĠrepresent ations\nĠth irst\nĠcor p\nire ment\nM ade\nl oe\n> \"\nc ats\n* .\nĠgest ures\ngener al\nLe ague\nĠpack ets\nĠInspect or\nĠBer g\nĠfraud ulent\nĠcritic ize\nF un\nĠbl aming\nnd ra\nĠsl ash\nĠE ston\nĠpropos ing\nĠwh ales\nĠtherap ist\nĠsub set\nĠle isure\nEL D\nĠC VE\nĠAct ivity\nĠcul min\nsh op\nĠD AY\nis cher\nĠAdmir al\nĠAtt acks\nĠ19 58\nĠmem oir\nĠfold ed\nĠsex ist\nĠ15 3\nĠL I\nĠread ings\nĠembarrass ment\nĠEmploy ment\nw art\nch in\nĠcontin uation\nl ia\nRec ently\nĠd uel\nĠevac uation\nĠKash mir\nĠdis position\nĠR ig\nĠbol ts\nĠins urers\n4 67\nM ex\nĠret aliation\nĠmis ery\nĠunre asonable\nr aining\nI mm\nĠP U\nem er\nĠgen ital\nãĤ ³\nĠC andy\nĠon ions\nĠP att\nlin er\nĠconced ed\nĠf a\nĠfor c\nĠH ernandez\nĠGe off\ndeb ian\nĠTe ams\nĠc ries\nĠhome owners\n23 7\nA BC\nĠst itch\nĠstat istic\nĠhead ers\nĠBi ology\nĠmot ors\nĠG EN\nĠL ip\nĠh ates\nĠhe el\nS elf\ni pl\nED IT\nort ing\nĠann ot\nĠSpe ech\nold emort\nĠJ avascript\nĠLe Bron\nĠfoot print\nĠf n\nĠseiz ures\nn as\nh ide\nĠ19 54\nĠBe e\nĠDecl aration\nĠKat ie\nĠreserv ations\nN R\nf emale\nĠsatur ated\nĠb iblical\nĠtroll s\nDev ice\nph otos\nĠdr ums\nãĥīãĥ© ãĤ´ãĥ³\nN ight\nf ighter\nĠH ak\nri ber\nĠc ush\nĠdiscipl inary\nba um\nĠG H\nĠSch midt\nilib rium\nĠs ixty\nĠKush ner\nro ts\nĠp und\nĠR ac\nĠspr ings\nĠcon ve\nBus iness\nF all\nĠqual ifications\nĠvers es\nĠnarc iss\nĠK oh\nĠW ow\nĠCharl ottesville\ned o\nĠinterrog ation\nĠW ool\n36 5\nB rian\nĠâľ ĵ\nĠalleg es\nond s\nid ation\nĠJack ie\ny u\nĠl akes\nĠworth while\nĠcryst als\nĠJud a\nĠcomp rehend\nĠfl ush\nĠabsor ption\nĠO C\nĠfright ened\nĠCh ocolate\nMart in\nĠbu ys\nĠbu cks\nĠapp ell\nĠChampions hips\nĠlist ener\nĠDef ensive\nĠc z\nud s\nĠM ate\nĠre play\nĠdecor ated\nĠs unk\nĠV IP\nĠAn k\nĠ19 5\naa aa\nNob ody\nĠMil k\nĠG ur\nĠM k\nĠS ara\nĠse ating\nĠW id\nTr ack\nĠemploy s\nĠgig antic\nAP P\nãĤ §\nin ventory\nĠtow el\nat che\nl asting\nĠT L\nĠlat ency\nĠkn e\nB er\nme aning\nĠup held\nĠplay ground\nĠm ant\nS ide\nĠstere o\nĠnorth west\nĠexception ally\nĠr ays\nĠrec urring\nD rive\nĠup right\nĠab duct\nĠMar athon\nĠgood bye\nĠal phabet\nh p\nĠcourt room\nring ton\not hing\nT ag\nĠdiplom ats\nĠbar bar\nĠAqu a\n18 3\n33 33\nĠmat urity\nĠinst ability\nĠAp ache\nĠ= ==\nĠfast ing\nĠGr id\nMod Loader\nĠ15 2\nA bs\nĠOper ating\nett i\nĠacqu aint\nDon nell\nĠK em\nĠFor ge\nĠarm ored\nM il\nĠphilos ophers\nin vest\nPl ayers\nâ Ī\nĠmy riad\nĠcomr ades\nR ot\nĠremember ing\nĠcorrespond s\nĠprogram mers\nĠLyn n\nĠo lig\nĠco herent\nyn chron\nĠChem ical\nĠj ugg\np air\npost s\nE ye\nĠIn ner\nĠsem ester\nott est\nĠEmir ates\nric anes\nor ously\nm its\nĠW is\nĠd odge\nl ocation\nĠf aded\nAm azon\nĠPro ceed\nĠIN FO\nj ournal\nĠTru ck\nT en\nĠ2 17\nĠstat utes\nm obile\nĠT ypes\nRec omm\nb uster\npe x\nĠleg ends\nĠhead ache\nf aced\nĠWi Fi\nif ty\nĠH ER\nĠcirc uits\nER ROR\n22 6\nol in\nĠcyl inder\nosp ace\nik ers\nP rem\nQu ant\nĠconflic ting\nĠslight est\nĠfor ged\nion age\nStep hen\nĠK ub\nĠOpp ortun\nĠHe al\nĠbl o\nĠrul ers\nĠh uh\nĠsubmar ine\nf y\nass er\nĠallow ance\nĠKas ich\nĠT as\nĠAustral ians\nForge ModLoader\nĠâĨ ĳ\nĠMat rix\nam ins\nĠ12 00\nĠAc qu\n23 6\nD ocument\nĠBre aking\n19 3\nĠSub st\nĠRoll er\nĠPro perties\nĠN I\nt ier\nĠcr ushing\nĠadvoc ating\nFurther more\nkeep ers\nĠsex ism\nx d\nĠcall er\nĠS ense\nchie ve\nĠT F\nĠfuel ed\nĠreminis cent\nĠobs ess\nur st\nĠup hold\nĠF ans\nhet ics\nĠâ Ĺ\nĠB ath\nĠbe verage\nĠo scill\n25 4\nĠpol es\nĠgrad ual\nĠex ting\nĠS uff\nĠS uddenly\nĠlik ing\nĠ19 49\nun ciation\nam ination\nĠO mar\nĠL V\nĠCon sequently\nĠsynt hes\nĠG IF\nĠp ains\nĠinteract ing\nu ously\ninc re\nĠrum or\nĠScient ology\n19 7\nĠZ ig\nĠspe lling\nĠA SS\nĠexting u\nms on\nĠg h\nĠremark ed\nĠStrateg ic\nĠM ON\nå ¥\ng ae\nĠWH AT\nE ric\nĠCamp us\nĠmeth ane\nĠimag in\nJ UST\nĠAl m\nX T\ni q\nĠR SS\nĠwrong doing\natt a\nĠbig ot\nĠdemonstr ators\nĠCal vin\nĠV illa\nĠmembr ane\nĠAw esome\nĠbenef ic\n26 8\nĠmagn ificent\nĠL ots\nG reg\nĠBor is\nĠdetain ees\nĠH erman\nĠwhis pered\nĠa we\nProf essor\nfund ing\nĠphys iological\nĠDest ruction\nĠlim b\nĠmanip ulated\nĠbub bles\nĠpse ud\nĠhyd ra\nĠBrist ol\nĠst ellar\nĠExp ansion\nĠK ell\nĠInterest ingly\nĠm ans\nĠdrag ging\nĠec ological\nĠF it\nĠg ent\nĠbenef ited\nĠHait i\nĠpoly g\nãĥ İ\nĠ20 30\nĠpro w\nĠrecon struction\nĠwas t\nĠpsych ic\nĠGree ks\nHand ler\n16 2\nĠP ulse\nĠsol icit\nĠsy s\nĠinflu x\nĠG entle\nper cent\nĠprolifer ation\nĠtax able\nĠdisreg ard\nĠesc aping\nĠg inger\nĠwith stand\nĠdevast ated\nĠD ew\nser ies\nĠinject ed\nela ide\nĠturn over\nhe at\nĻ Ĥ\nH appy\nĠSil ent\nãĤ Ń\niv ism\nĠir rational\nAM A\nĠre ef\nr ub\nĠ16 2\nĠbank ers\nĠEth ics\nv v\nĠcritic isms\nK n\n18 6\nM ovie\nĠT ories\nĠno od\nĠdist ortion\nF alse\nod ore\nĠt asty\nRes earch\nĠU ID\n- )\nĠdivor ced\nĠM U\nĠHay es\nĠIs n\nian i\nĠH Q\nĠ\" #\nign ant\nĠtra umatic\nĠL ing\nH un\nĠsab ot\non line\nr andom\nĠren amed\nra red\nK A\nd ead\nÃ© t\nĠAss istance\nĠse af\n++++ ++++\nĠse ldom\nĠWeb b\nĠbo olean\nu let\nĠref rain\nĠDI Y\nru le\nĠshut ting\nĠutil izing\nload ing\nĠPar am\nco al\noot er\nĠattract ing\nĠD ol\nĠher s\nag netic\nĠRe ach\nim o\nĠdisc arded\nĠP ip\n01 5\nÃ¼ r\nĠm ug\nIm agine\nC OL\nĠcurs ed\nĠSh ows\nĠCurt is\nĠSach s\nspe aking\nĠV ista\nĠFram ework\nong o\nĠsub reddit\nĠcr us\nĠO val\nR ow\ng rowing\nĠinstall ment\nĠgl ac\nĠAdv ance\nEC K\nĠLGBT Q\nLE Y\nĠac et\nĠsuccess ive\nĠNic ole\nĠ19 57\nQu ote\nĠcircumst ance\nack ets\nĠ14 2\nort ium\nĠguess ed\nĠFr ame\nĠperpet rators\nĠAv iation\nĠBen ch\nĠhand c\nA p\nĠ19 56\n25 9\nr and\nNet Message\nd in\nurt les\nh ig\nĠV III\nff iti\nĠSw ords\nb ial\nĠkidn apping\ndev ice\nĠb arn\nĠEl i\nauc as\nS end\nCon structed\nĠÂ ½\nĠneed les\nĠad vertisements\nĠv ou\nĠexhib ited\nĠFort ress\nAs k\nB erry\nTY PE\nĠcan cers\nump ing\nĠTerrit ory\nĠpr ud\nĠn as\nĠathe ist\nĠbal ances\nãģ Ł\nĠSh awn\n& &\nĠland sc\nĠR GB\nĠpet ty\nĠex cellence\nĠtransl ations\nĠpar cel\nĠChe v\nE ast\nĠOut put\nim i\nĠamb ient\nĠTh reat\nĠvill ains\nĠ5 50\nIC A\nĠtall er\nĠle aking\nc up\nĠpol ish\nĠinfect ious\nĠK C\nĠ@ @\nback ground\nĠbureaucr acy\nĠS ai\nun less\nit ious\nĠSky pe\nAt l\nID ENT\n00 8\nĠhyp ocr\nĠpit chers\nĠguess ing\nĠF INAL\nBet ween\nĠvill agers\nĠ25 2\nf ashion\nĠTun is\nBe h\nĠEx c\nĠM ID\n28 8\nĠHas kell\n19 6\nĠN OR\nĠspec s\nĠinv ari\nĠgl ut\nĠC ars\nĠimp ulse\nĠhon ors\ng el\nĠjurisd ictions\nĠBund le\nul as\nCalif ornia\nĠIncre ase\nĠp ear\nĠsing les\nĠc ues\nĠunder went\nĠW S\nĠexagger ated\nĠdub ious\nĠfl ashing\nL OG\n) ].\nJ ournal\nt g\nV an\nĠI stanbul\nĠIn sp\nĠFrank en\nD raw\nĠsad ness\nĠiron ic\nĠF ry\nx c\nĠ16 4\nis ch\nW ay\nĠProtest ant\nh orn\nĠun aff\nĠV iv\nill as\nĠProduct ions\nĠH ogan\nĠper imeter\nĠS isters\nĠspont aneous\nĠdown side\nĠdescend ants\nĠor n\nw orm\nJapan ese\nĠ19 55\nĠ15 1\nĠDo ing\nels en\numb les\nĠrad ically\nĠDr um\nĠB ach\nĠli abilities\nĠO B\nĠElement ary\nĠmem e\nyn es\nĠfinger print\nĠGr ab\nĠundert ake\nMem bers\nĠRead er\nĠSim s\ng od\nĠhypot hetical\ns cient\nĠA J\nĠchar ism\nĠad missions\nĠMiss ile\ntr ade\nĠexerc ising\nĠBack ground\nW ritten\nĠvoc als\nwhe ther\nĠv i\nĠW inner\nĠl itter\nĠSh ooting\nST EM\nãĤ ¡\nĠA FL\nĠvari ability\nĠe ats\nĠD PS\nb row\nĠeleph ants\nĠstr at\nĠ Å\nĠsett lers\nMatt hew\nĠin advert\nH I\nĠIM F\nĠGo al\nĠnerv es\nJohn son\ney e\nablish ment\nTh ursday\nBIL ITY\nH ad\nam oto\nhet amine\nep s\nĠmit ochond\nĠcomp ressed\nĠTre vor\nĠAnim als\nT ool\nL ock\nĠtwe ak\nĠpin ch\nĠcancell ation\nP ot\nĠfoc al\nĠAst ron\n17 3\nĠA SC\nĠO THER\numn i\nĠdem ise\nd l\nÙ ħ\nSem itism\nĠcr acking\nĠcollabor ative\nĠexpl ores\ns ql\nĠher bs\nĠconfig urations\nm is\nĠRes ult\nace y\nĠSm oke\nĠsan ct\nel ia\nĠdeg ener\nĠdeep est\nĠscream ed\nĠn ap\nSoft ware\nĠST AR\nE F\nĠX in\nspons ored\nmans hip\n23 3\nĠprim aries\nĠfilter ing\nĠas semble\nm il\nĠMy ers\nb ows\nĠpun ched\nM ic\nĠinnov ations\nĠfun c\nand o\nĠfr acking\nĠV ul\nÐ¾ Ð\nosh op\nĠIm mun\nĠsett ling\nĠadolesc ents\nĠreb uilding\nĠtransform ing\nĠpar ole\nĠhar bor\nĠbook ing\not ional\nonge vity\nĠY o\nb ug\nĠemer ges\nĠMethod s\nĠCh u\nP res\nĠDun geons\nĠtra iling\nĠR um\nĠH ugh\nå¤ ©\nĠE ra\nĠBatt les\nRes ults\nĠTr ading\nĠvers a\nc ss\nax ies\nhe et\nĠgre ed\n19 89\nĠgard ens\nĠconting ent\nP ark\nĠLeaf s\nh ook\nro be\nĠdiplom acy\nĠF uel\nĠInv asion\nĠupgr ading\nM ale\nĠe lic\nĠrelent less\nĠCo venant\nap esh\nĠT rop\nT y\npro duction\nart y\nĠpun ches\nak o\ncyclop edia\nĠR abbit\nĠHD MI\nĠ14 1\nĠf oil\nItem Image\nĠF G\nĠimplement ations\nĠP om\nixt ures\nĠaw ait\nĠ3 30\nam us\nĠumb rella\nĠfore see\nse par\nĠcircum cision\nĠperipher al\nS ay\nĠExper t\nIn c\nĠwithd rew\nĠAnd ers\nf ried\nĠradio active\nĠOp ening\nĠboard ing\nĠN D\nĠover throw\nAct iv\nW P\nĠAct s\n× Ļ\nĠmot ions\nv ic\nĠM ighty\nĠDef ender\na er\nĠthank ful\nĠK illing\nĠBr is\nmo il\nĠpredict ing\n26 6\nch oice\nĠkill ers\nĠinc ub\nĠChe st\nather ing\nĠpro claimed\nfl ower\noss om\numbled ore\nĠCy cling\nĠOccup y\nAG ES\nP en\nĠY ug\nĠpack aged\nĠheight ened\nc ot\nst ack\nC ond\nĠst amps\nm age\nĠpersu aded\nĠens l\nĠCard inal\nĠsol itary\nĠpossess ing\nĠC ork\nĠev id\nĠT ay\nĠbl ues\nĠextrem ism\nĠlun ar\nĠcl own\nTe chn\nĠfest ivals\nĠPv P\nĠL ar\nĠconsequ ently\np resent\nĠsom eday\nç İĭ\nĠMet eor\nĠtour ing\nc ulture\nĠbe aches\nS hip\nc ause\nĠFl ood\nãĥ ¯\nĠpur ity\nth ose\nĠem ission\nb olt\nĠch ord\nĠScript ure\nL u\nĠ$ {\ncre ated\nOther s\n25 8\nĠelement al\nĠannoy ed\nĠA E\nd an\nĠS ag\nRes earchers\nĠfair y\nâĢĵ âĢĵ\n======== ====\nSm art\nGG GG\nĠskelet ons\nĠpup ils\nlink ed\nĠur gency\nen abled\nĠF uck\nĠcoun cill\nr ab\nU AL\nT I\nĠlif es\nĠconf essed\nB ug\nĠharm on\nĠCON FIG\nĠNe utral\nD ouble\nĠst aple\nĠSH A\nBrit ish\nĠSN P\nAT OR\noc o\nĠswing ing\nge x\nole on\npl ain\nĠMiss ing\nĠTro phy\nv ari\nran ch\nĠ3 01\n4 40\n00000000 00000000\nĠrest oring\nĠha ul\nuc ing\nner g\nĠfut ures\nĠstrateg ist\nquest ion\nĠlater al\nĠB ard\nĠs or\nĠRhod es\nĠD owntown\n????? -\nĠL it\nĠB ened\nĠco il\nst reet\nĠPort al\nFI LE\nĠG ru\n* ,\n23 1\nne um\nĠsuck ed\nĠr apper\nĠtend encies\nĠLaure n\ncell aneous\n26 7\nĠbrow se\nĠover c\nhead er\no ise\nĠbe et\nĠG le\nSt ay\nĠm um\nĠtyp ed\nĠdiscount s\nT alk\nĠO g\nex isting\nĠS ell\nu ph\nC I\nĠAust rian\nĠW arm\nĠdismiss al\nĠaver ages\nc amera\nĠalleg iance\nL AN\n=\" #\nĠcomment ators\nĠSet ting\nĠMid west\nĠpharm ac\nĠEX P\nĠstain less\nCh icago\nĠt an\n24 4\nĠcountry side\nĠV ac\n29 5\nĠpin ned\nĠcr ises\nĠstandard ized\nT ask\nĠJ ail\nĠD ocker\ncol ored\nf orth\n\" },\nĠpat rons\nĠsp ice\nĠm ourn\nĠM ood\nĠlaund ry\nĠequ ip\nĠM ole\ny ll\nĠTH C\nn ation\nĠSher lock\nĠiss u\nĠK re\nĠAmeric as\nĠA AA\nĠsystem atically\nĠcont ra\nĠS ally\nĠrational e\nĠcar riage\nĠpe aks\nĠcontrad iction\nens ation\nĠFail ure\nĠpro ps\nĠnames pace\nĠc ove\nfield s\nãĤ ĭ\nĠw ool\nĠC atch\nĠpresum ed\nĠD iana\nr agon\nig i\nĠh amm\nĠst unt\nĠG UI\nĠObserv atory\nĠSh ore\nĠsmell s\nann ah\nĠcock pit\nĠD uterte\n8 50\nĠopp ressed\nbre aker\nĠCont ribut\nĠPer u\nĠMons anto\nĠAtt empt\nĠcommand ing\nĠfr idge\nĠR in\nĠChe ss\nual ity\nĠo l\nRepublic an\nĠGl ory\nĠW IN\n.... ...\nag ent\nread ing\nĠin h\nJ ones\nĠcl icks\nal an\nĠ[ ];\nĠMaj esty\nĠC ed\nop us\nate l\nÃ ª\nAR C\nĠEc uador\nãĥ ł\nĠK uro\nĠritual s\nĠcapt ive\nĠoun ce\nĠdisag reement\nĠsl og\nf uel\nP et\nM ail\nĠexerc ised\nĠsol ic\nĠrain fall\nĠdev otion\nĠAss essment\nĠrob otic\nopt ions\nĠR P\nĠFam ilies\nĠFl ames\nĠassign ments\n00 7\naked own\nĠvoc abulary\nRe illy\nĠc aval\ng ars\nĠsupp ressed\nĠS ET\nĠJohn s\nĠwar p\nbro ken\nĠstat ues\nĠadvoc ated\nĠ2 75\nĠper il\nom orph\nĠF emin\nper fect\nĠh atch\nL ib\n5 12\nĠlif elong\n3 13\nĠche eks\nĠnum bered\nĠM ug\nB ody\nra vel\nWe ight\nĠJ ak\nĠHe ath\nĠkiss ing\nĠJ UST\nĠw aving\nu pload\nĠins ider\nĠPro gressive\nĠFil ter\ntt a\nĠBe am\nĠviol ently\nip ation\nĠskept icism\nĠ19 18\nĠAnn ie\nĠS I\nĠgen etics\nĠon board\nat l\nĠFried man\nĠB ri\ncept ive\nĠpir ate\nĠRep orter\n27 8\nĠmyth ology\nĠe clipse\nĠsk ins\nĠgly ph\ning ham\nF iles\nC our\nw omen\nĠreg imes\nĠphotograp hed\nK at\nĠMA X\nOffic ials\nĠunexpected ly\nĠimpress ions\nF ront\n;;;; ;;;;\nĠsuprem acy\nĠs ang\nĠaggrav ated\nĠabrupt ly\nĠS ector\nĠexc uses\nĠcost ing\nide press\nSt ack\nĠR NA\nob il\nĠghost s\nld on\nat ibility\nTop ics\nĠreim burse\nĠH M\nĠDe g\nĠth ief\ny et\nogen esis\nle aning\nĠK ol\nĠB asketball\nĠf i\nĠSee ing\nĠrecy cling\nĠ[ -\nCong ress\nĠlect ures\nP sy\nĠne p\nĠm aid\nĠori ented\nA X\nĠrespect ful\nre ne\nfl ush\nĠUn loaded\nre quest\ngr id\nĠAltern atively\nĠHug o\nĠdec ree\nĠBuddh ism\nand um\nAnd roid\nĠCong o\nĠJoy ce\nĠacknowled ging\nhes ive\nĠTom orrow\nĠH iro\nth ren\nĠM aced\nĠho ax\nĠIncre ased\nĠPr adesh\nW ild\n____ __\n16 1\nĠa unt\nĠdistribut ing\nĠT ucker\nĠSS L\nĠW olves\nB uilding\nou lt\nĠLu o\nĠY as\nĠSp ir\nĠSh ape\nĠCamb od\nĠIP v\nĠm l\nĠext rad\n39 0\nĠPenn y\nd ream\nĠstation ed\nopt ional\new orthy\n. </\nĠundert aking\nĠchick ens\nĠstimul i\nĠEl se\nig ators\nĠBegin ning\nct ory\nĠprep ares\nĠdel ta\nĠvic inity\nt ool\nĠworks hops\nM Hz\nĠaccus ation\nĠhist ories\nrop olis\nĠChurch ill\nĠne on\nĠb aff\nd ies\nmay be\nĠè£ı è¦ļéĨĴ\nĠsympt om\nEC H\nĠMan uel\nĠban ana\nĠH B\nĠ ****\nĠKore ans\nc oll\nF B\nĠpr aying\nĠCann ot\nĠM ile\nĠembr acing\nĠSil k\n39 3\not ers\nF D\nĠday light\nal ias\nĠBrig ade\nĠHann ah\nĠcler gy\nĠs outheast\nĠalcohol ic\nĠpropos es\nliv ion\nĠcalcul ating\nĠstim ulate\nĠspl itting\ne ight\nĠInd y\npl ays\nĠP ik\nĠdom est\nĠforg iveness\nĠR ings\npat ient\nkins on\nM ont\nig ible\n; \"\nĠperiod ically\namm ad\nĠBr itt\np ard\nĠarbit ration\nĠSchne ider\nĠCorpor ate\nĠMay a\nĠsn akes\na um\nĠbl asted\nĠmyster ies\nĠrev ive\noc amp\nĠD odge\nĠOper a\n27 9\nĠor phan\nĠspec ifies\nĠM ets\nD uration\nH en\nĠfire works\nĠprosec ute\nĠTill erson\nd p\nus age\nl iness\nĠDeb ian\nĠ2 24\nris es\nĠIn fect\nat ra\nĠR R\nĠL or\nd iff\nĠCharl eston\nĠac oustic\nĠam use\n3 30\nĠc er\nĠT ac\nĠ[ +\nĠcard iac\nĠRestaur ant\ner gy\nĠf uzz\nĠbit es\nĠhazard ous\nĠbr ighter\nr ans\nĠStephan ie\next ra\nRE T\nĠChrist ine\nĠS ue\nstat ement\nĠbol ster\nĠant it\nRad io\nB IT\nãĤ °\nĠvis ions\nĠCon cept\nĠin line\nĠPhilos ophy\nis ans\nĠIr ving\nÃ £\nt aking\nĠincons ist\nĠKum ar\nĠl ig\nĠSch umer\nĠReg ulations\nĠH z\nth ro\nĠV oldemort\nĠM ED\nĠFreder ick\nP ad\n22 1\nĠalleg ing\nĠCommun ication\nĠ16 7\nĠforecast s\nĠsp iders\nOr gan\nĠParticip ants\nĠO ps\ndes ign\nCl ose\nĠfact o\nĠbom bers\nres istant\nateg ories\nS chool\nĠhom ework\nĠcor ro\nT uesday\nĠBrend an\nĠM X\nĠT S\nĠSt ri\nĠstake holders\nĠMillenn ium\nĠtransfer ring\nJ ud\nĠt ac\nĠ16 00\nĠSD K\nr b\nĠinterpret ations\nĠS G\nĠup stairs\nĠHar vest\nĠvag ina\nĠing est\nx f\nĠOr ion\nĠJoe y\nĠsand wic\nĠimm ortal\nĠfl ipped\nort ex\nthreat ening\nĠsn iper\nĠconver ts\nĠinstall ations\nĠBul gar\nors che\nm ails\nĠl ure\nĠnarrow ly\nĠgren ade\nĠG ing\nĠunder wear\n------------ --\nĠch ased\nĠV AL\nĠparent ing\nĠH amb\nĠBl az\nĠanarch ist\nĠMed ian\nĠProgram s\nÎ ½\nĠob j\nĠN okia\norm an\nan qu\nat ism\nop a\nĠfulf illing\nĠpupp y\nĠent it\nĠSebast ian\nĠshoot ers\nĠric her\nè ¡\nĠtempt ed\nĠAT T\nĠC V\nĠto re\nRes ource\nĠDevil s\n40 8\nin ational\nĠass urance\nĠDar ren\nĠwh ichever\npos ure\nĠf ury\nSt ock\nĠunivers ally\nresp onse\nĠo ak\nĠwork load\nĠCor ner\nee le\n\" ...\nĠdepri ved\nk owski\nĠcast s\nĠaffili ation\nĠA ch\nĠAs ked\nat he\nĠl act\nĠTh u\nr m\nĠair lines\nĠnot ions\nForm at\nĠF AA\nãĥ Ĭ\ndri ver\nĠtrans cend\nS ettings\nĠPro secut\nĠsp inal\nĠdefault s\nF K\nĠpref ers\nrend ered\nth us\nfil m\nĠt iger\nĠSp icer\nrec ogn\nĠRug by\nNet work\nĠp ity\nĠcomp artment\nc asters\nĠMon roe\nĠ7 20\nĠcorrect ions\nĠdop amine\nĠA Z\nC ut\nĠro omm\nĠspec ulate\nH ash\nĠrestrict ive\n11 11\nred ible\non el\nĠramp ant\nre ported\nĠSu ite\nĠMin imum\nal ys\naz ard\nlo op\nĠl ent\nsh a\nĠv andal\nmen u\nĠBoe hner\nĠnarr atives\nĠauthent icity\n26 9\nan ic\nd uty\n28 5\nĠthank ed\nĠbetray ed\nl ift\nĠsouth west\nĠDex ter\nĠB od\nĠkey words\nA verage\nD IS\nĠethnic ity\n! ),\nĠNational s\ná ¹\nĠT ah\niox id\nĠwid get\nĠpast a\nĠbill ing\nĠtr ilogy\nĠL ines\nĠsn iff\nĠnep hew\nL ate\nĠprinc ip\nĠLo op\nĠMarx ist\nĠdiss olved\nĠcontext s\nĠAm ount\nĠSp ike\nĠtot als\nĠorgan izer\nĠup rising\ns hips\nY Y\nĠNort heast\nm oney\ngrad ation\nĠgoal keeper\nĠH ear\nĠste ak\nĠBuzz Feed\nĠsole mn\nĠSc and\nĠpo pping\nĠad here\nĠAl leg\nby te\nĠW olver\nĠun in\nĠrec ol\nit ud\nĠmim ic\nib us\nĠpredict s\nĠKee per\ni ating\nĠde ception\nĠlear nt\nĠdi ary\nĠcond itional\nĠre lic\nĠinv oke\nien ced\nå Ī\nĠP ont\nĠcell phone\nĠspeed ing\nĠtack ling\nĠn ude\nop ened\nĠMan afort\nĠ19 52\nĠmaj ors\nĠSil ence\nĠlog istics\nĠweight ed\nĠPsych iat\n\": [\"\nĠsick ness\nĠdivid ends\nz on\nRe lease\nĠKe ys\nĠI ch\nĠen z\nĠF ernand\nĠÎ ±\nĠmean ings\nĠp enny\nĠst ern\nĠl ar\nĠPub lished\nĠback drop\nK im\nĠSy nt\nĠdeb uted\nw m\nĠIs le\nĠregul ating\nott i\nĠSch olars\nices ter\nĠChe f\nĠpop s\nĠLaun cher\nĠVar ious\nĠcomment ing\nos lav\nenz ie\nĠrival ry\nâ Ĥ¬\nRe ally\nĠor c\nĠbe an\nĠJud y\nNot ice\nĠB ike\n? ]\nĠrent ed\nst en\nĠfore front\nĠBald win\nĠyield ed\nt ails\nPr ime\nĠS ources\nic ator\nSe an\nĠmarch ing\nOut put\nĠJ ungle\nĠres ide\nzz le\nĠAndrew s\nĠtor que\nBas ic\nAct ually\nst rap\np enter\nĠexam s\nĠY a\nĠ15 9\nĠDec ision\nĠr ansom\nete enth\nens ing\n2 13\nĠsun set\n40 4\nĠRap id\nĠHe in\nĠAb original\nĠorgan ism\nĠS ever\nĠcl a\naj i\nSim ple\nĠFl avor\nĠE val\npr us\nĠch orus\nD AY\nĠden ounced\nĠbi ography\nĠTurn bull\nRec ent\nN ormal\nlect ions\nW ord\nĠf erry\nĠWag ner\nh om\nUn it\nĠsuper market\nĠS ith\nĠnomine es\nĠdictators hip\nidd ler\nĠannoun ces\nĠThe m\nĠNept une\nĠde ity\nĠY i\nĠmon arch\nAR R\nĠinv aded\nĠH ok\nunt ary\nC ertain\neg a\nĠk idding\nĠReg ulation\nĠtr ay\nĠphotograp hers\nĠArc ane\nĠdis charged\nĠevangel ical\nĠinter change\nĠfilm maker\nĠEnd less\nĠ29 0\nĠSalv ador\nAS Y\nĠSign al\nĠwr ath\nâ ľ\nl ot\n' /\nĠproject ile\nĠemploy ing\nĠInter face\n19 1\natell ite\nĠR ath\npack age\nĠindic ations\nJ ason\nĠarg s\nĠG Hz\nĠt ilt\nn ants\nw on\nãĤ µ\nred d\nres cent\nĠCal endar\nĠmod ular\nĠassist ing\nĠred eem\nĠBe an\nĠwor sh\nĠdecentral ized\n) ...\n37 7\nĠarr ays\nĠaccomplish ments\nÎ ¿\nd ot\nĠmut ually\nĠob struct\nĠmis represent\nore st\nion ic\nru ce\n% ;\nĠknow ingly\nport ing\nin ently\nA ri\nĠSch ultz\nD a\nĠC ere\nĠob solete\nħ ĭ\ng ive\nĠb ait\nĠen larg\nNe ill\nĠ19 33\nĠrecons ider\nĠSerge ant\nĠDian e\nĠC ogn\nĠI con\nP osition\nĠf ost\nĠstir ring\nse ven\nĠSpace X\nugg ets\nĠmed d\nG al\nĠS ister\nB oy\nĠtrigger ing\nT aking\nĠscream s\nĠca usal\nĠaw aken\nAr m\n29 7\nĠdisp atched\nĠF ALSE\nĠorgan izational\nĠT ong\nĠdile mma\nd emon\nS pl\nĠhook s\nud ing\nĠvalid ate\nĠpot ion\nĠcl aw\nĠburg l\nĠqu ir\nAC A\nĠBren nan\nĠdur ability\nĠbomb ings\nĠWind ow\nĠculp rit\n3 25\nThere fore\numb ered\nper formance\nw arts\nĠen forcing\nĠBl ow\nĠre print\nif ax\nal pha\nĠsin ister\nĠbur ger\nfight ing\nSc ore\nĠSt ones\ni em\n40 5\nche my\nĠvine gar\nn om\nĠprev ailing\nĠLat est\nÂ ¶\nĠb a\nĠWrit er\nĠ17 7\nĠCon way\nĠcollect s\nĠquant itative\nĠhor rors\nog ens\nĠSl ov\nĠl ays\nh aw\nĠSl ash\nĠnight club\nĠDav ies\nĠbr ide\nĠScar let\ny mm\nĠApplic ations\nvel ength\nĠrev ival\nĠsoft ly\nĠz oo\nita ire\nC ur\nĠelect rom\nĠplant ing\nOT O\nĠE lements\nĠsw allow\npor ter\nĠlapt ops\nĠpe anut\nĠlobby ists\nÎ ²\nPan el\nĠJo an\nim il\nt nc\nĠresist ed\nĠout we\nĠret aining\nat ri\nĠpo orer\nĠSyri ans\nĠHam mond\nĠwe ld\nud er\ntop ic\nĠT T\nric ia\nĠth ieves\nL ic\nĠG ust\nĠW ays\nare th\n24 3\nĠbroad caster\nsh ield\nass ium\nub le\nĠairst rikes\non so\nĠped al\nĠcollect ors\nĠV ander\nĠMes a\nĠdict ator\nĠd ir\nent on\nc art\nsc ore\nad der\nC ry\nĠs sh\ngg er\nĠdrunk en\nĠG S\nĠSe at\nĠcorner back\nĠsk ipped\nĠRes earchers\nĠAud i\nRef erence\nĠhaun ted\nÃ «\nĠClin ic\nc z\nĠp s\nĠPal adin\nĠRec ipe\nĠst igma\nopp y\nĠmon keys\nĠHaw k\nS ad\n\" />\nĠWorks hop\nĠRet ail\nĠAv atar\n6 25\nN a\nĠV C\nĠSec ure\nM Y\n19 88\noss ip\nĠpro state\nĠund en\nĠg amer\nĠCont ents\nĠWar hammer\nĠSent inel\n3 10\nĠse gregation\nĠF lex\nĠM AY\nĠdr ills\nĠDrug s\nIslam ic\nĠsp ur\nĠca fe\nĠimag inary\nĠgu iding\nĠsw ings\nĠThe me\nob y\nĠn ud\nĠbe gging\nĠstr ongh\nĠreject ing\nĠpedest rians\nĠPro spect\nR are\ns le\nĠconcess ions\nĠConst itutional\nĠbe ams\nĠfib ers\np oon\nĠinstinct s\npro perty\nĠB IG\nSand ers\nim ates\nĠco ating\nĠcorps es\nĠTR UE\ncheck ed\nĠ16 6\nA sh\nĠJ S\nĠF iction\nĠcommun al\nĠener getic\noooo oooo\nĠnow adays\nIL D\nib o\nĠSU V\nR en\nĠdwell ing\nSil ver\nĠt ally\nĠM oving\nĠcow ard\nĠgener als\nĠhorn s\nĠcirc ulated\nĠrob bed\nĠUn limited\nĠharass ed\nĠinhib it\nĠcomp oser\nĠSpot ify\nĠspread s\n3 64\nĠsu icidal\nĠno ises\nĠSt ur\nĠs aga\nĠK ag\nis o\nĠtheoret ically\nM oney\nĠsimilar ity\nĠslic ed\nut ils\ning es\n\" -\nĠan th\nĠimp ed\nMod ule\nThrough out\nĠmen us\ncomm ittee\nand i\nob j\nin av\nf ired\nĠAb dullah\nĠund ead\nĠfont s\nH old\nEN G\nĠsustain ability\nĠfl ick\nĠr azor\nĠF est\nĠChar acters\nĠword ing\nĠpopul ist\nĠcritic izing\nĠm use\nv ine\nĠcard board\nĠkind ly\nĠfr inge\nĠThe ft\nicult ural\nĠgovern ors\nĠ ï¿½ï¿½ï¿½ï¿½\nĠ16 3\nĠtime out\nĠA uth\nChild ren\nA U\nĠred emption\nĠAl ger\nĠ19 14\nĠw aved\nĠastron auts\nog rams\nĠsw amp\nĠFinn ish\nĠcand le\nĠton nes\nut m\nĠr ay\nĠsp un\nĠfear ful\nart icles\nĠca us\nor ically\nĠRequ ires\nĠG ol\nĠpop e\nĠinaug ural\nĠg le\nAD A\nĠIS IL\nĠOff ensive\nĠwatch dog\nĠbal con\nent ity\nĠH oo\nĠgall on\nAC C\nĠdoub ling\nĠimpl ication\nĠS ight\nĠdoct r\n---- ---\nĠ\\ \\\nĠm alt\nR oll\nĠâī ¥\nĠrec ap\nadd ing\nu ces\nĠB end\nfig ure\nĠtur key\nĠsoc ietal\nĠT ickets\nĠcommer cially\nĠsp icy\nĠ2 16\nĠR amp\nĠsuperior ity\nÃ ¯\nĠTr acker\nC arl\nĠC oy\nĠPatri ot\nĠconsult ed\nĠlist ings\nĠsle w\nreens hot\nĠG one\nĠ[ ...]\n30 9\nĠh ottest\nØ ±\nĠrock y\nĠD iaz\nĠmass age\nĠpar aly\nĠp ony\nA z\nĠcart ridge\nĠN Z\nĠsn ack\nĠLam ar\nple ment\nĠLes lie\nĠm ater\nĠsn ipp\n24 6\nĠjoint ly\nĠBris bane\nĠiP od\nĠpump ing\nĠgo at\nĠSh aron\neal ing\nĠcor on\nĠan omal\nrah im\nĠConnect ion\nĠsculpt ure\nĠsched uling\nĠD addy\nat hing\nĠeyeb rows\nĠcur ved\nĠsent iments\nĠdraft ing\nD rop\n( [\nĠnom inal\nĠLeaders hip\nĠG row\nĠ17 6\nĠconstruct ive\niv ation\nĠcorrupt ed\nger ald\nĠC ros\nĠChe ster\nĠL ap\nãģ ª\nOT H\nD ATA\nĠal mond\npro bably\nI mp\nĠfe ast\nĠWar craft\nF lor\nĠcheck point\nĠtrans cription\nĠ20 4\nĠtwe aks\nĠrel ieve\nS cience\nĠperform er\nZ one\nĠtur moil\nig ated\nhib it\nĠC afe\nthe med\nĠflu or\nben ch\nĠde com\nĠU nt\nĠBar rett\nĠF acts\nĠt asting\nĠPTS D\nĠSe al\nĠJuda ism\nĠDynam ic\nĠC ors\nV e\nĠM ing\nĠTrans form\nv on\nĠDef enders\nĠTact ical\nĠV on\nĠUn ivers\nĠdist orted\nĠB reath\n?' \"\nĠag on\nĠDead ly\nĠl an\nĠCy cle\norn ed\nĠrel iably\nĠgl or\nĠMon key\nãĥ ¡\nĠad ren\nĠmicrow ave\nĠAl ban\nirc raft\ndig it\nsm art\nĠD read\nÂ¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯ Â¯Â¯Â¯Â¯Â¯Â¯Â¯Â¯\n{ {\nĠRoc hester\nĠsimpl ified\nĠinf licted\nĠtake over\nĠyour selves\nad itional\nĠmus cular\nK S\nĠing en\nT ax\nĠFe ature\n27 7\nĠcru c\nĠcr ate\nĠun identified\nĠacclaim ed\nĠM anga\nĠFr ances\nĠNep al\nĠG erald\nĠKu wait\nĠsl ain\nĠHe b\nĠG oku\nãģ® æ\n28 6\nM rs\nĠC ody\nĠSan ctuary\n01 6\nĠdism ant\nĠdatas et\nĠH ond\nb uck\nĠPat terson\nĠpal ette\nĠG D\nic ol\nĠL odge\nĠplanet ary\nak in\nĠRegist ered\nab we\nĠPeters burg\nĠha iled\nĠP iece\nS che\nĠDO J\nĠen umer\n18 1\nĠObs erver\nĠB old\nf ounded\ncom merce\nĠexplo its\nĠF inding\nUR N\nĠS ne\nĠAc id\nay ette\nĠVal ues\nĠdr astic\nĠarchitect ural\nĠ\" .\n× ķ\nump ed\nĠwra pping\nĠwid ow\nĠSl ayer\nl ace\non ce\nGerman y\nav oid\nĠtem ples\nP AR\nÃ ´\nĠLuc ifer\nĠFl ickr\nl ov\nfor ces\nĠsc outing\nĠlou der\ntes y\nĠbefore hand\nÄ ĵ\nĠNe on\nĠW ol\nĠTyp ically\nĠPolit ico\n-+ -+\nĠbuild er\nĠder ive\nK ill\nĠp oker\nĠambig uous\nĠlif ts\nĠcy t\nĠrib s\nood le\nĠS ounds\nh air\nĠSynd rome\nt f\nĠproport ional\nu id\nĠper taining\nĠKind le\nĠNeg ro\nĠreiter ated\nĠTon ight\noth s\nĠCorn ell\nĠo wing\nĠ20 8\nelf are\noc ating\nĠB irds\nSub scribe\nĠess ays\nĠburd ens\nĠillust rations\nar ious\nER AL\nĠCal cul\nĠx en\nĠLink edIn\nĠJ ung\nĠredes ign\nCon nor\n29 6\nĠrevers al\nĠAd elaide\nĠL L\nĠs inking\nĠg um\nUS H\nc apt\nĠGr imm\nĠfoot steps\nĠCB D\nisp ers\nĠpro se\nWed nesday\nĠM ovies\ned in\nĠoverturn ed\nĠcontent ious\nUS B\n~~~~~~~~ ~~~~~~~~\nĠCo pper\nĠpoint less\nN V\nval ues\nolph in\nd ain\nĠdepos ited\nĠG W\nĠpreced ed\nĠCl a\nĠGo lem\nĠN im\nĠÎ ²\nĠEngine ers\nm iddle\nĠfl att\noper ative\nĠcouncil s\nimb abwe\nel in\nĠstress ful\nĠL D\nĠres h\nl ake\nĠwheel chair\nĠAltern ative\nĠoptim ize\noper ation\nĠpe ek\nĠones elf\nig il\nĠtrans itions\nop athy\nbl ank\nĠ16 9\n17 1\n________________________________ ________________________________\nĠl aundering\nEn c\nĠD EC\nĠwork outs\nĠsp ikes\nĠdin osaurs\nĠdiscrim inatory\nP ool\nR ather\n38 5\nR NA\ntes ters\net o\nĠIdent ity\nĠve in\nĠBur ton\nĠarc ade\n4 20\nUlt imately\nĠSad ly\nÃ °\np ill\nĠcub ic\nĠSpect rum\nthe se\nst ates\nĠun official\nh awks\nĠEVER Y\nĠrain bow\nĠincarcer ation\nand ing\nĠsy ll\nĠEver ton\nĠ17 9\nĠSer bia\nĠ18 9\nm eter\nĠMic key\nĠant iqu\nĠfact ual\nne ck\nĠN are\nn orm\nm ust\nĠhigh ways\nĠgl am\nĠdivid ing\nĠSquad ron\nĠMar tha\nĠbirth s\nC over\n//////// ////////\nĠW ong\nPh ot\nĠA LS\nri o\nĠNon etheless\nĠL emon\nĠ20 6\nĠE E\nĠderiv ative\nĠWW II\nv ote\nĠthere in\nĠsepar ating\n44 6\nsy nc\nĠStre ets\nĠr att\nĠmunicip ality\nĠShort ly\nĠmon k\n) ,\"\nĠscr ub\nĠoper atives\nNe ither\nPl ace\nĠLim it\nF emale\nĠAct or\nChar acter\nĠconstit uted\n35 7\nĠprotest ed\nĠSt raw\nĠHe ight\nild a\nĠTy ph\nĠflood s\nĠcos metic\nW AY\npert ure\nup on\nt ons\ness ing\nĠP ocket\nĠro oft\nĠC aucas\nĠant idepress\nĠincomp atible\nEC D\nĠoper a\nĠCont est\nĠgener ators\nl ime\nDef ense\n19 87\nfor um\nĠsav age\nĠHung arian\nn z\nĠmet allic\nĠex pelled\nĠres idency\nĠdress es\n66 6\nĠC lement\nf ires\nC ategory\nĠge ek\nal is\nĠc emetery\neduc ated\nĠc rawl\nĠUn able\nĠT yson\nak is\nĠp ardon\nĠW ra\nĠstrengthen ed\nĠF ors\n33 5\nĠH C\nĠM ond\nĠvisual s\nĠBeat les\nett lement\nĠ ï\ng ro\nĠb ash\nĠpo orest\nĠex cel\nĠaspir ations\nĠM unicip\nens ible\nĠceremon ies\nĠintimid ation\nĠCON TR\nbe ck\nĠK ap\nas u\nĠtradem arks\nĠS ew\nĠComp etition\nnet work\nĠAr ri\nĠT et\nRo aming\nW C\nD at\nĠso b\nĠpair ing\nĠoverd ose\nSA Y\nab er\nĠrev olt\nĠF ah\nact ing\ne q\nest ation\nF ight\nĠMar ks\n27 3\nĠ17 8\nR aw\nãģ ĭ\n34 9\nbl ocks\nĠver ge\nest ine\nĠPod esta\nĠinv asive\nĠprofound ly\nĠA o\ne ach\nĠl est\ninter pret\nĠshr inking\nĠerr one\nĠche es\nly s\nĠI vy\nĠDirect ory\nĠhint ed\nV ICE\nĠcontact ing\nĠG ent\nhe i\nĠlabel ing\nĠmerc ury\nĠL ite\nĠexp ires\nĠdest abil\nrit is\nc u\nĠfeather s\nĠste er\nĠprogram med\nĠV ader\nGo ing\nĠE lim\nĠy o\nĠMic he\nĠ20 3\nĠslee ves\nĠb ully\nĠHum ans\n36 8\nĠcomp ress\nĠBan ner\nAR S\nĠa while\nĠcal ib\nĠspons orship\nĠDiff iculty\nĠP apers\nĠident ifier\n} .\nĠy og\nĠSh ia\nĠclean up\nĠvib e\nint rodu\nim ming\nAustral ia\nĠout lines\nĠY outube\ntr ain\nĠM akes\nĠde ported\nĠcent r\nĠD ug\nĠB oulder\nĠBuff y\nĠinj unction\nĠHar ley\nĠG roups\nĠD umbledore\nĠCl ara\nĠ\" -\nĠsacrific ed\nep h\nSh adow\nib ling\nĠfreel ance\nĠevident ly\nph al\nĠret ains\nM ir\nĠfin ite\nd ar\nĠC ous\nĠrep aired\nĠperiod ic\nĠchampions hips\nĠaster oid\nbl ind\nĠexpress ly\nĠAst ros\nĠsc aled\nĠge ographical\nĠRap ids\nEn joy\nĠel astic\nĠMoh amed\nMark et\nbe gin\nĠdisco vers\nĠtele communications\nĠscan ner\nĠen large\nĠsh arks\nĠpsy chedel\nĠRou ge\nĠsnap shot\nis ine\nX P\nĠpestic ides\nĠL SD\nĠDist ribution\nre ally\nĠde gradation\nĠdisgu ise\nĠbi om\nĠEX T\nĠequ ations\nĠhaz ards\nĠComp ared\n) *\nĠvirt ues\nĠeld ers\nĠenh ancing\nĠAc ross\ner os\nang ling\nĠcomb ust\nucc i\nĠconc ussion\nĠcontrace ption\nĠK ang\nĠexpress es\nĠa ux\nĠP ione\nĠexhib its\nDeb ug\nOT AL\nĠAl ready\nĠWheel er\nĠexp ands\n? :\nĠreconc iliation\nĠpir ates\nĠpur se\nĠdiscour age\nĠspect acle\nR ank\nĠwra ps\nĠTh ought\nĠimp ending\nO pp\nĠAng lo\nĠE UR\nĠscrew ed\nret ched\nĠencour agement\nmod els\nĠconf use\nmm m\nĠVit amin\nâĸĳ âĸĳ\nC ru\nĠkn ights\nĠdisc ard\nĠb ishops\nĠW ear\nĠGar rett\nk an\nãĥ Ł\nĠmascul ine\ncap ital\nĠA us\nĠfat ally\nth anks\nĠA U\nĠG ut\n12 00\nĠ 00000000\nĠsur rog\nĠBI OS\nra its\nĠWat ts\nĠresur rection\nĠElect oral\nĠT ips\n4 000\nĠnut rient\nĠdepict ing\nĠspr ink\nĠm uff\nĠL IM\nĠS ample\nps c\nib i\ngener ated\nĠspec imens\nĠdiss atisf\nĠtail ored\nĠhold ings\nĠMonth ly\nĠE at\npo ons\nĠne c\nĠC age\nĠLot us\nĠLan tern\nĠfront ier\nĠp ensions\nĠj oked\nĠHard y\n=-=- =-=-\nr ade\nU ID\nĠr ails\nĠem it\nĠsl ate\nĠsm ug\nĠsp it\nĠCall s\nĠJac obs\nf eat\nĠU E\nĠrest ruct\nĠregener ation\nĠenerg ies\nĠCon nor\nOH N\nĠChe ese\nĠg er\nĠresur rect\nman agement\nN W\nĠpres ently\nĠBru ins\nM ember\nĠM ang\nid an\nĠboost ing\nw yn\n+ .\nrequ isite\nĠNY PD\nĠMe gan\nĠCond itions\nĠp ics\nnes ium\nĠR ash\nĠ17 4\nĠD ucks\nĠemb ro\nz u\non ian\nrel igious\nĠc raz\nĠAC A\nĠZ ucker\nEM A\nĠPro s\nWe apon\nĠKn ox\nĠAr duino\nĠst ove\nĠheaven s\nĠP urchase\nĠher d\nĠfundra iser\nDig ital\n5 000\nĠprop onents\n/ âĢĭ\nĠj elly\nĠVis a\nĠmon ks\nĠadvance ment\nĠW er\nĠ18 7\ne us\nert ility\nĠfet al\nĠ19 36\nL o\nĠout fits\nĠstair case\nb omb\nĠcustom ized\ncl air\nT ree\nĠm apped\nĠConsider ing\nĠTor res\nĠmeth yl\nĠapprox imate\nĠdo om\nĠHans en\nĠc rossover\nĠstand alone\nä ¼\nĠinv ites\nĠgra veyard\nĠh p\nDonald Trump\nĠesc ort\nG ar\nĠpredec essors\nĠh ay\nĠen zyme\nĠStra ight\nvis ors\nI ng\nane ously\nĠApp lied\nĠf ec\nĠDur ant\nĠout spoken\nor b\nĠz eal\nĠdisgr ace\n' ).\nĠChe ng\n28 9\nĠRen a\nĠSu icide\n29 4\nĠout raged\nĠNew man\nĠN vidia\nĠA ber\nĠB ers\nĠrecre ation\nWind ow\nĠD P\nx e\nĠped oph\nĠfall out\nambo o\nĠpresent ations\nĠApp s\nĠh tml\n3 45\nĠX XX\nĠrub bing\nĠLe ather\nĠhum idity\nse ys\nest ablished\nĠUn its\n64 6\nĠrespect able\nA uto\nĠthri ving\nĠInn ovation\nang s\nExt ra\nreg ulation\n29 8\np ick\nEx amples\nĠC J\nAtt ack\nĠdr acon\nL T\nĠstick er\nre rs\nĠsun ny\nI ss\nreg ulated\nd im\nĠAb stract\nĠhus bands\nOff ice\nom ination\nit ars\nAN GE\nasc al\nĠK ris\nĠInf antry\nĠm alf\nĠA the\nĠR ally\nbal anced\n................ ........\nOU P\nĠmole cule\nmet ics\nĠSpl it\nĠInstruct ions\nĠN ights\nc ards\nĠt ug\nĠcon e\nå Ń\nĠt x\nĠDisc ussion\nĠcatast rophe\npp e\ng io\nĠcommun ism\nĠhal ted\nĠGu ant\ncle an\nĠSc hed\nĠK anye\nĠw ander\nĠSer iously\nĠ18 8\nenn ial\nf ollow\nproduct ive\nĠFl ow\nĠS ail\nĠc raw\nĠsim ulations\nor u\nang les\nĠN olan\nĠmen stru\n4 70\nĠ20 7\naj a\nĠcas ually\nboard ing\nĠ2 22\nov y\nĠN umbers\num at\nO E\n28 7\nĠCle mson\nĠcert s\nĠsl id\nĠT ribe\nĠto ast\nĠfort unes\nĠf als\nĠComm ittees\nĠg p\nĠf iery\nĠN ets\nĠAn ime\nPack age\nĠComp are\nl aughter\nin fect\nĠatroc ities\nĠjust ices\nĠins ults\nĠVern on\nĠsh aken\nĠperson a\nest amp\n36 7\nbr ain\nĠexperiment ing\nK en\nĠElect ronics\nĠ16 1\ndom ain\nĠgraph ical\nb ishop\nĠwho pping\nĠEv angel\nĠadvertis ers\nĠSpe ar\nĠb ids\nĠdestro ys\nut z\nĠunders c\nĠAD D\nĠan ts\nĠC um\nipp les\nĠF ill\nĠgl anced\nĠind icted\nĠE ff\nĠmis con\nĠDes ktop\nĠab ide\nãĥ Ģ\nĠI o\nĠC oul\nĠcaps ule\nĠCh rys\nM ON\nĠund es\nĠI RA\nĠc itation\nĠdict ate\nĠNet works\nĠConf lict\nĠSt uff\nx a\nis ec\nĠChem istry\nĠquarter ly\nWilliam s\nan an\nO pt\nĠAlexand ria\nout heastern\nĠSpring field\nĠBlack s\nĠge ography\n24 2\nĠut most\nĠEx xon\nab outs\nE VA\nĠEn able\nĠBar r\nĠdisag reed\nĠCy prus\nĠdement ia\nĠlab s\nĠubiqu itous\nĠLO VE\nĠconsolid ated\ns r\nĠcream y\nĠTim ber\nReg ardless\nĠCert ificate\nĠ\" ...\nogen ous\nCapt ain\nĠinsult ing\nĠSor os\nĠInst r\nĠBulgar ia\nbet ter\nĠsuck ing\nĠDavid son\nat z\nĠcoll ateral\ng if\nĠplag ued\nĠC ancel\nĠGard ner\nR B\nĠsix teen\nRem ove\nur istic\nc ook\nR od\nĠcompr ising\nf le\n) âĢĶ\nĠVik ing\ng rowth\nagon al\nĠsr f\naf ety\nm ot\nN early\nst own\nĠF actor\nĠautom obile\nĠproced ural\nm ask\namp ires\nĠdisapp ears\nj ab\n3 15\nĠ19 51\nne eded\nĠd aring\nle ader\nĠp odium\nĠun healthy\nĠm und\nĠpy ramid\noc re\nĠkiss ed\nĠdream ed\nĠFant astic\nĠG ly\nå Ĭ\nĠgreat ness\nĠsp ices\nĠmet ropolitan\nĠcomp uls\ni ets\n101 6\nĠSh am\nĠP yr\nfl ies\nĠMid night\nĠswall owed\nĠgen res\nĠL ucky\nĠRew ards\nĠdisp atch\nĠI PA\nĠApp ly\nĠa ven\nal ities\n3 12\nth ings\nĠ( ).\nĠm ates\nĠS z\nĠC OP\nol ate\nO FF\nĠre charge\nc aps\nĠYork er\nic one\nĠgal axies\nile aks\nD ave\nĠP uzz\nĠCelt ic\nĠA FC\n27 6\nĠS ons\nĠaffirm ative\nH or\nĠtutorial s\nĠC ITY\nĠR osa\nĠExt ension\nSer ies\nĠf ats\nĠr ab\nl is\nĠun ic\nĠe ve\nĠSp in\nĠadul thood\nty p\nĠsect arian\nĠcheck out\nĠCy cl\nS ingle\nĠmart yr\nĠch illing\n88 8\nou fl\nĠ] ;\nĠcongest ion\nm k\nĠWhere as\nĠ19 38\nur rencies\ner ion\nĠbo ast\nĠPat ients\nĠch ap\nĠB D\nreal DonaldTrump\nĠexam ines\nh ov\nĠstart ling\nĠBab ylon\nw id\nom ew\nbr ance\nĠOd yssey\nw ig\nĠtor ch\nĠV ox\nĠMo z\nĠT roll\nĠAn s\nSimilar ly\nĠF ul\n00 6\nUn less\nĠAl one\nst ead\nĠPub lisher\nr ights\nt u\nĠDoes n\nĠprofession ally\nĠcl o\nic z\nĠste als\nĠ á\n19 86\nĠst urdy\nĠJoh ann\nĠmed als\nĠfil ings\nĠFr aser\nd one\nĠmult inational\nĠf eder\nĠworth less\nĠp est\nYes terday\nank ind\nĠg ays\nĠb orne\nĠP OS\nPict ure\nĠpercent ages\n25 1\nr ame\nĠpot ions\nAM D\nĠLeban ese\nĠr ang\nĠL SU\nong s\nĠpen insula\nĠCl ause\nAL K\noh a\nĠMac Book\nĠunanim ous\nĠl enders\nĠhang s\nĠfranch ises\nore rs\nĠUp dates\nĠisol ate\nand ro\nS oon\nĠdisrupt ive\nĠSur ve\nĠst itches\nĠSc orp\nĠDomin ion\nĠsupp lying\nAr g\nĠtur ret\nĠL uk\nĠbr ackets\n* )\nĠRevolution ary\nĠHon est\nĠnot icing\nĠSh annon\nĠafford ed\nĠth a\nĠJan et\n! --\nĠNare ndra\nĠPl ot\nH ol\nse ver\ne enth\nĠobst ruction\nĠ10 24\nst aff\nj as\nor get\nsc enes\nl aughs\nĠF argo\ncr ime\nĠorche str\nĠde let\nili ary\nrie ved\nĠmilit ar\nĠGreen e\nâĹ ı\nãģ ¦\nĠGu ards\nĠunle ashed\nĠWe ber\nĠadjust able\nĠcal iber\nĠmotiv ations\nĠÃ ł\nm Ah\nĠL anka\nhand le\nĠp ent\nĠR av\nĠAng ular\nĠK au\numb ing\nĠphil anthrop\nĠde hyd\nĠtox icity\ne er\nĠY ORK\nw itz\nå ¼\nĠI E\ncommun ity\nĠA H\nĠret ali\nĠmass ively\nĠDani els\nĠD EL\nĠcar cin\nUr l\nĠrout ing\nĠNPC s\nĠR AF\nry ce\nĠwa ived\nĠGu atem\nEvery body\nĠco venant\nĠ17 3\nĠrelax ing\nĠqu art\nal most\nĠguard ed\nĠSold iers\nĠPL AY\nĠout going\nL AND\nĠre write\nĠM OV\nĠIm per\nĠS olution\nĠphenomen al\nĠl ongevity\nĠimp at\nĠN issan\nir ie\nĠod or\nĠZ ar\nok s\nĠmilit ias\nĠSP EC\nĠtoler ated\nars er\nĠBrad ford\n+ ,\nĠsur real\ns f\nCan adian\nĠresemb lance\nĠcarbohyd rate\nVI EW\nĠaccess ory\nme al\nlarg est\nieg el\nSome one\nĠtoug hest\nos o\nĠfun nel\nĠcondemn ation\nlu ent\nĠw ired\nĠSun set\nJes us\nĠP ST\nĠP ages\nĠTy coon\nĠP F\nĠselect ions\nĠ à¤\npart isan\nĠhigh s\nĠR une\nĠcraft s\nle ad\nĠParent s\nĠre claim\nek er\nĠAll ied\nae per\nĠlo oming\nĠbenefic iaries\nĠH ull\nStud ents\nJew ish\nd j\nĠp act\ntem plate\nĠOffic ials\nĠBay lor\nĠhe mp\nĠyouth s\nĠLevel s\nĠX iao\nĠC hes\nĠende avor\nĠRem oved\nĠhipp ocamp\nH ell\nãĤ Ĭ\n80 5\nĠd inosaur\nĠWr ath\nĠIndones ian\nĠcalcul ator\nĠD ictionary\nĠ4 20\nĠM AG\n( _\n! ,\nt arians\nĠrestrict ing\nrac use\nĠweek day\nOU NT\nĠsh rugged\nleg round\nĠb ald\nĠDo ctors\nĠt outed\nĠMax well\nĠ2 14\nĠdiplom at\nĠrep ression\nĠconstitu ency\nv ice\nr anked\nĠNap oleon\ng ang\nĠFore ver\nt un\nĠbul b\nĠPD T\nĠC isco\nV EN\nĠres umed\nSte ven\nĠManit oba\nĠfab ulous\nĠAg ents\n19 84\nĠam using\nĠMyster ies\nĠor thodox\nfl oor\nĠquestion naire\nĠpenet rate\nĠfilm makers\nĠUn c\nĠst amped\nĠth irteen\nĠout field\nĠforward ed\nĠapp ra\nĠa ided\nt ry\nĠunf ocused\nĠL iz\nĠWend y\nĠSc ene\nCh arg\nĠreject s\nĠleft ist\nĠProv idence\nĠBr id\nreg n\nĠprophe cy\nĠL IVE\n4 99\nĠfor ge\nĠF ML\nĠintrins ic\nĠF rog\nĠw ont\nĠH olt\nĠfam ed\nCL US\naeper nick\nĠH ate\nĠC ay\nĠregister ing\nort ality\nrop y\nocaly ptic\na an\nn av\nĠfasc ist\nIF IED\nĠimpl icated\nĠRes ort\nĠChand ler\nĠBr ick\nP in\nys c\nUs age\nĠHel m\nus ra\nâĺħ âĺħ\nĠAb bas\nĠunanim ously\nĠke eper\nĠadd icted\n?? ?\nĠhelm ets\nĠant ioxid\naps ed\n80 8\ngi ene\nĠwa its\nĠmin ion\nra ved\nĠP orsche\nĠdream ing\nĠ17 1\nĠC ain\nĠun for\nass o\nĠConfig uration\nk un\nhard t\nĠn ested\nĠL DS\nL ES\nĠt ying\nen os\nĠc ue\nĠMar qu\nsk irts\nĠclick ed\nĠexp iration\nĠAccording ly\nĠW C\nĠbless ings\nĠaddict ive\nĠN arr\ny x\nĠJagu ars\nĠrent s\nĠS iber\nĠt ipped\nous se\nĠFitz gerald\nĠhier arch\nout ine\nĠwa velength\n> .\nch id\nĠProcess ing\n/ +\nr anking\nE asy\nĠConst ruct\nĠt et\nins ured\nH UD\nĠqu oting\nĠcommun icated\nin x\nĠin mate\nĠerect ed\nĠAbs olutely\nĠSure ly\nĠun im\nĠThr one\nhe id\nĠcl aws\nĠsuper star\nĠL enn\nĠWh is\nU k\nab ol\nĠsk et\nĠN iet\nĠper ks\nĠaff inity\nĠopen ings\nphas is\nĠdiscrim inate\nT ip\nv c\nĠgr inding\nĠJenn y\nĠast hma\nhol es\nĠHom er\nĠreg isters\nĠGl ad\nĠcre ations\nĠlith ium\nĠappl ause\nunt il\nJust ice\nĠTur ks\nĠsc andals\nĠb ake\nt ank\nM ech\nĠMe ans\nĠM aid\nRepublic ans\nis al\nwind ows\nĠSant os\nĠveget ation\n33 8\nt ri\nĠfl ux\nins ert\nĠclar ified\nĠmort g\nĠCh im\nĠT ort\nĠdiscl aim\nmet al\nĠAs ide\nĠindu ction\nĠinf l\nĠathe ists\namp h\nĠe ther\nĠV ital\nĠBu ilt\nM ind\nĠweapon ry\nS ET\nĠ18 6\nad min\ng am\ncont ract\naf a\nĠderiv atives\nĠsn acks\nĠch urn\nE conom\nĠca pped\nĠUnder standing\nĠH ers\nĠI z\nĠd uct\nI ENT\naugh ty\nĠâľ Ķ\nĠN P\nĠsa iling\nIn itialized\nĠt ed\nĠreact ors\nĠL omb\nĠcho ke\nĠW orm\nĠadm iration\nĠsw ung\nens ibly\nĠr ash\nĠGo als\nĠImport ant\nSh ot\nĠR as\nĠtrain ers\nĠB un\nWork ing\nĠhar med\nĠPand ora\nĠL TE\nĠmush room\nĠCH AR\nĠF ee\nĠM oy\nB orn\nol iberal\nĠMart ial\nĠgentle men\nĠling ering\nOffic ial\nĠgra ffiti\nĠN ames\nD er\nĠqu int\nist rate\naze era\nĠNOT ICE\nĠFlore nce\nĠpay able\nĠdep icts\nĠSpe cies\nHe art\nâĶĢâĶĢâĶĢâĶĢ âĶĢâĶĢâĶĢâĶĢ\nĠencl osed\nIncre ases\nD aily\nĠL is\nĠenact ment\nĠB acon\nĠSt eele\ndem and\nĠ18 3\nĠmouth s\nĠstr anded\nĠenhance ment\n01 1\nĠWh ats\nĠhe aled\nen y\nĠR ab\nĠ3 40\nĠLab yrinth\nro ach\nĠY osh\nĠCl ippers\nĠconcert s\nIntern et\n35 5\nĠstick ers\nĠter med\nĠAx e\nĠgrand parents\nFr ance\nĠCl im\nĠU h\nul ic\nĠthr ill\ncent ric\nĠOver view\nĠCond uct\nĠsubstant ive\nĠ18 2\nm ur\nĠstr ay\nĠCo ff\nĠrep etitive\nĠFor gotten\nĠqual ification\new itness\nĠZ imbabwe\nĠsim ulated\nĠJ D\n25 3\nĠW are\nĠun sc\nT imes\nĠsum mons\nĠdis connected\nĠ18 4\nci us\nĠGu jar\nod ka\nĠer ase\nĠTob acco\nelect ed\nĠun cont\nĠShe pard\nĠL amp\nĠalert ed\nĠoper ative\narn a\nu int\nĠneglig ence\nac ements\nĠsup ra\nĠprev ail\nĠSh ark\nĠbel ts\nãģ «\nĠt ighter\nEngine ers\nĠin active\nĠexp onent\nĠWill ie\na ples\nĠhe ir\nĠH its\nian n\nĠS ays\nĠcurrent s\nĠBeng al\nĠar ist\nB uffer\nĠbree ze\nĠWes ley\nCol a\nĠpron oun\nĠde ed\nĠK ling\nĠof t\nĠinf lict\nĠpun ishing\nĠn m\nik u\nOD UCT\n01 4\nĠsubsid y\nĠDE A\nĠHer bert\nĠJ al\nB ank\nĠdef erred\nĠship ment\nB ott\nĠal le\nb earing\nHT ML\nOff line\nĠ2 13\nĠscroll ing\nĠsc anned\nĠLib yan\nĠT OP\nch rom\nd t\ncol umn\nPsy NetMessage\nZ ero\nĠtor so\n0 50\nâķ Ĳ\nĠimp erson\nĠSchw artz\nud ic\nĠpiss ed\nĠS app\n25 7\nĠIS Ps\nog l\nĠsuper vised\nĠad olescent\nĠatt ained\nĠDel ivery\nĠB unny\nĠ19 37\nĠmini ature\nĠo s\nĠ3 70\n60 8\nĠMour inho\nĠinn ate\nĠtem po\nĠN M\nĠFall en\n00 9\nĠprov ocative\nStream er\nĠBened ict\nĠBol she\nĠt urtle\nĠPC B\nĠEqu al\nDirect or\nĠR end\nĠflu ids\nAuthor ities\nĠcous ins\nrequ ency\nĠNeigh bor\ns ets\nsh ared\nChar les\npass word\nĠg ears\nĠ2 11\nĠHard ware\nri ka\nĠup stream\nH om\nĠdisproportion ately\niv ities\nĠund efined\nĠelect rons\nĠcommem or\nEvent ually\nĠ> <\nĠir responsible\n2 18\nĠRe leased\nĠO VER\nĠI GN\nĠB read\nst ellar\nĠS age\ntt ed\ndam age\ned ition\nĠPre c\nĠl ime\nĠconf inement\nĠcal orie\nwe apon\nĠdiff ering\nĠS ina\nm ys\nam d\nĠintric ate\nk k\nĠP AT\nÃ£ o\nst ones\nlin ks\nĠr anch\nSem itic\nĠdifferent iate\nĠS inger\noccup ied\nĠfort ress\nc md\nĠinter ception\nĠAnk ara\nĠre pt\nĠSol itaire\nĠrem ake\np red\nĠd ared\naut ions\nĠB ACK\nRun ning\nĠdebug ging\nĠgraph s\n3 99\nĠNig el\nĠb un\nĠpill ow\nĠprog ressed\nfashion ed\nĠob edience\nER N\nĠrehe ars\nC ell\nt l\nS her\nĠher ald\nĠPay ment\nĠC ory\nĠDe pt\nĠrep ent\nĠWe ak\nuck land\nĠple asing\nĠshort ages\nĠjur ors\nĠK ab\nq qa\nAnt i\nĠw ow\nĠRC MP\nĠt sun\nĠS ic\nĠcomp rises\nĠsp ies\nĠprec inct\nn u\nĠur ges\nĠtim ed\nĠstrip es\nĠB oots\nĠy en\nAdv anced\nĠdisc rete\nĠArch angel\nemploy ment\nD iff\nĠmon uments\nĠ20 9\nwork er\nĠ19 6\nĠI g\nutter stock\nT PS\nJ ac\nĠhomeless ness\nĠcomment ator\nĠrac ially\nf ing\nse ed\nE le\nell ation\nĠeth anol\nĠpar ish\nĠD ong\nĠAw akening\nĠdev iation\nĠB earing\nĠTsu k\nĠrec ess\nĠl ymph\nĠCann abis\nå ľ\nĠNEW S\nĠd ra\nĠStef an\nĠWr ong\nĠS AM\nĠloose ly\nĠinterpre ter\nĠPl ain\nGo vernment\nĠbigot ry\nĠgren ades\nave z\npict ured\nĠmand ated\nĠMon k\nĠPed ro\nĠl ava\n27 4\nĠcyn ical\nĠScroll s\nl ocks\nM p\nĠcon gregation\norn ings\nph il\nĠI bid\nĠf erv\nĠdisapp earing\nĠarrog ant\nsy n\nĠMa ver\nĠSu it\n24 1\nĠab bre\nack ers\nP a\nĠY el\nWhe never\nĠ23 5\nĠV ine\nĠAn at\nĠext inct\nLE T\nĠexecut able\nV ERS\nox ide\nD NA\nĠP rel\nĠresent ment\nĠcompr ise\nĠAv iv\nĠinter ceptions\nĠprol ific\nIN A\nĠEr in\nthough t\n2 19\nĠPsychiat ry\nun ky\nchem ist\nH o\nĠMcC oy\nĠbr icks\nL os\nri ly\nĠUS SR\nĠr ud\nĠl aud\nĠW ise\nĠEmer ald\nĠrev ived\nĠdam ned\nĠRep air\nid em\nct ica\nĠpatri arch\nĠN urs\nme g\nĠcheap est\nre ements\nempt y\nĠCele br\nĠdepri vation\nch anted\nĠTh umbnails\nE nergy\nĠEth an\nĠQ ing\nĠopp oses\nW IND\nv ik\nĠM au\nĠS UB\n66 7\nG RE\nĠVol unte\nnt on\nC ook\nå Ĳ\nes que\nĠplum met\nĠsu ing\nĠpron ounce\nĠresist ing\nĠF ishing\nĠTri als\nĠy ell\nĠ3 10\nĠin duct\nĠpersonal ized\noft en\nR eb\nEM BER\nĠview point\nĠexist ential\n() )\nrem ove\nMENT S\nl asses\nĠev apor\nĠa isle\nmet a\nĠreflect ive\nĠentit lement\nĠdev ised\nmus ic\nasc ade\nĠwind ing\noff set\nĠaccess ibility\nke red\nBet ter\nĠJohn ston\nth inking\nS now\nĠCroat ia\nĠAt omic\n27 1\n34 8\nĠtext book\nĠSix th\nĠ Ø§ÙĦ\nĠsl ider\nĠBur ger\nb ol\nS ync\nĠgrand children\nĠc erv\n+ )\nĠe ternity\nĠtweet ing\nĠspec ulative\nĠpiv otal\nĠW P\nĠT ER\nynam ic\nĠu pl\nĠC ats\nper haps\nĠclass mates\nĠblat ant\n' -\nĠl akh\nant ine\nĠB org\ni om\n/ (\nĠAthlet ic\nĠs ar\nOT A\nĠHoff man\nNever theless\nĠad orable\nĠspawn ed\nAss ociated\nĠDom estic\nĠimpl ant\nĠLux em\nĠK ens\nĠp umps\nĠS AT\nAtt ributes\n50 9\nav our\nĠcentral ized\nĠT N\nĠfresh ly\nĠA chieve\nĠouts iders\nher ty\nĠRe e\nĠT owers\nĠD art\nak able\nĠm p\nĠHeaven ly\nĠr ipe\nĠCarol ine\nry an\nĠclass ics\nĠret iring\nĠ2 28\nĠa h\nĠdeal ings\nĠpunch ing\nĠChap man\nO ptions\nmax well\nvol ume\nĠst al\nĠex ported\nĠQu ite\nĠnumer ical\nB urn\nF act\nĠKey stone\nĠtrend ing\nĠalter ing\nĠAfric ans\n47 8\nĠM N\nĠKn ock\nĠtempt ation\nĠprest ige\nOver view\nĠTrad itional\nĠBah rain\nPriv ate\nĠH OU\nĠbar r\nĠT at\nC ube\nUS D\nĠGrand e\nĠG at\nĠFl o\nĠres ides\nĠind ec\nvol ent\nĠperpet ual\nub es\nĠworld view\nĠQuant um\nĠfil tered\nĠen su\norget own\nERS ON\nĠM ild\n37 9\nOT T\nÃ ¥\nĠvit amins\nĠrib bon\nĠsincere ly\nĠH in\nĠeight een\nĠcontradict ory\nĠgl aring\nĠexpect ancy\nĠcons pir\nĠmon strous\nĠ3 80\nre ci\nĠhand ic\nĠpump ed\nĠindic ative\nĠr app\nĠav ail\nĠLEG O\nĠMar ijuana\n19 85\nert on\nĠtwent ieth\n################ ################\nĠSw amp\nĠval uation\nĠaffili ates\nadjust ed\nĠFac ility\n26 2\nĠenz ymes\nitud inal\nĠimp rint\nS ite\nĠinstall er\nĠT RA\nm ology\nlin ear\nĠCollect ive\nig ating\nĠT oken\nĠspec ulated\nK N\nĠC ly\nor ity\nĠdef er\nĠinspect ors\nappro ved\nR M\nĠSun s\nĠinform ing\nĠSy racuse\nib li\n7 65\nĠgl ove\nĠauthor ize\nâĢ¦âĢ¦âĢ¦âĢ¦ âĢ¦âĢ¦âĢ¦âĢ¦\nĠCru ise\nĠcontract ing\nshe ll\nIF E\nĠJew el\np ract\nĠPhot oshop\nĠKnow ing\nh arm\nĠattract ions\nad an\net us\n01 8\nw agen\nAl t\nĠmultip ly\nĠequ ilibrium\n: {\nĠF ighters\nĠEd gar\nĠfour teen\nGo vern\nĠmis use\nĠab using\nĠancest ry\nram er\n64 4\nĠwor ms\nĠthick er\nĠComb ine\nĠpeas ants\nĠv ind\nĠcon quest\nĠm ocked\nĠc innamon\nĠC ald\nĠGall up\nĠavoid ance\nĠincarn ation\nĠStr at\nĠt asted\nent a\nĠN eal\np ared\nĠtermin ology\nject ion\nScient ists\nĠIN S\nĠDe e\nĠdirect ories\nR oad\nĠSh ap\nbr ight\nĠDirect ors\nĠCol umn\nĠb ob\nĠprefer ably\nĠgl itch\nf urt\nĠe g\nid is\nC BC\nĠsur rendered\nĠtest ament\n33 6\nug gest\nĠN il\nan other\nĠpat hetic\nĠDon na\nĠ2 18\nĠA very\nĠwhis key\nĠf ixture\nĠCon quest\nĠbet s\nO cc\nĠLe icester\n] .\"\nĠ) );\nĠfl ashes\n45 6\nĠmask ed\nge bra\nĠcomput ed\nche l\naud er\nĠdefe ats\nĠLiber ation\nĠOs ama\nĠV ive\nCh anges\nCh annel\nĠtar iffs\nĠm age\nĠS ax\nĠinadvert ently\nĠC RE\nĠRe aper\nink y\ngr ading\nĠstere otyp\nĠcur l\nĠF ANT\nĠfram eworks\nM om\nĠAn ch\nĠflav our\ncar bon\nĠperm itting\nlet cher\nĠMo zilla\nĠPark ing\nĠCh amp\nSc roll\nĠmurd erer\nĠrest ed\nĠow es\nĠP oss\nAD D\nIF F\nres olution\nĠMin ing\nĠcompar ative\nD im\nĠneighbour ing\nĠA ST\nĠT oxic\nĠbi ases\nĠgun fire\nur ous\nĠMom ent\n19 83\nĠper vasive\ntt p\nĠNorm ally\nr ir\nS arah\nĠAlb any\nĠun sett\nĠS MS\nip ers\nl ayer\nĠWh ites\nup le\nĠtur bo\nĠLe eds\nĠthat s\nĠMin er\nM ER\nĠRe ign\nĠper me\nĠBl itz\nĠ19 34\nĠintimid ating\nt ube\nĠecc entric\nab olic\nbox es\nĠAssoci ates\nv otes\nĠsim ulate\num bo\naster y\nĠship ments\nFF FF\nan th\nĠseason ed\nĠexperiment ation\nâĸ ł\nlaw s\nMe et\nidd les\nant ics\nR ating\nIS IS\nh ift\nĠfront s\nb uf\n01 7\nĠun att\nĠD il\nle ases\nĠGard ens\n77 7\nt ouch\nve ll\n45 8\nĠ= ====\ns aving\nĠer osion\nĠQu in\nĠearn s\nĠaccomplish ment\nĠWe i\nĠ< [\n____ _\nĠir rig\nĠT eddy\nĠconqu ered\nĠArm ored\nĠassert s\nĠmanip ulating\nr Ã©\nĠtranscript s\nG allery\nĠplot ting\nNe il\nĠbetray al\nload er\nĠS ul\nĠdispl acement\nĠroy alty\nĠW I\nhe it\nĠDev ices\nalle l\nĠmunicipal ities\nĠcan al\nSt ars\nĠU AE\nĠ\" âĢ¦\nĠC U\nab ove\nĠreson ance\nĠguiActive Un\nadd ed\nĠBra ves\nĠI bn\nĠhere by\nĠB RE\nĠshare holder\nĠH ir\nĠJ i\nĠstrange ly\nĠadm ired\nĠpl ight\nĠb achelor\nĠP ole\ncipl inary\nT ony\nĠArmen ian\nĠun man\nĠZion ist\nSt age\nisco ver\nĠautom otive\nĠs idelines\nĠsl ick\nĠRena issance\nĠF UN\nIm ages\nĠH aj\nĠp ing\nĠshort cut\nĠBl vd\nĠLook s\nĠbur sts\nĠcl amp\nĠm ish\nĠsort ing\nĠpatri ot\nĠcorrect ness\nĠScand inav\nĠCaval iers\np ython\naz ar\nĠ3 75\nĠJa une\n40 9\nĠdetrim ental\nĠstab bing\nĠpoison ed\nĠf ountain\noc ent\nor st\nĠMar i\nĠr ains\nĠO vers\nĠInst itution\nud get\nAM Y\nt ale\nĠK R\nĠPr ices\nĠhead aches\nĠlands l\nĠA ura\nBon us\nĠZ hao\nĠH ip\nĠhop s\nĠKurd istan\nĠexplo iting\nry n\nĠhypocr isy\nop ening\nĠgun shot\nĠw ed\ninter stitial\nInter stitial\nĠam en\nBre aking\nĠmarket ed\nW ire\nĠC rowd\nContin ue\nĠK nown\nĠEffect ive\nore an\niz ons\nJose ph\nĠescal ation\nus ername\nĠcur tain\nAT ES\nĠP AR\nĠM iy\nĠcounter fe\nl ene\nĠcont enders\nd aily\nĠAs c\nĠPhill ip\nmost ly\nĠfil ename\nhe ne\nĠresemb ling\nĠst aging\nĠCh loe\nĠw iring\nH on\nĠRen ew\nott age\nĠHy brid\nm uch\nĠstro kes\nĠpolicy makers\nAP TER\nĠArk ham\npl ot\nĠassist ants\nĠde port\nĠSe ga\nĠinflu enza\nĠC ursed\nĠK obe\nĠskin ny\nProv ider\nĠR ip\nĠincrement al\nproduct s\nB F\nĠd ome\nĠC redits\nĠlos ers\nint s\nĠBet ty\nĠTal ent\nĠD AM\nL v\nE ss\nĠd ens\ntem p\nJ udge\nod ic\nĠ' (\nUR ES\nets k\nV O\nĠretrie ved\nĠarchitect s\nÙ ĩ\nĠeth ic\nĠSecond ary\nst ocks\nad ia\nĠ3 25\nĠOp inion\nĠsimultane ous\nĠd izz\nul p\nĠsmugg ling\nipp ery\nR andom\nf acing\nĠD as\nĠstock p\nĠdiscl osures\npo inter\nĠcor al\nĠSe lection\nĠP ike\nival ent\nĠruth less\nĠR im\nĠensu ing\nĠExper iment\nĠcongress man\nĠbelie ver\nĠun specified\nĠM ord\nĠknowledge able\nĠV ERY\nT X\nĠstra ps\nĠtur f\napesh ifter\nĠmar ital\nĠfl ock\nãģ Ĩ\n26 3\nAM ES\nĠOpp osition\nĠtre asures\nĠG OD\nĠmodel ed\nĠWOR LD\nĠ( [\nĠUs age\nH F\nĠ$ (\nuss ed\nĠpione er\nE ight\npar se\nb read\nrit z\nĠMir anda\nĠK ant\n++ )\nore n\nĠprov oked\nĠbre eds\nĠIn cludes\nĠPast ebin\nĠFl ip\nJ ava\nĠbr ink\nĠrum ored\nĠun seen\nĠgar nered\nĠDef in\nal ted\nĠtatt oos\nĠhes itation\nis itions\nĠWe aver\nĠReport ing\nĠtherap ies\nĠconsult ants\nĠresid ual\nĠMal i\nĠRom a\ni ago\nĠRes idents\nub i\nĠremed ies\nĠadapt ive\nĠAl ive\nĠBar cl\nĠwal lets\nc rypt\netermin ation\nĠPel osi\nĠsl ipping\noton in\nĠall iances\npat rick\nir is\nĠor th\nĠPer kins\nĠDe V\nĠG ets\nĠdry ing\nge e\nfore st\nĠFor get\nore m\n33 9\nĠvague ly\nĠD ion\nĠP orn\nĠH OW\nĠp neum\nĠrub ble\nĠT aste\nenc ia\nĠG el\nĠd st\nĠ24 5\nĠMoroc co\ninf lamm\nĠTw ins\nĠb ots\nd aughter\nĠB alk\nĠbre thren\nĠlog os\nĠgo bl\nf ps\nĠsub division\nĠp awn\nĠsquee zed\nĠmor ale\nĠD W\n' \"\nĠkn ot\nook y\nĠdiv isive\nĠboost ed\nch y\nãĥ Ĳ\nif act\nĠnewcom ers\nĠWrest ling\nĠsc outs\nw olves\nR at\nĠnin eteenth\nĠOs borne\nSt ats\nĠem powered\nĠpsych opath\nĠO EM\nugg age\nĠP K\nĠMoh ammad\nP ak\nĠanarch ists\nĠExt ract\nest hes\nĠStock holm\nl oo\nĠG raph\nĠdeploy ing\nĠStr anger\nĠM old\nĠstaff er\nĠdiscount ed\nuck le\nple ase\nĠLand ing\nÃŃ a\nĠ19 3\nĠan te\nĠrep etition\nĠ+ /-\nĠpar ody\nĠlive ly\nAA A\nĠHor us\nĠp its\nind ers\nL OC\nĠVen ice\n40 6\nĠDis cover\nâ Ĩ\nellect ual\nĠp ens\nĠey el\nig uous\nIm pl\nĠj oking\nĠinv al\nĠBel fast\nĠcredit ors\nĠSky walker\nov sky\nĠcease fire\nĠse als\nis oft\n) ).\nĠFel ix\nIT S\nĠt resp\nĠBlock chain\new are\nĠSch war\nen ne\nmount ed\nĠBe acon\nles h\nĠimmense ly\nĠche ering\nEm ploy\nsc ene\nish ly\natche wan\nĠNic olas\nĠdr ained\nĠEx it\nĠAz erb\nj un\nĠflo ated\nu ania\nDe ep\nĠsuper v\nĠmyst ical\nĠD ollar\nĠApost le\nĠR EL\nĠProv ided\nĠB ucks\nãĥ ´\ncut ting\nĠenhance ments\nĠPengu ins\nĠIsa iah\nĠj erk\nĠW yn\nĠst alled\nĠcryptoc urrencies\nĠR oland\nsing le\nĠl umin\nĠF ellow\nĠCap acity\nĠKaz akh\nW N\nĠfin anced\n38 9\nĠt id\nĠcoll usion\nĠMy r\nî Ģ\nSen ator\nĠped iatric\nĠneat ly\nĠsandwic hes\nĠArchitect ure\nĠt ucked\nĠbalcon y\nĠearthqu akes\nqu ire\nF uture\nĠhe fty\né Ĺ\nĠspecial izes\nĠstress es\nĠs ender\nĠmisunder standing\nĠep ile\nĠprov oke\nĠCol ors\nĠdis may\nuk o\n[ _\n58 6\nne utral\nĠdon ating\nĠRand all\nMult i\nĠconvenient ly\nĠS ung\nĠC oca\nĠt ents\nĠAc celer\nĠpart nered\n27 2\nir ming\nĠB AS\ns ometimes\nĠobject ed\nub ric\np osed\nLC S\ngr ass\nĠattribut able\nV IS\nIsrael i\nĠrepe ats\nĠR M\nv ag\nut a\nin ous\nĠin ert\nĠMig uel\næ Ń\nĠHawai ian\nB oard\nĠart ific\nĠAzerb ai\nas io\nĠR ent\nA IN\nĠappl iances\nĠnational ity\nĠass hole\nĠN eb\nĠnot ch\nh ani\nĠBr ide\nAv ailability\nĠintercept ed\nĠcontin ental\nĠsw elling\nĠPers pect\nb ies\n. <\nith metic\nĠL ara\nĠtempt ing\nadd r\nĠoversee ing\ncl ad\nĠD V\nĠGing rich\nĠm un\nĠApp ropri\nĠalter ations\nĠPat reon\nĠha voc\nĠdiscipl ines\nĠnotor iously\naku ya\nier i\n? ).\nĠW ent\nĠsil icon\nĠtre mb\nCont ainer\nK nown\nĠmort ar\nest e\nick a\nAr thur\nĠPre viously\nĠMart y\nĠsp arse\ng ins\nĠin ward\nĠParticip ant\nC opy\nĠM isc\nĠantib iotic\nĠRet ro\nĠel usive\nĠass ail\nĠBatt alion\nĠB ought\nĠdimin ish\nĠEuro pa\ns ession\nĠDanger ous\nies el\nĠdisbel ief\nĠbl asts\next reme\nĠBoy d\nĠProject s\nĠGu ys\nĠunder gone\nĠgr ill\nĠDw ight\nĠ19 7\nUS ER\nĠfiles ystem\nĠcl ocks\nT aylor\nĠwra pper\nĠfold ing\nous and\nĠPhilipp ine\nATION AL\nĠPer th\nĠas hes\nĠaccum ulate\nĠGate way\nSh op\norks hire\nH an\nĠBar rel\nĠLe h\nĠX V\nĠwh im\nĠrep o\nĠC G\nĠM am\nĠincorpor ating\nĠbail out\nĠlingu istic\nĠdis integ\nC LE\nĠcinem atic\nĠF iber\nS yn\nil ion\nĠCom pos\nc hens\nĠne oc\nĠbo iled\nF INE\non o\nun cle\nik en\nĠB M\nÎ ¹\nĠreceipt s\nĠdisp osed\nĠTh irty\nĠR ough\nĠA BS\nĠnot withstanding\noll en\n# $\nĠunrel iable\nĠbl oom\nĠmedi ocre\nĠtr am\nĠTas man\nĠsh akes\nĠmanifest o\nĠM W\nĠsatisf actory\nĠsh ores\nĠcomput ation\nĠassert ions\norm ons\nar ag\nab it\nDem ocrats\nĠL oot\nĠVol ks\nha ired\nĠgrav itational\nS ing\nĠM iz\nĠthro ttle\nĠtyr anny\nĠView s\nĠrob ber\nĠMinor ity\nĠsh rine\nsc ope\npur pose\nĠnucle us\nour cing\nĠUS DA\nĠD HS\nw ra\nĠBow ie\nSc ale\nĠB EL\nx i\nI ter\nĠ( ),\nw right\nĠsail ors\nous ed\nNAS A\nĠPro of\nĠMin eral\nt oken\nĠF D\nR ew\nĠe ll\n6 30\nĠchance llor\nĠG os\nĠamount ed\nĠRec re\nome z\nĠOpt im\nĠOl ive\nĠtrack er\now ler\nĠUn ique\nR oot\nĠmar itime\nĠQur an\nĠAd apt\nĠecosystem s\nĠRe peat\nĠS oy\nĠI MP\nĠgrad uating\nand em\nP ur\nĠRes et\nĠTr ick\nĠPh illy\nĠT ue\nĠMalays ian\nĠclim ax\nĠb ury\nĠcons pic\nĠSouth ampton\nĠFl owers\nĠesc orted\nĠEduc ational\nĠI RC\nĠbrut ally\ne ating\nĠpill ar\nĠS ang\nĠJ ude\nar ling\nĠAm nesty\nĠrem inding\nĠAdminist rative\nhes da\nĠfl ashed\nĠP BS\nper ate\nfe ature\nĠsw ipe\nĠgra ves\noult ry\n26 1\nbre aks\nĠGu er\nĠsh rimp\nĠV oting\nqu ist\nĠanaly tical\nĠtables poons\nĠS OU\nĠresear ched\nĠdisrupt ed\nĠj our\nĠrepl ica\nĠcart oons\nb ians\n} )\nc opy\nG ot\nou ched\nP UT\nĠsw arm\nnot ations\ns aid\nĠreb uilt\nĠcollabor ate\nĠr aging\nĠn ar\nĠdem ographics\nĠD DR\nĠdist rust\noss ier\nĠK ro\nĠpump kin\nĠreg rets\nĠfatal ities\nĠL ens\nĠO le\np d\nĠpupp et\nĠOut look\nĠSt am\nO l\nF air\nU U\nĠre written\nÄ ±\nĠfasc inated\nĠve ctors\nĠtrib unal\nu ay\nĠM ats\nĠCo ins\n[ [\nĠ18 1\nĠrend ers\nĠK aepernick\nĠesp ionage\nĠsum m\nĠd itch\nAcc ount\nĠspread sheet\nĠmut ant\np ast\n40 7\nĠd ye\nĠinit iation\nĠ4 000\nĠpunish able\nĠth inner\nĠKh al\nĠinter medi\nD un\nĠGoth am\nĠeager ly\nĠvag inal\np owers\nV W\nĠWATCH ED\nĠpred ator\nams ung\nĠdispar ity\nĠ[ *\nĠam ph\nĠout skirts\nĠSpir its\nĠskelet al\nÐ »\nĠR ear\nĠissu ance\nĠLog ic\nre leased\nZ Z\nĠB ound\nEnt ry\nĠex its\nis ol\nĠFound er\nĠw re\nĠGreen land\nĠM MO\nt aker\nIN C\nãģ ¾\nĠhour ly\nhen ko\nĠfantas ies\nĠdis ob\nĠdemol ition\nãĥ ĭ\nĠen listed\nrat ulations\nĠmis guided\nĠens ured\nĠdiscour aged\nm ort\nĠfl ank\nĠc ess\nĠreact s\nĠS ere\ns ensitive\nĠSer pent\nass ad\nĠ24 7\nĠcalm ly\nb usters\nĠble ed\nĠSt ro\nĠamuse ment\nĠAntar ctica\nĠs cept\nĠG aw\na q\nason ic\nĠsp rawling\nn ative\natur ated\nĠBattle field\nIV ERS\nE B\nĠG ems\nĠNorth western\nĠFil ms\nĠAut omatic\nĠappre hend\nãģ ¨\nĠgui Name\nĠback end\nĠevid enced\nge ant\n01 2\nĠS iege\nĠexternal To\nĠunfocused Range\nĠguiActiveUn focused\nĠgui Icon\nĠexternalTo EVA\nĠexternalToEVA Only\nF ri\nch ard\nen aries\nĠchief s\nĠc f\nĠH UD\nĠcorro bor\nĠd B\nĠT aken\nĠPat ricia\nra il\nĠCh arm\nĠLiber tarian\nrie ve\nPerson al\nĠO UR\nger ies\nĠdump ing\nĠneurolog ical\nit imate\nĠClint ons\nraft ed\nĠM olly\nĠtermin als\nreg ister\nĠfl are\nĠenc oded\nĠautop sy\np el\nm achine\nĠexempt ions\nĠRoy als\nd istance\nĠdraft s\nĠl ame\nĠC unning\nĠsp ouses\nĠMark ets\nĠCar rier\nĠimp lying\nĠY ak\ns id\nĠl oser\nĠvigil ant\nĠimpe achment\nĠaug mented\nĠEmploy ees\nĠunint ended\ntern ally\nĠW att\nĠrecogn izable\ness im\næ Ŀ\nĠco ated\nr ha\nĠlie utenant\nĠLegisl ation\npub lished\n44 4\n01 3\nĠide ally\nĠPass word\nĠsimpl ify\nĠMet a\nĠM RI\nĠple ading\norgan ized\nhand ler\nĠun ravel\ncor rect\nĠ icy\nĠparan oid\nĠpass er\nĠinspect ions\nof er\nĠHealth care\n28 3\nĠBr ut\niol a\nfor ge\nĠMed ieval\nMS N\nie vers\nĠProgram ming\nå ī\nĠ2 23\nm u\nĠC LE\nug a\nĠsho ppers\nĠinform ative\nĠPl ans\nĠsupplement ation\nĠT ests\nty ard\nocy tes\nĠVeg a\nĠGujar at\nerman ent\nEx cept\nĠL OT\nall a\nĠC umm\nĠO sw\nĠven om\nĠDeb t\nĠD OWN\nĠreun ion\nĠm uc\nĠRel ief\nĠge op\nĠðŁ ĺ\nal ogue\nAn th\nech o\nĠcor ros\nĠrepl ication\nĠBl azing\nĠD aughter\nĠinf lic\nĠLind sey\nÙ Ī\n28 4\nEx it\nĠgl oom\nTA IN\nĠundermin ing\nĠadv ising\nh idden\nĠover flow\nĠg or\nurd ue\nĠe choes\nenh agen\nĠimp uls\nd rug\nc ash\nĠas ync\nĠmir ac\nat ts\np unk\nĠpiv ot\nĠLegisl ative\nĠblog gers\nĠCl aw\ns burg\nd yl\nĠRecomm end\nĠver te\nĠprohib iting\nĠPant her\nJon athan\nĠo min\nĠhate ful\n28 1\nĠOr che\nĠMurd och\ndown s\nĠas ymm\nG ER\nAl ways\nĠinform s\nĠW M\nĠP ony\nĠApp endix\nĠAr lington\nJ am\nĠmedic inal\nĠS lam\nIT IES\nĠre aff\nĠR i\nF G\nS pring\nb ool\nĠthigh s\nĠmark ings\nĠRa qqa\nĠL ak\np oll\nts ky\nĠMort y\nĠDef inition\nĠdeb unk\nend ered\nĠLe one\na vers\nĠmortg ages\nApp arently\nN ic\nha us\nĠTh ousands\nau ld\nĠm ash\nsh oot\nĠdi arr\nĠconscious ly\nH ero\ne as\nĠN aturally\nĠDestroy er\nĠdash board\nserv ices\nR og\nĠmillenn ials\nĠinv ade\n- (\nĠcomm issions\nĠA uckland\nĠbroadcast s\nĠfront al\nĠcr ank\nĠHist oric\nĠrum ours\nCT V\nĠster il\nĠboost er\nrock et\nãĤ ¼\nut sche\nĠP I\nĠ2 33\nĠProdu cer\nĠAnaly tics\nĠinval uable\nĠunint ention\nĠC Y\nĠscrut in\nĠg igg\nĠeng ulf\nĠprolet ariat\nĠh acks\nĠH ew\nar ak\nĠSl ime\nield ing\nag her\nĠEll iot\nĠtele com\nĠ2 19\nult an\nĠAr bor\nĠSc outs\nB an\nĠlifes pan\nĠbl asp\n38 8\nĠjud iciary\nĠContin ental\nask ing\nMc C\nL ED\nĠbag gage\nĠSorce rer\nĠrem nants\nĠGriff ith\nets u\nĠSub aru\nĠPerson ality\ndes igned\nush ima\nagn ar\nĠrec oil\nĠpass ions\n\\ \":\nĠte e\nĠabol ition\nĠCreat ing\nj ac\nĠ19 4\n01 9\nĠpill ars\nric hed\n/ \"\nt k\nĠlive lihood\nĠro asted\nah on\nĠH utch\nass ert\nĠdivid end\nĠkn it\nĠd aunting\nĠdisturb ance\nĠsh ale\nĠcultiv ated\nĠrefriger ator\nL B\nĠN ET\nĠcommercial s\nĠthink ers\n45 5\nĠch op\nB road\nĠsuspic ions\nĠtag ged\nl ifting\nĠsty lish\nĠShield s\nShort ly\nĠt ails\nA uth\nST E\nĠG AME\nĠse ism\nĠK is\nolog ne\nĠcow ork\nĠforc ibly\nĠthy roid\nĠP B\nAN E\nmar ried\nh orse\nĠpoly mer\nĠCh al\nod or\nDE BUG\nĠCon text\nĠbl iss\nĠpin point\nĠMat hemat\nleg ram\nĠWeek end\nĠlab elled\nĠb art\nit les\nĠest rogen\nâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ âĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶâĢĶ\n\" '\nĠvis ibly\nĠouts ider\naid a\nAre a\nĠdisse min\nĠdish onest\nĠCl osed\nĠBullet in\nĠRam sey\nsw ord\nĠX I\nour ced\nS ame\n34 6\nĠRe pe\nĠK ou\nc ake\nem is\nC ache\nĠMe aning\nĠEn light\nonom y\nĠmanifest ation\nsw orth\nJ ay\nĠch ore\nÃ¶ r\nD ream\nĠsanction ed\nĠcult urally\nĠA ra\nN av\nĠthe ological\nĠstr ut\nĠV O\nĠHand book\nĠconstruct ing\nĠÂ ¶\nĠBenef its\nĠPsych ological\ns ac\nå ¸\np olicy\nĠMat ters\nĠReport ed\nĠBy te\nĠvit ro\nĠM aiden\nĠl am\nĠJenn ings\nĠgar ment\nĠRut gers\nĠStaff ord\nĠWell ington\nĠinter mitt\nĠn pm\nĠord eal\nĠplug ged\no oming\nin ished\nfram ework\nĠtim ber\nĠc ass\nĠ8 50\nil ess\nĠRed ux\n7 68\nSt re\nĠsurpass ed\nw hel\nĠparalle ls\nĠve il\nĠG I\nĠR EST\nĠread iness\ns ort\nĠmod ifying\nĠSl ate\nru ff\nĠmar ble\nĠinf rared\nĠaud itor\nĠFANT ASY\nĠP overty\nĠS PD\nĠ\" (\nK y\nRA Y\nĠexecut ions\nĠBever ly\nĠMarx ism\nĠBur st\nĠK ali\nest ones\nClear ly\nE ll\nãģ §\nĠProceed ings\nT oken\nIF IC\nÃ± a\nCent ral\nĠH aley\nĠD rama\nĠform ations\nOR N\nBook s\nĠdom inating\nĠFly ers\nĠCompan ion\nĠdiscipl ined\nĠYug oslav\nĠSpell s\nĠv engeance\nĠland lords\nL en\nĠO gre\nano ia\nĠpier cing\nĠcon greg\nĠscore r\nob ia\nĠnic kel\nĠLear ns\nĠre jo\nĠmaster piece\nFl ash\nĠinhab ited\nĠOpen GL\nĠD ud\nĠI CO\nĠar ter\nĠpl ur\nĠmaster y\nĠlong standing\nst ed\nĠw ines\nĠtelev ised\nĠSh rine\nĠBay ern\nĠâ ĵĺ\nĠencl osure\nj ohn\nĠprophe ts\nĠRes urrection\nĠOrd ers\nĠun even\nr als\nĠd wind\nĠL ah\nĠSl oven\n37 8\nĠins istence\naff le\nĠCl one\nĠhard ship\nĠCongress man\nĠple ad\nĠreview ers\nĠc ured\nĠ19 35\nas ley\nf ake\nĠTh inking\nyd ia\nP ART\nĠD ota\no it\nĠwh ipped\nĠb ouncing\nĠHispan ics\ncom ings\nĠcann abin\nĠCh ambers\nĠZ ack\nOption al\nĠco ats\nĠprow ess\nĠNort on\nĠplain ly\nĠfre ight\nĠinhib ition\nĠcl am\nĠ30 3\nke f\nale igh\nL uke\nĠpsych o\nator ium\nM ED\nĠtreat ies\nĠind isc\nĠd c\nOP S\nĠresil ient\nĠInter state\nĠsl ack\nĠmund ane\nĠestab lishes\n35 9\nĠstr ained\nĠn ond\nS us\nĠcast e\nar ate\nie ving\nĠunfair ly\nĠpars er\non ial\nurs ive\nV ia\nĠOtt o\nĠAuthor ities\nstro ke\nK R\nĠMer cy\nĠfurn ished\nĠout set\nĠmet ic\n19 82\nolith ic\nĠT ent\nog ical\nĠA ircraft\nĠh ides\nĠBec ame\nĠeduc ators\nre aching\nĠvol atility\nĠtodd ler\nĠNAS CAR\nĠTw elve\nĠHigh lights\nĠgra pe\nĠspl its\nĠpe asant\nĠre neg\nĠMS I\nTem p\nst ars\nĠtre k\nĠHy de\nb inding\nĠreal ism\nĠox ide\nĠH os\nĠmount s\nĠbit ing\nĠcollaps ing\nĠpost al\nĠmuse ums\nĠdet ached\nĠrespect ing\nĠmonop ol\nĠwork flow\nĠC ake\nTem plate\nĠOrgan isation\nĠpers istence\n36 9\nC oming\nB rad\nĠredund ant\nĠG TA\nĠb ending\nĠrev oked\nĠoff ending\nĠfram ing\nĠprint f\nComm un\nmem bers\nOut side\nĠconst rued\nĠc oded\nF ORE\nĠch ast\nCh at\nInd ian\nĠY ard\n? !\"\nĠP orts\nĠX avier\nĠR ET\n' .\"\nĠBo at\niv ated\nich t\numer able\nD s\nĠDun n\nĠcoff in\nĠsecure ly\nĠRapt ors\nĠB es\nInstall ation\nĠin ception\nĠHealth y\nend ants\nĠpsych ologists\nĠShe ikh\nc ultural\nĠBlack Berry\nsh ift\nF red\noc he\nĠc akes\nĠS EO\nĠG ian\nĠAs ians\nog ging\ne lement\nĠpund its\nĠV augh\nĠG avin\nĠh itter\nĠdrown ed\nĠch alk\nĠZ ika\nĠmeas les\n80 2\nâĢ¦ ..\nĠAW S\n] \"\nĠdist ort\nĠM ast\nĠantib odies\nĠM ash\nMem ory\nĠUg anda\nĠPro b\nĠvom iting\nĠTurn s\nĠoccup ying\nĠev asion\nĠTher apy\nĠprom o\nĠelect r\nĠblue print\nĠD re\npr iced\nĠDep ot\nĠallev iate\nĠSom ali\nm arg\nn ine\nĠnostalg ia\nĠShe pherd\nĠcaval ry\nĠtor ped\nĠBlood y\nx b\nĠs ank\nĠgo alt\nreport print\nembed reportprint\nclone embedreportprint\nĠIn itially\nĠF ischer\nĠnot eworthy\nc ern\nĠin efficient\nraw download\nrawdownload cloneembedreportprint\nc ation\nĠD ynasty\nl ag\nD ES\nĠdistinct ly\nĠEston ia\nĠopen ness\nĠg ossip\nru ck\nW idth\nĠIb rahim\nĠpet roleum\nĠav atar\nĠH ed\nath a\nĠHog warts\nĠc aves\n67 8\nĠsafegu ard\nĠM og\niss on\nĠDur ham\nsl aught\nĠGrad uate\nĠsub conscious\nĠEx cellent\nĠD um\n---- -\nĠp iles\nĠW ORK\nĠG arn\nĠF ol\nĠAT M\nĠavoid s\nĠT ul\nĠble ak\nEL Y\niv ist\nlight ly\nP ers\nĠD ob\nĠL S\nĠins anity\nÎ µ\natal ie\nEn large\nĠtw ists\nĠfault y\nĠpir acy\nĠimp over\nĠrug ged\nĠF ashion\nĠs ands\n' ?\nsw ick\nĠn atives\nĠhe n\nĠNo ise\nãĥ Ĺ\nĠg reens\nĠfree zer\nĠd ynasty\nĠFather s\nĠNew ark\nĠarchae ological\nĠo t\nob ar\nĠblock ade\nĠall erg\nL V\nĠdeb it\nĠR FC\nĠMil ton\nĠPress ure\nĠwill ingly\nĠdisproportion ate\nĠopp ressive\nĠdiamond s\nĠbelong ings\n19 70\nĠbell s\nĠimperial ism\nĠ2 27\nĠexpl oding\nĠE clipse\nĠ19 19\nĠr ant\nĠnom inations\n34 7\nĠpeace fully\nric a\nĠF UCK\nĠvib ration\nmal ink\nĠro pes\nĠIv anka\nĠBrew ery\nĠBook er\nĠOw ens\ngo ers\nServ ices\nĠSn ape\nĠ19 1\n39 5\nĠ2 99\njust ice\nĠb ri\nĠdisc s\nĠprom inently\nĠvul gar\nĠsk ipping\nl ves\nĠtsun ami\n37 4\nĠU rug\nĠE id\nrec ated\np hen\nĠfault s\nĠStart ed\n9 50\nĠp i\nĠdetect or\nĠbast ard\nĠvalid ated\nSpace Engineers\nOUR CE\nĠ( ~\nĠuns ur\nĠaff irmed\nĠfasc ism\nĠres olving\nĠCh avez\nĠC yn\nĠdet ract\nL ost\nĠrig ged\nĠhom age\nĠBrun o\n55 5\nec a\nĠpress es\nĠhum our\nĠsp acing\nĠ' /\nolk ien\nC oun\nOP ER\nT re\nS on\nĠCambod ia\nier re\nm ong\no zy\nĠliquid ity\nĠSov iets\nĠFernand o\nĠ2 29\nĠsl ug\nĠCatal an\nelect ric\nĠsc enery\nĠH earth\nĠconst rained\nĠgoal ie\nĠGu idelines\nĠAm mo\nĠPear son\nĠtax ed\nĠfet us\nResp onse\nĠAlex is\nth ia\nG uy\nĠrecon struct\nĠextrem es\nĠconclud ing\nĠP eg\nook s\nĠded uctions\nR ose\nĠground breaking\nĠT arg\nãĥ ģ\nĠRe ve\nres ource\nĠmo ons\nĠelectrom agnetic\nĠamid st\nĠVik tor\nN ESS\nB ACK\nĠcomm ute\nĠAna heim\nĠfluct uations\n6 40\nĠnood les\nĠCop enhagen\nĠT ide\nĠGri zz\nĠS EE\nĠpip elines\nĠsc ars\nend o\nag us\nĠE TF\n/ #\nĠBec ome\n44 8\nĠvis c\nĠRecomm ended\nĠj umper\nĠcogn ition\nĠassass in\nĠwitness ing\nĠSet up\nĠl ac\nv im\nIS M\np ages\nSS L\n35 8\nĠad ject\nindust rial\nl ore\ncher y\nĠgl itter\nĠc alf\nFlor ida\nĠspoil ers\nĠsucceed s\nĠch anting\nĠslog ans\nĠTr acy\nVis it\nrol ogy\nĠm ornings\nĠline age\nĠs ip\nĠintense ly\nĠflour ish\nĠSle eping\nĠF em\nor por\nĠK lan\nĠDar th\nh ack\nĠNi elsen\nĠtum ors\nĠprocure ment\nĠY orkshire\nĠra ided\nK Y\nAn na\nĠ// [\nĠDis order\nĠMust ang\nĠW en\nĠTry ing\ns q\nĠdeliver ies\nĠshut ter\nĠcere bral\nĠbip olar\nĠC N\nl ass\nj et\nĠdeb ating\n> :\nĠe agle\ngr ades\nĠD ixon\nUG C\nM AS\nĠDr aco\nĠMach ines\naff er\nĠem an\nÂ ²\npr on\nĠG ym\nĠcompar atively\nĠTrib unal\nPR O\nĠle x\nĠfert ile\nĠdep ressing\nĠsuperf icial\ness ential\nĠHun ters\ng p\nĠprom inence\nL iber\nĠAn cest\note chnology\nĠm ocking\nĠTra ff\nĸ ļ\nMed ium\nI raq\nĠpsychiat rist\nQuant ity\nĠL ect\nĠno isy\n5 20\nG Y\nĠsl apped\nĠM TV\nĠpar a\np ull\nMult iple\nas her\nĠn our\nĠSe g\nSpe ll\nv ous\nord ial\nSen ior\nĠGold berg\nĠPl asma\nne ed\nĠmess enger\nere t\nĠteam ed\nĠliter acy\nĠLe ah\nĠD oyle\nĠem itted\nU X\nĠev ade\nĠm aze\nĠwrong ly\nĠL ars\nĠstere otype\nĠpled ges\nĠarom a\nĠM ET\nĠac re\nĠO D\nĠf f\nĠbrew eries\nĠH ilton\nund le\nĠK ak\nĠThank fully\nĠCan ucks\nin ctions\nĠApp ears\nĠco er\nĠundermin ed\nro vers\nAnd re\nĠbl aze\num ers\nĠfam ine\namp hetamine\nulk an\nAm ount\nĠdesper ation\nwik ipedia\ndevelop ment\nĠCor inth\nuss ia\nJack son\nL I\nN ative\nR s\nOh io\nĠKath leen\nF ortunately\nĠattend ant\nĠPre ferred\nĠDid n\nĠV s\nM is\nĠrespond ent\nĠb oun\nst able\nĠp aved\nĠunex pl\nĠChe ney\nL M\nĠC ull\nbl own\nĠconfront ing\noc ese\nserv ing\nW i\nĠLith uania\nann i\nĠst alk\nh d\nĠv ener\nAP H\nynchron ous\nUR R\num ably\nhist oric\nH alf\nH ay\nĠresil ience\nspe ction\nĠabandon ing\nO bs\nĠDeb bie\nĠgrad ient\nĠPl aint\nĠCan al\nAR CH\nĠexpans ive\nĠfun g\nĠb ounced\nU nd\nĠprec autions\nĠclar ification\nĠd agger\nĠgri ps\nĠÂ µ\nĠRiver a\nĠUnd ead\nis ites\nĠFIR ST\nÃ± o\naud i\nĠhost ages\nĠcompl iant\nĠal umni\nSe ven\nĠcyber security\ne ither\nCol lect\nĠinvari ably\nĠS oci\nĠlaw maker\nĠa le\nĠPerson ally\nN azi\nĠcustom ization\nĠPro c\nĠSask atchewan\neat uring\nĠsp ared\nĠdiscontin ued\nĠcomput ational\nĠMotor ola\nĠsuprem acist\ngovernment al\nĠparad ise\nĠDown ing\nĠNik on\nĠcat alyst\nber ra\nTor onto\n8 75\nbet a\nĠMac ron\nĠunreal istic\nve ctor\nĠVeh icles\nit iveness\nĠR V\nĠCol bert\ns in\no ji\nent in\nĠKr ish\nhell o\nff ield\nok y\nĠT ate\nĠmap le\nĠa ids\nchem ical\n33 4\nn uts\nĠWar p\nĠx x\nĠRob b\numer ous\n_- _\nft ime\nĠV W\nĠw inger\nĠD ome\nt ools\nĠP V\nĠGe orgetown\nĠg eared\nĠjihad ists\nĠc p\nĠster oids\nM other\ncler osis\nĠDR M\nnes ia\nĠl inger\nĠimm ersive\nĠC OUN\nĠoutwe igh\nens ual\nB and\nĠtransform s\nmat ched\nps ons\nĠJud icial\nf actor\nĠrefer ral\nĠodd ly\nĠW enger\nB ring\nĠB ows\n60 2\nIC LE\nĠl ions\nĠAcad emic\nĠTh orn\nĠRa ider\nkef eller\nSt orage\nL ower\nĠOr t\nĠEqu ality\nAL T\nĠS OC\nT ypes\nĠl yn\nĠAss et\nco at\nTP P\nC VE\nĠPione er\napp lication\nMod ern\nĠH K\nEn vironment\nAl right\nR ain\nIP P\nĠShi ite\nĠm ound\nĠAb ilities\ncond ition\nSt aff\nĠcompet ence\nĠM oor\nĠDi ablo\nĠwith held\nĠost ensibly\nĠB rom\nĠms g\nĠden omin\nĠRef erences\nĠF P\nĠplun ged\nĠp amph\nm oving\ncent ral\nĠdown right\nĠf ading\nT al\nT yp\nĠTh y\nuk es\nit he\nĠo ve\nĠbatt led\nĠseaf ood\nĠfig ur\nĠR D\nc rop\nĠsqu ads\n{ \\\nà ¹\nĠE h\nĠinterview ing\nĠQ in\nĠas piring\nPL IC\nĠcla uses\nĠG ast\nĠN ir\nĠl uggage\nĠh ose\nĠsystem d\nĠdesc ending\nĠRev ised\nĠR ails\nal ign\n70 9\n33 7\nĠf ug\ncharg ing\nt ags\nĠut er\nk ish\nWAR NING\n49 0\nprof its\nĠvoy age\nĠa ce\nĠV anguard\nĠT anks\nĠM uk\nĠ2 26\nS afe\nAr mor\nĠvolcan ic\nĠwom b\nĠM IL\nĠbegin ner\nĠRec ogn\nĠA AP\nPL AY\n) !\nĠdetect ing\nc n\nĠbre aches\nBas ically\nĠP ag\nĠMunicip al\nĠInd ie\nĠL af\nĠDis able\nĠOl son\nĠrest rained\nĠrul ings\nĠhum ane\nev ents\nĠCinem a\ndisplay Text\nĠH atch\naction Date\nonna issance\nĠassault ing\nĠL ug\nCH AT\nĠvig orous\nĠPer se\nĠintoler ance\nĠSnap chat\nĠSh arks\nĠd ummy\nĠDi agn\nĠGu itar\nim eters\n40 3\nRE G\nA x\nĠsepar ates\nĠMah m\nĠt v\nj ah\nO OL\nC irc\nĠWinds or\nuss ian\nĠintu ition\nĠdis dain\nĠDon ovan\nĠ2 21\nE mb\nĠcondem ning\nĠgener osity\nzz y\nĠpant ies\nĠPre vent\nAction Code\nAN A\n34 2\nexternal ActionCode\nĠspec ifying\nĠcryst all\nJ ere\nĠru pt\nĠApp rentice\nĠprof iling\nÐ º\nSt rike\nĠsid eline\nĠoblig ated\nĠocc ult\nĠbureaucr atic\nant ically\nrupt ed\nneg ative\nĠEthiop ia\nĠC ivic\nĠins iders\nel igible\nĠTV s\nĠB AR\nĠT I\ni ologist\nĠA IR\nĠsubstit uted\nAr ab\nĠS aul\nĠY og\np rem\nĠbuild ers\nĠstation ary\nĠdoubt ful\nĠvig orously\nĠthr illing\nPh ysical\nĠCare y\nĠHyd ra\ngeon ing\nĠS ly\ny ton\nĠborrow ers\nĠPark inson\nĠ ë\nĠJama ica\nĠsat ir\nĠinsurg ents\nĠF irm\nĠis ot\nĠK arn\nour ning\nak ens\ndoc s\nl ittle\nĠMon aco\nCL ASS\nTur key\nL y\nĠCon an\nass ic\nĠstar red\nĠPac ers\net ies\nĠt ipping\nM oon\nĠR w\ns ame\nĠcav ity\nĠgo of\nĠZ o\nSh ock\num mer\nĠemphas izes\nĠreg rett\nĠnovel ty\nĠen vy\nĠPass ive\nr w\n50 5\nĠind ifferent\nĠR ica\nĠHim self\nĠFred die\nĠad ip\nä¸ Ģ\nĠbreak out\nĠhur ried\nĠHu ang\nĠD isk\nĠro aming\n?????- ?????-\nU V\nĠRick y\nĠS igma\nĠmarginal ized\nĠed its\nĠ30 4\nmem ory\nĠspec imen\n29 3\nãģ ¯\nĠvert ically\nĠaud ition\nĠHe ck\nĠc aster\nĠHold ings\nad al\nĠC ron\nĠL iam\nĠdef lect\nP ick\nĠDeb ug\nRE F\nĠvers atility\not hes\nclass ified\nĠMah ar\nĠH ort\nC ounter\nst asy\nnot iced\n33 1\nĠSh im\nf uck\nĠB ie\nĠair ing\nĠPro tein\nĠHold ing\nĠspect ators\nili ated\nĠThat cher\nn osis\nãĥ¼ ãĥ³\nTe le\nB oston\nĠTem pl\nst ay\nĠdecl arations\n47 9\nVol ume\nĠDesign er\nĠOver watch\nid ae\nĠon wards\nĠn ets\nĠMan ila\npart icularly\nĠpolit ic\no other\nĠport raits\nĠpave ment\nc ffff\nĠs aints\nĠbegin ners\nES PN\nĠshort comings\nâķĲ âķĲ\nĠcom et\nĠOrgan ic\nqu el\nĠhospital ized\nBre ak\nĠpe el\ndyl ib\nasp x\nur ances\nĠT IM\nP g\nĠread able\nĠMal ik\nĠm uzzle\nĠbench marks\nd al\nĠV acc\nĠH icks\n60 9\nĠB iblical\nhe ng\nĠover load\nĠCivil ization\nĠimm oral\nĠf ries\nãĤ Ĵ\nĠreprodu ced\nĠform ulation\nj ug\nire z\ng ear\nĠco ached\nMp Server\nĠS J\nĠK w\nIn it\nd eal\nĠO ro\nĠL oki\nĠSong s\nĠ23 2\nĠLou ise\nasion ally\nĠunc ond\nolly wood\nĠprogress ives\nĠEn ough\nĠDo e\nĠwreck age\nĠbr ushed\nĠBase Type\nĠz oning\nish able\nhet ically\nĠC aucus\nĠH ue\nĠk arma\nĠSport ing\nĠtrad er\nĠseem ing\nĠCapt ure\n4 30\nb ish\nĠt unes\nĠindo ors\nĠSp here\nĠD ancing\nTER N\nĠno b\nĠG ST\nm aps\nĠpe ppers\nF it\nĠoverse es\nĠRabb i\nĠR uler\nvert ising\noff ice\nxx x\nĠra ft\nCh anged\nĠtext books\nL inks\nĠO mn\nãĢ ĳ\nĠinconven ience\nĠDon etsk\n= ~\nĠimplicit ly\nĠboost s\nĠB ones\nĠBo om\nCour tesy\nĠsens ational\nAN Y\nĠgre edy\ned en\nĠinex per\nĠL er\nĠV ale\nĠtight en\nĠE AR\nĠN um\nĠancest or\nS ent\nĠH orde\nurg ical\nall ah\nĠsa p\namb a\nĠSp read\ntw itch\nĠgrand son\nĠfract ure\nĠmoder ator\nĠSe venth\nĠRe verse\nĠestim ation\nCho ose\nĠpar ach\nĠbar ric\nãĢ Ĳ\nĠcomp ass\nĠall ergic\nâĢ ķ\nOT HER\nerr illa\nĠw agon\nĠz inc\nĠrub bed\nĠFull er\nĠLuxem bourg\nĠHoo ver\nĠli ar\nĠEven ing\nĠCob b\nest eem\nĠselect or\nĠB rawl\nis ance\nĠE k\nĠtro op\nĠg uts\nĠApp eal\nĠTibet an\nĠrout ines\nĠM ent\nĠsummar ized\nsteam apps\nĠtr anqu\nĠ19 29\nor an\nĠAut hent\nĠg maxwell\nĠappre hens\nĠpo ems\nĠsa usage\nĠWeb ster\nur us\nĠthem ed\nĠl ounge\nĠcharg er\nSp oiler\nĠsp illed\nh og\nĠSu nder\nĠA in\nĠAng ry\nĠdis qual\nĠFrequ ency\nĠEther net\nĠhel per\nPer cent\nĠhorr ifying\nĠa il\nĠAll an\nEE E\nĠCross ing\n44 9\nĠh olog\nĠPuzz les\nĠGo es\neren n\n60 4\nãģ ı\nĠRaf ael\nĠatt en\nĠE manuel\nĠup ro\nĠSus p\nP sych\nĠTr ainer\nĠN ES\nĠHun ts\nbec ue\nĠcounsel or\nR ule\nĠtox ins\nĠb anners\nr ifice\nĠgreet ing\nĠfren zy\nĠall ocate\nĠ* )\nex pr\n50 3\nĠCh ick\nĠT orn\nĠconsolid ation\nĠF letcher\nsw itch\nfr ac\ncl ips\nĠMcK in\nĠLun ar\nMon th\nIT CH\nĠscholar ly\nrap ed\n39 8\nĠ19 10\nĠe greg\nĠin secure\nĠvict orious\ncffff cc\nĠsing led\nĠel ves\nĠW ond\nbur st\nĠcam oufl\nĠBL ACK\nĠcondition ed\nç ī\nans wered\nĠcompuls ory\nasc ist\nĠpodcast s\nĠFrank furt\nbn b\nĠne oliberal\nĠKey board\nĠBel le\nw arm\nĠtrust s\nĠins ured\nĠBu cc\nus able\n60 7\nĠPl ains\nĠ18 90\nĠsabot age\nĠlod ged\nf elt\nĠg a\nĠN arc\nĠSal em\nĠsevent y\nĠBl ank\np ocket\nĠwhis per\nĠm ating\nom ics\nĠSal man\nĠK ad\nĠan gered\nĠcoll isions\nĠextraord inarily\nĠcoerc ion\nG host\nb irds\nè Ģ\nk ok\nĠper missible\navor able\nĠpo inters\nĠdiss ip\nac i\nĠtheat rical\nĠCos mic\nĠforget ting\nĠfinal ized\nå¤ §\ny out\nl ibrary\nĠbo oming\nĠBel ieve\nĠTe acher\nĠL iv\nĠGOOD MAN\nĠDomin ican\nOR ED\nĠPart ies\nĠprecip itation\nĠSl ot\nR oy\nĠComb ined\nĠinteg rating\nĠch rome\nĠintest inal\nĠRe bell\nĠmatch ups\nĠblock buster\nĠLore n\nĠLe vy\nĠpre aching\nĠS ending\nĠPur pose\nra x\nf if\nĠauthor itative\nĠP ET\nast ical\nĠdish on\nĠchat ting\nĠ\"$ :/\nConnect ion\nĠrecre ate\nĠdel inqu\nĠbro th\nĠD irty\nĠAd min\nz man\nĠscholars hips\nĠ25 3\ncont act\nals a\n7 67\nc reen\nabb age\nĠ19 15\nĠbl ended\nĠal armed\nL anguage\n35 6\nĠbl ends\nĠCh anged\nW olf\nĠhe pat\nCreat ing\nĠper secut\nĠsweet ness\nart e\nĠforfe iture\nĠRober to\nim pro\nN FL\nĠMag net\nDet ailed\nĠinsign ificant\nĠPOL IT\nĠBB Q\nĠC PS\nĠse aw\namin er\nm L\nend if\nf inals\nĠ26 5\nu ish\nĠ} )\nĠPro blems\nĠem blem\nĠserious ness\nĠpars ing\nĠsubst itution\nĠpress ured\nĠrecy cled\nale b\nRub y\nĠprof iciency\nDri ver\nĠW ester\n: '\nAF TA\nĠm antle\nĠClay ton\nfl ag\nĠpractition er\nc overed\nĠSt ruct\nadd afi\n4 25\nĠTown ship\nĠHyd ro\nLou is\n34 3\nĠcond o\nĠT ao\nĠutil ization\nĠnause a\nĠDem s\nrid ges\np ause\nĠform ulas\nĠchall enger\n37 6\nĠdefect ive\nĠRail way\nĠPub Med\nĠyog urt\nl bs\nĠNor folk\nOP E\nĠMood y\nĠdistribut or\nĠscroll s\nĠextract s\nSt an\nĠv iability\nĠexp oses\nĠstar vation\nĠStep s\nĠD odd\nf ew\nST D\n33 2\nĠclos ures\nĠcomplement ary\nĠS asha\nump y\nĠmon et\nĠartic ulate\nĠDo ct\nk iller\nĠsc rim\nĠ2 64\nĠprost itutes\nĠse vered\nĠattach ments\nĠcool ed\nL ev\nĠF alk\nf ail\nĠpolic eman\nĠD ag\nĠpray ed\nĠK ernel\nĠcl ut\nĠc ath\nĠan omaly\nSt orm\nem aker\nĠBreak fast\nul i\no ire\nJ J\nh z\nOper ation\nĠS ick\n35 4\nĠGuatem ala\nR ate\nĠexp osures\nf aces\nĠArch ae\nra f\nĠM ia\nĠ20 25\nĠop aque\nĠdisgu ised\nĠHead quarters\nS ah\nĠp ots\n9 78\nĠM alf\nĠfrown ed\nĠpoison ous\nĠCon vers\nee ks\nĠcr ab\n.\" \"\nĠtre ason\nĠr anc\nĠescal ating\nĠwar r\nĠmob s\nĠl amps\nĠSun shine\nĠBrun swick\nPh ones\nĠspe lled\nĠSk ip\nĠ20 50\nĠ19 11\nĠPl uto\nĠAm end\nĠme ats\n38 7\nĠst omp\nĠZh ou\nĠLevi athan\nĠHaz ard\nad v\nĠOr well\nĠal oud\nĠb umper\nĠAn arch\nub untu\nĠSer ious\nf itting\nĠOption al\nĠCec il\nRE AM\nĠser otonin\nĠcultiv ate\nag ogue\n} \\\nĠmos ques\nĠSun ny\nĠre active\nrev olution\nĠL up\nĠFed ora\nĠdefense man\nĠV ID\nist ine\nĠdrown ing\nĠBroad casting\nĠthr iller\nĠS cy\nĠacceler ating\nĠdirect s\nod ied\nb ike\nd uration\nĠpain fully\nR edd\nĠproduct ions\nĠg ag\nĠwh ist\nĠs ock\nĠinf initely\nĠConc ern\nĠCit adel\nĠlie u\nĠcand les\nogene ous\narg er\nĠheaven ly\ninflamm atory\nPer formance\nC s\nruct ose\naz aki\nĠp essim\nĠinf erence\nĠpow d\nĠZ oe\nĠpain ts\nĠd azz\npt a\n-------- ---\nĠins pir\nĠExper imental\nĠKn ife\nreg or\nb ors\nĠshow ers\nrom eda\nĠs aint\nĠben ign\nĠJ iang\nĠenvision ed\nĠsh roud\nIF T\nH O\nĠsh uff\nĠI CC\nĠse greg\nĠrevis it\nighth ouse\nL i\nĠsub strate\nĠSe as\nĠRew ard\nĠH ep\nĠBr ass\ns bm\nĠelim inates\nĠst amina\nĠV AT\nĠLo an\nĠconst raint\nĠappropri ated\nĠp es\nĠA LE\nr anging\nĠ40 4\n39 2\nĠintellectual s\nach u\nĠrestruct uring\nĠLe vin\nĠrun es\nĠdelight ful\nĠcarbohyd rates\nĠMod els\nĠExp o\nĠtransport ing\nall oc\nĠring ing\nS amsung\nĠscarce ly\nĠURL s\nĠM AS\nĠprot otypes\nĠnarr ator\nĠCPU s\ncd n\nĠBart on\nĠdecided ly\nĠSh u\nix ir\noc ious\nĠMy st\nN intendo\nĠre use\nĠforg iven\nF ew\nin ical\nn at\nĠseam less\nĠEv a\nĠE VE\nĠJ O\nland ers\nĠso fter\nneg ie\nĠtrans ient\nĠorb ital\nĠfulf il\nĠK om\nHop efully\nĠdynam ically\nĠHun ger\nå Ľ\nĠArmen ia\nel man\nber to\nĠp ige\nĠID s\nlim it\nĠve ins\nĠso aring\np acks\nGold en\nĠCr ab\nist or\nĠR PM\nĠ$ $\ng ression\nĠjihad ist\nĠgam ble\nĠcare g\nĠinf lated\nF ace\nĠFire arms\nĠEm manuel\nâ Ŀ\nĠsh ocks\ngr ab\nĠspl end\nĠHP V\nab ortion\nAb ove\nEnt ity\nplay ers\nĠcomm enced\nul ence\nĠfulfill ment\nĠembod iments\nĠW elfare\nĠha il\nĠ< @\ntt en\nĠcat cher\nĠJ azeera\nĠvolcan o\nĠstabil ize\nĠHand ler\nĠintens ified\nĠAb rams\nĠhum iliation\np aced\n60 5\nĠCent OS\nSpe cific\nĠhe ed\nĠC AM\nĠGal ile\nD ie\nĠabol ished\nĠThom son\nĠTe achers\nĠW ass\nj ong\nĠIS BN\nĠAll ies\nsh ake\nå ·\nv ict\nHow ard\nĠde em\nĠexceed ingly\nĠSmart stocks\nib e\nĠdoor way\nĠcompet ed\nig mat\nĠnational ists\nĠg room\nĠKe en\nĠdispos able\nde cl\nĠT olkien\nĠSche me\nĠb iod\nĠav id\nĠEl on\nag ar\nĠT SA\nR oman\nĠartific ially\nĠadvis ors\nX L\nĠInf erno\n36 6\nĠted ious\nĠPhot ography\nĠCar rie\nĠtro pe\nĠSand ra\nĠdec imal\nQue en\nĠGund am\nĠO M\note ch\nN BA\nĠ19 32\nĠent renched\nĠMar ion\nĠfr aternity\nLab our\nHen ry\nĠlat itude\nE ither\nĠenh ances\nĠPot ential\nĠsh ines\nid ad\nĠbread th\nĠcapac ities\nĠðŁ ĻĤ\nĠBron x\nĠsex es\nĠdifferent iation\nĠheavy weight\nĠT aj\nd ra\nĠmigr ate\nĠexhaust ion\nĠR UN\nels ius\nĠCu omo\nĠgu itars\nĠcl ones\nĠSom ew\nĠP ry\n------------ -\nĠwarr anted\ncy cles\nĠsalv age\nĠdis ks\nR ANT\nĠNGO s\nĠMart ian\n\":[ {\"\nĠadd icts\noj ure\nil let\nĠamazing ly\nart ments\np ixel\nĠGPU s\nLay out\nè £\nĠTam il\nĠBas il\nĠimpart ial\nĠSt ructure\nf ork\nb ryce\nĠr idge\nĠHamb urg\nri ous\nĠbl itz\ncig arettes\nĠcan ned\n40 2\nĠiron ically\nĠcompassion ate\nĠHaw kins\n. #\nĠCat hedral\nĠrall ied\nin ternal\nĠqu ota\nst akes\nT EXT\nm om\nĠcomple tes\nĠ23 8\nĠsh rug\nãĥ ĳ\nĠN inth\nĠrev ise\nĠProv ider\nĠtre acher\nĠqu asi\nĠPR ES\nĠdep osition\nĠconfidential ity\niss ors\nĠim balance\nĠspan ning\nĠang ular\nĠC ul\ncommun ication\nĠNor a\nĠGen ius\nop ter\nĠs acked\nSp ot\nĠfine ly\nĠCH R\n28 2\nw aves\nPal est\nĠRo hing\nN L\nè ¿\nĠsh itty\nĠSc alia\n4 75\nPro gress\nĠreferen cing\nĠclass rooms\nab ee\nĠs od\nhes ion\n70 8\nĠZucker berg\nĠFin ish\nĠScot ia\nĠSav ior\nĠInstall ation\nan tha\n( -\nĠ30 2\nĠP unk\nĠcr ater\nyout u\nĠro ast\nĠinflu encing\nĠd up\nĠJ R\nĠG rav\nĠstat ure\nĠbath rooms\nA side\nW iki\nme an\nĠZ ak\nĠOn es\nĠN ath\nĠhyper t\nĠcommence ment\nC ivil\nĠmoder ately\nĠdistribut ors\nĠbreast feeding\nĠ9 80\nĠS ik\nĠC ig\nĠAM ER\nR IP\nĠCare er\nust ing\nĠmess ed\nĠe h\nĠJ ensen\n/ $\nĠblack mail\nĠconvers ions\nĠscientific ally\nĠmant ra\np aying\nĠiv ory\nĠCour ts\nOU GH\naunt let\nSer ial\nB row\nĠH undreds\n3 23\nĠpe e\nĠlin ux\nĠsub mer\nĠPrinc ipal\n48 5\nĠD SL\nĠCous ins\nĠdoctr ines\nĠAthlet ics\nĠ3 15\nĠK arma\nĠatt ent\nur ger\nĠpresc ribe\nĠenc aps\nĠC ame\nĠsecret ive\nĠCr imes\nd n\nC lean\nĠEgypt ians\nĠCar penter\nĠ ll\nH um\nĠMil o\nĠcapital ists\nĠbrief ed\nT we\nĠBas in\nelve t\nM os\nĠplun ge\nĠKa iser\nĠFu j\nill in\nĠsafegu ards\nĠo ste\nĠOpportun ity\nĠM afia\nĠCall ing\nap a\nur ban\nbr ush\nill ard\nc Ã©\nint elligence\nĠL ob\nĠDru id\nĠsm oother\nĠfoot ing\nĠmotor ists\narc ity\nĠmascul inity\nĠm ism\nĠabdom inal\nĠTa vern\nĠR oh\nĠesc apes\ns igned\nAnth ony\nĠsacrific ing\nĠintim acy\nĠan terior\nĠK od\nĠmot if\nĠg raz\nĠvisual ization\nĠguitar ist\nĠTro tsky\nm agic\nD ar\nĠMor i\nĠw ards\nĠtoile ts\nl est\nĠtele port\nĠSund ays\nĠPl at\nET S\nĠe Sports\nPat rick\nĠK atherine\nen ko\nĠhas sle\nĠM ick\ngg les\nĠh ob\naint ain\nĠair borne\nĠsp ans\nĠch ili\nĠa perture\nĠvolunte ered\nĠInc ident\nĠF res\nĠVeter an\naugh tered\ning o\nĠun insured\nCL OSE\nĠf use\nĠer otic\nĠadvert ise\nra ising\nText ure\nĠatt ends\nĠRE AL\nudd led\nĠsm oot\nĠ30 5\nĠWill is\nĠbl ond\nAn alysis\nĠV T\non ica\nĠstrongh old\nR F\nN M\n. >>\nĠprosper ous\nĠbo asted\n29 2\nĠManufact uring\nPR ESS\ng ren\nĠpharm acy\nĠRoc kefeller\nk ai\nĠth umbs\nĠH ut\nĠmother board\nĠguard ians\nĠAl ter\nll ular\nĠsh ack\nĠwise ly\nĠback bone\nerv a\nĠsu icides\nĠMcG regor\nij ah\nE mer\nĠB rav\nĠdesign ate\nP OST\nprodu ced\nĠcleans ing\nirl wind\nex istent\nĠHum ph\nĠPay ne\nĠv ested\nÅ ¡\nĠstring ent\nion a\nĠuns ub\nĠsum med\nĠHer cules\nsub ject\nĠR agnar\nĠN os\nĠcharacter ization\nĠsav vy\nĠDaw son\nĠCas ino\nĠf ri\nĠBar rier\nĠmis information\nĠins ulation\nĠcorrid ors\nĠair planes\nĠNo ct\nah i\nĠ19 16\nk b\narm ac\nĠsh un\nĠsche ma\nĠhorr ified\nĠ23 9\naund ers\nN B\ni ates\ner ity\nĠSh ard\nĠr arity\nĠgroup ed\nĠGh ana\nagain st\nĠBi ological\nĠA ware\now ell\nÏ Ħ\nĠBe au\nsh aw\nH ack\nĠJul ius\nUS S\nol son\naun a\nc ru\nĠMaur ice\nĠI k\nĠsequ encing\nĠradical s\nĠ( ?,\nv irtual\nĠany ways\nĠreper c\nĠhand lers\nĠhes itant\né ĥ\nĠM F\nple mentation\nass ociated\nĠcampaign ed\nĠY ue\nut ations\nĠY oga\nĠsim mer\nĠro ds\nĠmel ody\nĠconv oy\nv ideos\nĠscreen ed\nN eg\nochem ical\nĠ( ))\nĠultr as\nĠant ip\nĠIsland ers\n70 4\nĠfet ish\nĠridic ulously\nĠK art\nĠmitochond rial\nĠinterf ering\nBuild er\nĠover fl\nĠac ne\nĠM ud\nĠK err\nf lex\nĠPost al\nĠBalt ic\n47 7\nĠPers ons\nour age\nH B\nĠM use\nĠImm ortal\nĠDri ving\nĠpet itions\nĠsubsc ript\nĠs orce\nĠProcess or\nut on\nS ony\nĠph on\nĠr aced\nĠAnth rop\nĠday time\nĠEx ercise\nAdd ing\nĠeng ages\nĠQual comm\nĠmir acles\nĠmem es\nĠDr ink\nĠOri oles\nĠhair s\nĠPol ar\nath om\nĠsl ippery\nĠR emy\nĠcar amel\nĠY EAR\nĠal k\nI gn\na ution\nĠMer lin\nĠC ran\nĠap ologies\nĠ4 10\nĠout ing\nĠMem ories\napp ointed\nĠcount ered\nu ld\npos ing\nĠfire wall\nĠW ast\nĠW et\nwork ed\nse ller\nĠrepe aled\nere o\nass uming\nBL IC\nm ite\nĠCEO s\nĠChap el\nellig ent\n________________ ________\nD og\nĠw art\nĠsubsc riber\ns ports\nĠbe gged\nĠM V\nĠsem if\neth ical\nĠpre ach\nĠrev ital\nĠpun itive\nĠshort cuts\nĠinstit uted\nĠWars aw\nĠabdom en\nĠK ING\nĠsuper intendent\nĠf ry\nĠGe o\nT OR\nĠcontrad ictions\napt ic\nĠlandsc apes\nb ugs\nĠcl ust\nĠvol ley\nc ribed\nĠt andem\nĠrob es\nWH AT\nĠpromot er\nĠel oqu\nreview ed\nĠD K\nĠPl ato\nĠf ps\nT ank\nĠDer rick\nĠpriorit ize\nas per\nĠHond uras\nĠCom pleted\nne c\nĠm og\nn ir\nĠMay o\nDE F\nst all\nin ness\nĠVolks wagen\nĠprec aution\nĠM ell\ni ak\nist ries\nĠ24 8\nĠoverl apping\nSen ate\nĠEnh ance\nres y\nrac ial\nOR TS\nĠM ormons\nStr ong\nĠCo ch\nMex ico\nĠMad uro\nĠj ars\nĠcan e\nW ik\noll a\niff erence\nĠphysic ist\nĠMag gie\nĠ28 5\nĠdep iction\nĠMcL aren\nJ u\nĠsl ows\nĠcommission ers\nĠWill ow\nĠExpl os\nhov ah\nĠtechn ician\nĠhom icides\nĠFl av\nĠTr uman\nĠ100 00\nu ctor\nĠsh ader\nNews letter\n45 7\nĠre ver\nĠhard ened\nĠwhere abouts\nĠrede velop\nĠcar bs\nĠtra vers\nĠsqu irrel\nĠfoll ower\nĠs ings\n50 8\nĠrabb its\nemon ium\nĠdocument ing\nĠmisunder stood\n) '\nR ick\ngg ies\nĠprem ie\nĠsk ating\nĠpass ports\nĠf ists\naged don\nH aw\nAC P\n0 80\nĠThough ts\nĠCarl son\nĠpriest hood\nh ua\nĠdun geons\nĠLo ans\nĠant is\nĠfamiliar ity\nĠS abb\nop al\nĠIn k\nst rike\nĠc ram\nĠlegal ized\nĠcu isine\nĠfib re\nTra vel\nĠMon ument\nOD Y\neth y\nĠinter state\nĠP UR\nem porary\nĠArab ian\ndevelop ed\nĠsadd le\nĠg ithub\nĠOff er\nĠIS P\nro let\nĠSUP ER\nĠDen is\nĠmultipl ier\nĠstir red\nInterest ingly\nĠcustom ary\nĠbill ed\nhe x\nĠmultipl ied\nĠfl ipping\nĠCros by\nĠfundament als\nia e\nĠPlay ed\nĠAt om\nam azon\nĠFl am\nee z\nactiv ated\nĠtables poon\nĠliberal ism\nĠPal in\nĠP atel\nN um\nĠT AM\nĠs urn\nĠRel oaded\nĠco ined\n\" ],\nĠCl ash\nĠAg u\nĠprag matic\nĠActiv ate\nĠ8 02\nĠtrail ers\nĠsil hou\nĠprob es\nĠcirc us\nĠB ain\nĠLind say\nĠAb bey\nDel ivery\nĠconcess ion\nĠgast ro\nĠSpr ite\nÄ Ł\nand el\nĠg imm\nĠaut obi\nĠT urtle\nĠwonder fully\nĠHar am\nĠWorld wide\nĠHand le\nĠtheor ists\nĠsle ek\nĠZh u\nograph ically\nEG A\nĠOwn ers\nath s\nĠAntar ctic\nn atal\n=\" \"\nfl ags\n`` ``\nĠs ul\nK h\nĠpot assium\nĠlinem an\nĠcere al\nĠSe asons\nĠ20 22\nĠmat hematic\nĠastron omers\nprof essional\nĠf ares\ncknow led\nĠch i\nĠyoung sters\nĠmistaken ly\nĠhem isphere\nĠDiv inity\nr one\nĠ\" ,\nr ings\nĠattract s\nv ana\nå ¹\nC AP\nĠplay list\nĠpor ch\nãģ £\nĠincorpor ates\nĠso ak\nĠassert ing\nĠTerror ism\nĠP ablo\nJ a\nces ter\nĠfear ing\nĠPr ayer\nĠescal ated\nG W\nĠro be\nĠBright on\nac ists\nĠSym phony\nĠDwar f\nĠPar ade\nĠLe go\nĠinex pl\nĠl ords\nle af\nRA G\nl iber\nĠcig ars\nĠJe hovah\n60 6\nWIND OWS\nĠLiber ia\neb us\nHe avy\nĠl ubric\nĠR W\nangu ages\nĠnarrow ed\ncom puter\nĠE mber\nĠmurder ing\nĠdown stream\nĠT uls\nĠT ables\nTop ic\nĠAcc uracy\n= /\nl ost\nĠRe i\nĠprogress es\nb ear\nĠestablish ments\nJust in\nĠPe ach\nĠG omez\nå ¿\nĠTri angle\nId ent\nĠH ive\nRes ources\nĠmix es\nĠAss uming\nM u\nĠhyp oc\nĠs ane\nĠW an\nid ious\nSu ccess\nĠ io\nAng el\nĠdanger ously\nĠCreat ure\nW ORK\n: [\nĠKat rina\nList ener\nM iller\nĠId lib\nh ang\nĠcircum vent\nh ref\nĠcel estial\nĠWe eks\nĠP ug\nĠDal ton\nĠsubpoen a\nuk u\nĠpers isted\npe i\nold ing\nĠDoc uments\nĠH ast\nĠC ENT\nĠprim er\nĠsyn onymous\nĠn ib\nom bs\nĠnot ation\nĠD ish\nĠAt mosp\nĠforb id\nĠAN G\npat tern\nl os\nĠproject iles\nb rown\n.\" ,\nĠVen om\nĠfierce ly\nub lished\nĠU ran\nĠNic arag\n4 10\nĠC AL\nOT OS\nĠMir acle\nĠEn chant\nĠguard ing\napp end\nAtt ach\nĠlevel ed\nĠcond oms\nih ilation\n64 9\nĠnight mares\nĠTHE Y\nĠST ART\nĠK inn\nĠroomm ate\nĠhy giene\no pping\nJ ob\nĠl vl\nĠV ER\nĠKe eping\nab etic\nĠformat ting\neral a\nĠrev isions\nĠres urg\nT el\nĠGood man\n35 3\np od\nĠind isp\nĠTrans lation\nĠg own\nĠM und\nĠc is\nĠby stand\ncol lect\nĠPun jab\nact ively\nĠG amb\nte ll\nĠimport ing\ng encies\nĠloc om\nĠBr ill\nH oly\nĠBer ger\nĠshow down\nĠrespond ers\nIL Y\nĠt akedown\nle ted\nĠmat tered\nĠpredict ive\nĠover lay\nG PU\nĠV ick\nĠconvey ed\nT ab\npe er\nSc an\nĠdefensive ly\nv ae\nĠappro ving\nĠt iers\nĠV ia\nquer ade\nĠSaud is\nĠdemol ished\nĠProp he\nĠmon o\nĠhospital ity\nH AM\nĠAri el\nM OD\nĠTor ah\nĠbl ah\nĠBel arus\nerent ial\nĠT uc\nĠbank er\n39 7\nĠmosqu it\nĠScient ist\nĠMus ical\nĠh ust\nSh ift\nĠtor ment\nĠstand off\nE duc\nĠF og\nĠampl ifier\nSh ape\nInst ance\nĠCrit ics\nĠda emon\nH ouston\nĠmatt ress\nĠID F\nĠobsc ene\nĠA mer\nhett i\nĠcomp iling\n35 2\nvere tt\nĠRed uction\nist ration\nĠBl essed\nĠB achelor\n3 16\nĠpr ank\nĠVul can\ndd ing\nĠm ourning\nĠQu int\nĠBl aster\ntest ing\nĠsed iment\n>> >\nĠE ternity\nĠWH ERE\nĠM aze\nĠreact ing\nĠAl v\noms day\nĠC RA\nĠtransl ator\nĠbog us\nat u\nWe bsite\noll s\nĠbapt ism\nĠs ibling\nĠAut umn\nve z\nãģ® é\ngu ards\nGe org\nassad ors\nĠFre ud\nĠcontin ents\nĠReg istry\nBern ie\nĸļ å£«\nĠtoler ant\nĠU W\nĠhor ribly\n99 5\nĠMID I\nĠimpat ient\noc ado\ner i\nĠWor st\nĠNor ris\nĠTalk ing\nĠdef ends\nens able\nĠ20 21\nĠanat omy\nL ew\nĠdraw er\nĠCan berra\nĠpatri otic\né¾įå ĸļå£«\nĠAv g\nAR M\nĠundis closed\nĠfare well\n45 9\nb able\nĠAll ison\nOL OG\nĠcon co\nt ight\nĠAC PI\nĠM ines\nl ich\nĠâĶ ľ\nrepresent ed\n200 000\nĠenthusi ast\nOT S\nb il\nĠIng redients\nĠinvent or\nĠMy SQL\nÂłÂł Âł\nĠAB OUT\nwith in\nĠm k\nB ul\nĠF ake\nĠdracon ian\nW a\nhel m\nĠTer ran\nerv ille\nĠcommon place\nSI ZE\nĠ\" <\nre place\nograph s\nĠSE LECT\ninc ible\nĠMost ly\nĠShe ffield\nĠID E\nugg le\nĠcit ations\nh urst\nĠUn ix\nĠunle ash\nĠP iper\nĠN ano\nĠsucc umb\nĠreluct ance\nĠ25 00\nĠMer chant\nĠwire t\nĠcomb os\nĠBirth day\nĠchar coal\nĠU PS\nĠFair fax\nĠdrive way\nĠT ek\nĠP itch\nove re\nĠtechn icians\nĠAct ual\nfl ation\nĠF iscal\nĠEm pty\nan amo\nĠmag nesium\nĠsl ut\nĠgrow ers\nInvest igators\n( ):\nĠS atellite\nĠKe ynes\nmiss ive\nl ane\nĠb orough\n3 44\nĠTE AM\nĠBet hesda\nC V\nh ower\nĠR AD\nĠch ant\nĠR iy\nĠcompos itions\nĠmild ly\nĠmedd ling\nĠag ility\nane ers\n5 01\nĠsyn th\nling er\n29 1\nĠex claimed\nPart y\nĠcont amin\nĠMan or\nĠResp ond\nĠpra ising\nĠman ners\nfle et\nSum mer\nĠLy nd\nĠDef initely\ngr im\nĠbow ling\nst ri\nç Ľ\ny nt\nĠmand ates\nD IV\nĠreconc ile\nview s\nĠDam on\nvet te\nF lo\nĠGreat est\nil on\nic ia\nĠportray al\nĠcush ion\n50 4\n19 79\noss al\nApp lic\nsc ription\nĠmit igation\nAT S\np ac\nĠer ased\nĠdefic iencies\nĠHolland e\nĠX u\nĠb red\nĠpregn ancies\nf emin\nĠem ph\nĠpl anners\nĠout per\nutter ing\nĠperpet rator\nĠm otto\nĠEll ison\nĠNE VER\nĠadmitted ly\nAR I\nĠAzerbai jan\nĠmill isec\nĠcombust ion\nĠBott le\nĠL und\nĠP s\nĠD ress\nĠfabric ated\nĠbat tered\nĠs idel\nĠNot ting\nFore ign\nĠJer ome\n0 20\nĠAr bit\nĠkn ots\nĠR IGHT\nM oving\nãģ Ļ\nĠsur geries\nĠcour thouse\nĠm astered\nĠhover ing\nĠBr an\nĠAl ison\nĠsaf est\nm ilitary\nĠbull ied\nĠbar rage\nRead er\nES E\nĠGe ographic\nT ools\n3 14\nĠGe ek\nro th\ngl ers\nĠF IN\nÏ ģ\nĠA ston\nal tern\n48 8\nĠveter in\nG amer\nĠint el\nren ches\nSh ield\nĠam nesty\nĠB har\nĠp iled\nĠhonor able\nĠInst itutes\nĠso aked\nĠcom a\nĠE FF\n34 1\nby tes\nĠG mail\nle in\nĠCanad iens\nm aterial\nI l\nĠinstruct ors\nĠK Y\nĠconce ive\nub b\nĠP ossible\nĠeas ing\nĠChrist ina\nĠcar ic\nĠHD R\nR OM\nĠsho vel\nde lete\nĠp uff\nĠCh anging\nĠseam lessly\nAtt ribute\nĠacqu isitions\nak ery\nĠE F\nĠaut istic\nĠT akes\nĠPow der\nĠSt ir\n5 10\nĠBub ble\nsett ings\nĠF owler\nĠmust ard\nĠmore over\nĠcopyright ed\nĠLED s\n15 00\næ ī\nĠH IS\nen f\nĠcust od\nĠH uck\nG i\nĠim g\nAn swer\nC t\nj ay\nĠInf rastructure\nĠfeder ally\nL oc\nĠmicro bes\nĠover run\ndd s\not ent\nadi ator\n>>>> >>>>\nĠtorn ado\nĠadj ud\nĠintrig ued\nĠs i\nĠRevel ation\npro gress\nĠburgl ary\nĠSai yan\nĠK athy\nĠser pent\nĠAndre as\nĠcomp el\ness ler\nĠPl astic\nĠAd vent\nĠPos itive\nĠQ t\nĠHind us\nreg istered\nular ity\nĠrighteous ness\nĠdemon ic\nu itive\nĠB DS\nĠGre gg\nc ia\nĠCrus ade\nĠSina i\nW ARE\n+ (\nĠme ll\nĠder ail\ny ards\nA st\nĠnotice ably\nĠO ber\nR am\nĠun noticed\nĠse q\nav age\nT s\nĠ6 40\nĠconced e\nĠ] )\nF ill\nĠcapt ivity\nĠImprove ment\nĠCrus ader\nara oh\nM AP\næ Ĺ\nĠstr ide\nal ways\nF ly\nN it\nĠal gae\nĠCook ing\nĠDo ors\nMal ley\nĠpolic emen\nãģ į\nĠastron aut\naccess ible\n49 5\nĠR AW\ncl iffe\nudic rous\nĠdep ended\nal ach\nĠvent ures\nra ke\nĠt its\nĠH ou\nĠcond om\normon al\nĠind ent\nĠupload ing\nFoot note\nImport ant\nĠ27 1\nĠmind ful\nĠcont ends\nC ra\nĠcal ibr\nĠO ECD\nplug in\nF at\nĠIS S\nĠDynam ics\nans en\n68 6\n' ),\nĠsp rite\nĠhand held\nĠH ipp\n=~ =~\nTr ust\nĠsem antics\nĠBund es\nĠRen o\nĠLiter ature\ns ense\nG ary\nĠA eg\nĠTr in\nEE K\nĠcler ic\nĠSS H\nĠch rist\nĠinv ading\nib u\nĠen um\naur a\nĠal lege\nĠInc redible\nB BC\nĠth ru\nĠsa iled\nĠem ulate\nĠin security\nĠc rou\nĠaccommod ations\nĠincompet ent\nĠsl ips\nĠEarth qu\ns ama\nIL LE\nĠi Phones\nas aki\nĠby e\nĠar d\nĠext ras\nĠsl aughtered\nĠcrowd funding\nres so\nĠfil ib\nĠER ROR\nĠT LS\ne gg\nĠIt al\nĠen list\nĠCatal onia\nĠSc ots\nĠser geant\nĠdiss olve\nN H\nĠstand ings\nri que\nI Q\nĠbenef iciary\nĠaqu arium\nYou Tube\nĠPower Shell\nĠbright est\nĠWar rant\nS old\nWrit ing\nĠbegin nings\nĠRes erved\nĠLatin os\nhead ing\nĠ4 40\nĠrooft op\nAT ING\nĠ3 90\nVP N\nG s\nk ernel\nturn ed\nĠprefer able\nĠturn overs\nĠH els\nS a\nĠShin ji\nve h\nĠMOD ULE\nV iol\nĠex iting\nĠj ab\nĠVan illa\nĠac ron\nĠG ap\nber n\nA k\nĠMc Gu\nĠend lessly\nĠFar age\nĠNo el\nV a\nM K\nĠbr ute\nĠK ru\nĠES V\nĠOl ivia\nâĢ ł\nĠK af\nĠtrust ing\nĠh ots\n3 24\nĠmal aria\nĠj son\nĠp ounding\nort ment\nCount ry\nĠpostp oned\nĠunequ iv\n? ),\nĠRo oney\nudd ing\nĠLe ap\nur rence\nsh apeshifter\nĠH AS\nos ate\nĠca vern\nĠconserv atism\nĠB AD\nĠmile age\nĠarrest ing\nV aults\nĠmix er\nDem ocratic\nĠB enson\nĠauth ored\n8 000\nĠpro active\nĠSpirit ual\nt re\nĠincarcer ated\nĠS ort\nĠpe aked\nĠwield ing\nre ciation\n×Ļ ×\nP atch\nĠEm my\nĠex qu\ntt o\nĠRat io\nĠP icks\nĠG ry\nph ant\nĠf ret\nĠeth n\nĠarch ived\n% -\nc ases\nĠBl aze\nĠim b\nc v\ny ss\nim ony\nĠcount down\nĠaw akening\nĠTunis ia\nĠRe fer\nĠM J\nĠun natural\nĠCar negie\niz en\nĠN uggets\nhe ss\nĠev ils\n64 7\nĠintrodu ctory\nl oving\nĠMcM ahon\nĠambig uity\nL abel\nĠAlm ighty\nĠcolor ing\nĠCl aus\nset ting\nN ULL\nĠF avorite\nĠS IG\n> (\nĠSh iva\nĠMay er\nĠstorm ed\nĠCo verage\nwe apons\nigh am\nĠun answered\nĠle ve\nĠc oy\nc as\nb ags\nas ured\nSe attle\nĠSant orum\nser ious\nĠcourage ous\nĠS oup\nĠconfisc ated\nĠ// /\nĠuncon ventional\nĠmom s\nĠRohing ya\nĠOrche stra\nĠPot ion\nĠdisc redit\nĠF IL\nf ixed\nĠDe er\ndo i\nĠDim ension\nĠbureaucr ats\net een\nĠaction Group\noh m\nĠb umps\nĠUt ility\nĠsubmar ines\nren heit\nre search\nĠShap iro\nĠsket ches\nĠde ceptive\nĠV il\nes ame\nĠEss entially\nĠramp age\nisk y\nĠmut tered\nth ritis\nĠ23 6\nf et\nb ars\nĠpup il\nĠTh ou\no S\ns ong\nĠfract ured\nĠre vert\npict ure\nĠcrit erion\nus her\nĠreperc ussions\nĠV intage\nĠSuper intendent\nOffic ers\nĠflag ged\nĠbl ames\nĠin verse\nograp hers\nĠmakes hift\nĠdev oid\nĠfoss ils\nĠArist otle\nĠFund s\nĠde pleted\nĠFl u\nĠY uan\nĠw oes\nĠlip id\nĠsit u\nrequ isites\nĠfurn ish\nĠSam ar\nĠshame ful\nĠadverse ly\nĠad ept\nĠrem orse\nĠmurder ous\nuck les\nĠE SL\nĠ3 14\ns ent\nĠred ef\nĠC ache\nĠP urs\nig ans\nĠ4 60\nĠpres criptions\nĠf res\nF uck\nocr ates\nTw enty\nĠWe ird\nĠT oggle\nĠC alled\nitiz ens\nĠp oultry\nĠharvest ing\nãĤ¦ ãĤ¹\nBott om\nĠcaution ed\nt n\n39 6\nĠNik ki\nĠeval uations\nĠharass ing\nĠbind ings\nĠMon etary\nĠhit ters\nĠadvers ary\nun ts\nĠset back\nĠenc rypt\nĠC ait\nĠl ows\neng es\nĠN orn\nĠbul bs\nĠbott led\nĠVoy ager\n3 17\nĠsp heres\np olitics\nĠsubt ract\nĠsens ations\nĠapp alling\nĠ3 16\nĠenvironment ally\nĠST EM\nĠpub lishes\n5 60\nĠdilig ence\n48 4\nĠadv ises\nĠpet rol\nĠimag ining\nĠpatrol s\nĠInt eger\nĠAs hes\nact us\nĠRad iant\nĠL T\nit ability\nht aking\nSet ting\nĠnu anced\nĠRe ef\nĠDevelop ers\nN i\npie ces\n99 0\nLic ense\nĠlow ers\nĠOtt oman\n3 27\noo o\nĠqu itting\nmark ets\nBeh ind\nĠbas in\nĠdoc s\nan ie\nfl ash\nct l\nĠcivil ized\nĠFuk ushima\n\"] ,\"\nĠK S\nĠHonest ly\nar at\nĠconstruct s\nĠL ans\nĠD ire\nĠLI KE\nĠTrou ble\nĠwith holding\nĠOb livion\nĠsan ity\nany a\nCon st\nĠgro cer\nĠC elsius\nĠrecount ed\nĠW ife\nB order\nate red\nh appy\nĠspo iler\nĠlog ically\nH all\nĠsucceed ing\nĠpoly morph\nĠax es\nĠShot gun\nĠS lim\nĠPrin ciples\nĠL eth\nart a\nĠsc or\nSc reenshot\nĠrelax ation\n#$ #$\nĠdeter rent\nidd y\nĠpower less\nĠles bians\nĠch ords\nĠEd ited\nse lected\nĠseparat ists\n000 2\nĠair space\nĠturn around\nĠc unning\nP ATH\nP oly\nĠbomb ed\nĠt ion\nx s\nĠwith hold\nĠw aged\nĠLiber ties\nFl ag\nĠcomfort ing\n45 4\nĠI ris\nare rs\nĠr ag\nĠrel ocated\nĠGu arant\nĠstrateg ically\nĠgam ma\nuber ty\nĠLock heed\ng res\nĠgr illed\nĠLow e\nst ats\nĠR ocks\nĠsens ing\nĠrent ing\nĠGe ological\nØ§ Ø\not rop\nĠse w\nĠimproper ly\n48 6\nĠâĸ ł\nĠstar ving\nĠB j\nDisc ussion\n3 28\nĠCom bo\nĠFix es\nN AT\nĠstri ving\nth ora\nĠharvest ed\nĠP ing\nĠplay ful\nĠaven ues\nĠoccup ational\nĠw akes\nĠCou rier\nĠdrum mer\nĠBrow ser\nĠH outh\nit u\nĠapp arel\np aste\nĠhun ted\nĠSecond ly\nl ain\nX Y\nĠP IN\nic ons\nĠcock tails\nĠs izable\nĠhurd les\nest inal\nĠRecre ation\nĠe co\n64 8\nĠD ied\nm int\nĠfinger prints\nĠdis pose\nĠBos nia\nts y\n22 00\nĠins pected\nĠF ou\nĠf uss\nĠamb ush\nĠR ak\nĠmanif ested\nPro secut\nĠsuff ice\nren ces\nĠcompens ated\nĠC yrus\nĠgen us\nĠWolver ine\nĠTrend s\nĠh ikes\nĠSe en\nĠen rol\nC old\nĠpol itely\nĠSl av\nĠRu pert\nĠey ewitness\nĠAl to\nĠun comp\nĠposter ior\nM ust\nĠHer z\nĠprogress ively\nĠ23 4\nĠind ifference\nĠCunning ham\nĠacadem ia\nĠse wer\nĠast ounding\nĠA ES\nr ather\nĠeld est\nĠclim bs\nĠAdd s\nĠout cry\nĠcont ag\nĠH ouses\nĠpe pt\nĠMel ania\ninterest ed\nĠU CH\nĠR oots\nĠHub bard\nĠT BD\nĠRoman ian\nfil ename\nSt one\nĠIm pl\nĠchromos ome\nC le\nd x\nĠscram bled\nĠP t\nĠ24 2\nOP LE\nĠtremend ously\nSt reet\nĠcra ving\nĠbund led\nĠR G\np ipe\nĠinj uring\nĠarc ane\nPart icip\nĠHero ic\nst y\nĠto pping\nĠTemp est\nrent ices\nb h\nĠpar anoia\nĠUnic ode\nĠegreg ious\nĠ\\ '\nĠOsw ald\nĠgra vel\nĠSim psons\nĠbl and\nĠGuant anamo\nWrit er\nlin ers\nĠD ice\nJ C\nĠpar ity\nĠs ided\nĠ23 7\nĠPyr rha\nat ters\nd k\nF ine\ncomp an\nĠform ulated\nĠId ol\nil ers\nhem oth\nĠF av\nĠintr usion\nĠcar rots\nĠL ayer\nĠH acker\nĠ ----------------\nĠmoder ation\né ģ\noc oc\nĠcharacter ize\nĠTe resa\nĠsocio economic\nĠper k\nĠParticip ation\ntr aining\nĠPaul o\nph ys\nĠtrust worthy\nĠembod ied\nĠMer ch\nc urrency\nĠPrior ity\nĠte asing\nĠabsor bing\nĠunf inished\nĠCompar ison\nĠdis ple\nwrit ers\nĠprofess ions\nĠPengu in\nĠang rily\nĠL INK\n68 8\nĠCor respond\nĠprev ailed\nĠcart el\nl p\nas ms\nĠRed emption\nĠIslam ists\neffect s\nd ose\nĠL atter\nĠHal ifax\nĠv as\nĠTop ics\nĠN amed\nadvert ising\nzz a\nIC ES\nĠret arded\nach able\nĠPupp et\nĠItem Level\nĠret ract\nĠident ifiable\nA aron\nĠB uster\ns ol\nhel le\nas semb\nH ope\nr anged\nB a\nĠP urch\né Ģ\nĠSir i\nĠarri vals\nĠ19 12\nĠshort ened\nĠ3 12\nĠdiscrep ancy\nĠTem perature\nĠWal ton\nĠkind erg\np olit\nĠrem ix\nĠconnect ors\nãĥĺ ãĥ©\nĠKazakh stan\ndom inated\nĠsu gars\nim ble\nĠPan ic\nĠDem and\nĠCol ony\non en\nĠM ER\n7 75\nur ia\naza ar\nĠDeg ree\nP ri\nĠsun shine\nĠ25 1\nĠpsychedel ic\nĠdigit ally\nĠBra un\nĠsh immer\nĠsh ave\nĠTel esc\nĠAst ral\nĠVenezuel an\nĠO G\nĠc rawling\nInt eg\nĠFe ather\nĠunfold ing\nĠappropri ation\nĠè£ı è\nĠMob ility\nĠN ey\n- .\nb ilt\nL IN\nĠT ube\nĠCon versely\nĠkey boards\nĠC ao\nĠover th\nĠla ure\n>> \\\nĠV iper\nach a\nOff set\nĠR aleigh\nĠJ ae\nJ ordan\nj p\nĠtotal itarian\nConnect or\nĠobserv es\nĠSpart an\nĠIm mediately\nĠSc al\nC ool\nĠt aps\nĠro ar\nP ast\nĠch ars\nĠB ender\nĠShe ldon\nĠpain ter\nĠbe acon\nĠCreat ures\nĠdownt urn\nĠh inder\nĠAnd romeda\nÃ Ľ\ncc oli\nĠF itness\net rical\nĠutil izes\nĠsen ate\nĠen semble\nĠche ers\nT W\nĠaff luent\nk il\nry lic\nord ering\nCom puter\nĠgru esome\nost ics\nĠUb isoft\nĠKel ley\nĠw rench\nĠbourgeois ie\nIB LE\nĠPrest on\nw orn\nar ist\nreat ing\nĠst ained\nar ine\nĠsl ime\nEN N\nĠche sts\nĠground water\nann ot\nĠTr ay\nĠLoc ke\nĠC TR\nĠd udes\nĠEx ternal\nĠDec oder\nĠpar amed\nĠMed line\n80 9\nĠD inner\nrup al\ng z\nĠG um\nĠDem o\nj ee\nĠd h\nber man\narch s\nĠen qu\nĠEp stein\nĠdevast ation\nĠfriends hips\nĠAr d\nĠ23 1\nĠRub in\nĠDist ance\nĠsp urred\nĠd ossier\nĠover looking\n\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\nFore st\nĠCom es\n\\ \",\nĠIran ians\nĠf ixtures\nL aughs\nĠcur ry\nĠKing ston\nĠsqu ash\nĠcat alogue\nĠabnormal ities\nĠdigest ive\n.... .....\nĠsubord inate\nog ly\nĠ24 9\nM iddle\nĠmass ac\nĠburg ers\nĠdown stairs\nĠ19 31\n39 4\nĠV G\nĠl asers\nĠS ikh\nĠAlex a\nder ived\nĠcycl ist\nãģ® éŃĶ\nonel iness\n!!!! !!!!\nĠbuff s\nleg ate\nĠrap ing\nĠrecomm ending\nro red\nĠmult icultural\nun ique\nĠbusiness men\nĠune asy\nĠM AP\nĠdisp ersed\ncipl ine\nJ ess\nĠK erala\nå §\nĠabst raction\nSur v\nU h\nĠprin ters\nij a\now der\nĠanalog ous\nĠA SP\naf er\nĠunfold ed\nĠlevel ing\nĠbre ached\nĠH earing\nĠn at\nĠtransl ating\ncrit ical\nĠant agonist\nĠYes terday\nĠfuzz y\nw ash\nm ere\nĠbe wild\nĠM ae\nV irgin\nph rase\nĠsign aled\nĠH IGH\nĠprot ester\nĠgar ner\nunk nown\nĠk ay\nĠabduct ed\nĠst alking\nam n\nĠdes erving\nĠR iv\nĠJ orge\nĠscratch ing\nĠS aving\nip ing\nĠte ase\nĠmission ary\nĠMor row\nT IME\nP resent\nĠchem otherapy\ntern ess\nĠH omes\nĠP urdue\nĠst aunch\nĠWhit ney\nĠTH ERE\nÎ ¼\niat us\nĠErn est\nĠDe ploy\nĠcove ted\nF ML\nĠDial ogue\nĠex ited\nf ruit\nĠner d\n\":\" \",\"\nĠv ivo\nru ly\n4 60\nĠAm en\nrehens ible\nĠâ ĺ\nD IR\nĠad herence\nĠche w\nĠCo ke\nĠSerge i\ndig ital\nĠNe ck\ng ently\nenth al\n/ )\nĠwe ary\nĠgu ise\nĠConc ord\nĠOn ion\nat cher\nĠb inge\nĠDirect ive\nĠman ned\nans k\nĠill usions\nĠbillion aires\n38 3\noly n\nodynam ic\nĠWhe at\nĠA lic\nĠcol oured\nĠN AFTA\nab o\nĠmac ros\nind ependent\ns weet\nĠsp ac\nĠK abul\nĠ Ä\nem e\nĠdict ated\nĠsh outs\n= {\nĠr ipping\nĠSh ay\nĠCr icket\ndirect ed\nĠanalys ed\nĠWAR RANT\nag ons\nĠBlaz ers\nĠche ered\nĠar ithmetic\nĠTan z\n37 3\nĠFl ags\nĠ29 5\nĠw itches\nĠIn cluded\nĠG ained\nĠBl ades\nG am\nĠSam antha\nĠAtl antis\nĠPr att\nĠspo iled\nĠI B\nĠRam irez\nPro bably\nre ro\nĠN g\nĠWar lock\nt p\nĠover he\nĠadministr ations\nĠt int\nĠreg iment\nĠpist ols\nĠblank ets\nĠep ist\nĠbowl s\nĠhydra ulic\nĠde an\nĠj ung\nĠasc end\n70 5\nĠSant iago\nÃ ®\nĠun avoid\nĠSh aman\nre b\nĠstem ming\n99 8\nĠM G\nst icks\nesthes ia\nER O\nĠmor bid\nĠGr ill\nĠP oe\nany l\nĠdele ting\nĠSurve illance\nĠdirect ives\nĠiter ations\nĠR ox\nĠMil ky\nF ather\nĠpat ented\n44 7\nĠprec ursor\nĠm aiden\nĠP hen\nĠVe gan\nĠPat ent\nK elly\nRedd itor\nĠn ods\nĠvent ilation\nĠSchwar z\nĠw izards\nĠomin ous\nĠHe ads\nĠB G\nĠl umber\nĠSp iel\nĠis Enabled\nĠancest ral\nĠSh ips\nĠwrest ler\nph i\nĠy uan\nĠRebell ion\nĠice berg\nĠmag ically\nĠdivers ion\nar ro\nyth m\nĠR iders\nĠRob bie\nĠK ara\nĠMain tenance\nĠHer b\nĠhar ms\np acked\nĠFe instein\nĠmarry ing\nĠbl ending\nĠR ates\nĠ18 80\nĠwr ink\nĠUn ch\nĠTor ch\ndesc ribed\nĠhuman oid\nilit ating\nĠCon v\nĠFe ld\nIGH TS\nĠwhistlebl ower\nort mund\nets y\narre tt\nĠMon o\nĠI ke\nĠC NBC\nĠW AY\nĠMD MA\nĠIndividual s\nĠsupplement al\nĠpower house\nĠSt ru\nF ocus\naph ael\nĠCol leg\natt i\nZ A\nĠp erenn\nĠSign ature\nĠRod ney\nĠcub es\nidd led\nĠD ante\nĠIN V\niling ual\nĠC th\nĠso fa\nĠintimid ate\nĠR oe\nĠDi plom\nĠCount ries\nays on\nĠextrad ition\nĠdis abling\nĠCard iff\nĠmemor andum\nĠTr ace\nĠ?? ?\nse ctor\nĠRou hani\nĠY ates\nĠFree ze\nĠbl adder\nM otor\nĠProm ise\nant asy\nĠforesee able\nĠC ologne\ncont ainer\nĠTre es\nĠG ors\nĠSin clair\nĠbar ring\nkey e\nĠsl ashed\nĠStat istical\né ĩ\nĠâĸ º\nAll ows\nĠhum ility\nĠdr illed\nĠF urn\n44 3\nĠse wage\nĠhome page\nĠcour tyard\nĠv ile\nĠsubsid iaries\naj o\ndirect ory\nĠam mon\nV ers\ncharg es\nĠ} }\nĠCh ains\nĠ24 6\nn ob\nĠper cept\nĠg rit\nĠfisher men\nĠIraq is\nĠDIS TR\nĠF ULL\nĠEval uation\ng raph\nat ial\nĠcooper ating\nĠmel an\nĠenlight ened\nĠal i\nt ailed\nĠsal ute\nĠweak est\nĠBull dogs\nU A\nĠAll oy\nĠsem en\noc ene\nĠWilliam son\ns pr\n, âĢĶ\nĠG F\nitt ens\nBe at\nĠJ unk\niph ate\nĠFarm ers\nĠBit coins\nig ers\nd h\nĠL oyal\np ayer\nĠentert ained\nĠpenn ed\nĠcoup on\nQue ue\nĠweaken ing\nc arry\nĠunderest imate\nĠshoot out\nĠcharism atic\nĠProced ure\nĠprud ent\nin ances\nĠric hes\nĠcort ical\nĠstr ides\nĠd rib\nĠOil ers\n5 40\nĠPer form\nĠBang kok\nĠe uth\nS ER\nĠsimpl istic\nt ops\ncamp aign\nQ uality\nĠimpover ished\nĠEisen hower\nĠaug ment\nĠH arden\nĠinterven ed\nĠlist ens\nĠK ok\nĠs age\nĠrub bish\nĠD ed\nĠm ull\npe lling\nĠvide ot\nProdu ction\nD J\nm iah\nĠadapt ations\nĠmed ically\nĠboard ed\nĠarrog ance\nĠscra pped\nĠopp ress\nFORM ATION\nĠj unction\n4 15\nEE EE\nS kill\nĠsub du\nĠSug gest\nĠP ett\nĠle tt\nĠMan ip\nĠC af\nĠCooper ation\nT her\nĠreg ained\n¶ æ\nref lect\nĠth ugs\nĠShel by\nĠdict ates\nĠWe iner\nĠH ale\nĠbatt leground\ns child\nĠcond ol\nh unt\nosit ories\nĠacc uses\nFil ename\nĠsh ri\nĠmotiv ate\nĠreflect ions\nN ull\nĠL obby\n¥ µ\nĠS ATA\nĠBack up\nÑ ĥ\nn in\nĠCor rection\nĠju icy\nut ra\nĠP ric\nĠrest raining\nĠAir bnb\nĠAr rest\nĠappropri ations\nĠsl opes\nĠmans laughter\nĠwork ings\nĠH uss\nĠF rey\nLe ave\nĠHarm ony\nĠF eder\nĠ4 30\nĠt rench\nĠglad ly\nĠbull pen\nĠG au\nb ones\nĠgro ove\nĠpre text\nã ħĭ\nĠtransm itter\nĠComp onent\nĠunder age\nĠEm pires\nT ile\nĠo y\nĠMar vin\nĠC AS\nĠbl oss\nĠrepl icated\nĠMar iners\nMarc us\nĠBl ocks\nĠliber ated\nĠbutter fly\nFe el\nĠfer mentation\nĠyou tube\nĠoff end\nĠTer m\nres ist\nĠcess ation\nĠinsurg ency\nĠb ir\nĠRa ise\n59 5\nĠhypothes es\n50 2\nĠpl aque\nocr at\nĠjack ets\nĠHuff Post\nam ong\nĠconf er\n48 7\nĠL illy\nĠadapt ing\nĠF ay\nĠsh oved\nve c\nĠref ine\nĠg on\nĠgun men\nz ai\nĠShut tle\nĠI zan\nĠ19 13\nĠple thora\nÂ· Â·\nĠ5 10\nĠp uberty\nĠ24 1\nĠWe alth\nĠAl ma\nĠM EM\nĠAd ults\nC as\npr ison\nR ace\nĠwater proof\nĠathlet icism\nĠcapital ize\nĠJu ice\nĠillum inated\nĠP ascal\nĠirrit ation\nĠWitness es\nad le\nĠAst ro\nĠf ax\nĠEl vis\nPrim ary\nĠL ich\nĠEl ves\nĠres iding\nĠst umble\n3 19\nĠP KK\nĠadvers aries\nD OS\nĠR itual\nĠsm ear\nĠar son\nident al\nĠsc ant\nĠmon archy\nĠhal ftime\nĠresid ue\nĠind ign\nĠSh aun\nĠEl m\naur i\nA ff\nW ATCH\nĠLy on\nhel ps\n36 1\nĠlobby ist\nĠdimin ishing\nĠout breaks\nĠgo ats\nf avorite\nĠN ah\nson ian\nĠBo oster\nĠsand box\nĠF are\nĠMalt a\nĠatt Rot\nĠM OR\nld e\nĠnavig ating\nT ouch\nĠunt rue\nĠDis aster\nĠl udicrous\nPass word\nĠJ FK\nblog spot\n4 16\nĠUN DER\nern al\nĠdelay ing\nT OP\nĠimpl ants\nĠAV G\nĠH uge\natt r\nĠjournal istic\nĠPe yton\nĠI A\nR ap\ngo al\nĠProgram me\nĠsm ashing\nw ives\nprint ln\nĠPl ague\nin us\nEE P\nĠcru iser\nĠPar ish\numin ium\nĠoccup ants\nĠJ ihad\nm op\nĠp int\nĠhe ct\nĠMe cca\ndirect or\nĠFund ing\nĠM ixed\nĠst ag\nT ier\nĠg ust\nĠbright ly\nors i\nĠup hill\nR D\nĠles ions\nĠBund y\nliv ious\nĠbi ologist\nĠFac ulty\nĠAuthor ization\nĠ24 4\nAll ow\nï ¸\nĠGi ul\nĠpert inent\not aur\nes se\nĠRo of\nĠunman ned\n35 1\nĠSh ak\nĠO rient\nĠend anger\nD ir\nĠrepl en\ned ient\nĠtail or\nĠgad gets\nĠaud ible\nâĺ Ĩ\nN ice\nĠbomb ard\nĠR ape\nĠdef iance\nĠTW O\nĠFilip ino\nĠunaff ected\nerv atives\nĠso ared\nĠBol ton\nĠcomprom ising\nĠBrew ers\nR AL\nĠA HL\nicy cle\nĠv ampires\nĠdi pped\noy er\nĠX III\nĠsidew ays\nĠW aste\nĠD iss\nĠâĶľ âĶĢâĶĢ\n$ .\nĠhabit ats\nĠBe ef\ntr uth\ntr ained\nspl it\nR us\nAnd y\nĠB ram\nRE P\np id\nè£ ħ\nĠMut ant\nAn im\nĠMar ina\nĠfut ile\nhig hest\nf requency\nĠepile psy\nĠcop ing\nĠconc ise\nĠtr acing\nĠS UN\npan el\nĠSoph ie\nĠCrow ley\nĠAd olf\nĠShoot er\nĠsh aky\nĠI G\nĠL ies\nĠBar ber\np kg\nĠupt ake\nĠpred atory\nUL TS\n/ **\nĠintox icated\nĠWest brook\nod der\nhe ment\nĠbas eman\nAP D\nst orage\nĠFif ty\ned itor\nG EN\nUT ION\nir ting\nĠse wing\nr ift\nĠag ony\nĠS ands\nĠ25 4\nC ash\nĠl odge\nĠp unt\nN atural\nĠIde as\nĠerrone ous\nĠSens or\nĠHann ity\nĠ19 21\nĠm ould\nĠG on\nkay a\nĠanonym ously\nĠK EY\nĠsim ulator\nW inter\nĠstream ed\n50 7\n? \",\nĠte ased\nĠco efficient\nĠwart ime\nĠTH R\n' '.\nĠBank ing\nmp ire\nĠf andom\nĠl ia\nG a\nĠdown hill\nĠinterpre ting\nInd ividual\nN orm\nĠjealous y\nbit coin\nĠple asures\nĠToy s\nĠChev rolet\nĠAd visor\nIZ E\nĠrecept ions\n70 6\nC ro\nĠ26 2\nĠcit rus\nir u\nReview er\nject ed\nU ES\nan z\n19 81\nĠWork er\nĠcompl ied\nores cent\ncontin ental\nT on\nĠPr ism\nĠShe ep\nĠ28 8\nn ox\nĠV og\nO rd\nĠreal ms\nte k\nĠirrig ation\nĠbicy cles\nĠelectron ically\np oly\nt all\n() );\nĠaest hetics\nĠInteg rated\nExpl ore\nĠd unk\n47 6\np ain\nĠJac ques\nĠD mit\nFram es\nĠreun ited\nĠhum id\nD ro\nP olitical\nĠyouth ful\nĠent ails\nĠmosqu ito\n36 3\nspe cies\nĠcoord inating\nĠMay hem\nĠMagn us\nM ount\nImpro ved\nĠST ATE\nATT LE\nĠflow ed\nĠtack led\nĠfashion ed\nĠre organ\niv ari\nf inger\nĠreluct antly\net ting\nĠV and\nyou ng\nĠGar land\nĠpresum ption\nĠamen ities\nĠPle asant\non ential\nĠO xy\nĠmor als\nĠY ah\nRead y\nSim on\nEn h\nD emon\nĠcl ich\nMon itor\nĠD U\nĠwel comes\nĠstand out\nĠdread ful\nĠban anas\nĠball oons\nh ooting\nbas ic\nĠsuff ix\nĠd uly\ncan o\nCh ain\nat os\nĠgeop olitical\nĠ( &\nĠGem ini\nÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ ÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤÃĥÃĤ\nĠacqu itted\nL uck\nprot ect\n10 24\nĠsc arcity\nĠmind fulness\nec ided\nD N\npr ime\nĠPres idents\nĠVID EO\nĠ( âĪĴ\nadd ock\nN OR\nĠP ru\np un\nĠL OL\n)) ))\nĠL iqu\nĠS AS\nĠsty ling\nĠpunish ments\nĠnum b\nĠasc ertain\nĠRock ies\nf lu\nTh umbnail\nĠperpet rated\nĠSem i\nĠdis arm\nĠOld er\nĠEx ception\nĠexponent ially\nĠCommun ities\nĠabol ish\nĠPart ner\npt oms\nĠ7 77\nĠFo ley\nĠC ases\nĠgre ase\nĠReb irth\nG round\nĠ; )\nĠDoct rine\nik ini\nY e\nĠBl ossom\nĠpers ists\nb ill\nĠinf usion\nĠbud dies\n9 11\nĠPat ient\nĠdem os\nĠacquaint ance\nĠP aw\nat ari\nĠx ml\nĠfasc ination\nĠSer ve\nÏ Ĥ\nbr anded\nĠa z\nReturn s\nĠover shadow\nĠro am\nĠspeed y\nn umbered\nhel ial\nĠdisc iple\nĠass urances\ng iven\npect ing\nĠN atalie\nçĶ °\nĠmosquit oes\nrote in\nĠnumer ic\nĠindepend ents\nĠtrans itional\nĠreaction ary\nĠMech dragon\ndo ctor\nĠshort est\nĠsequ ential\nĠB ac\nĠAccount s\nãģ Į\nach y\nract ive\nĠReg iment\nĠbreat htaking\nffic iency\nĠB ates\nĠ3 11\nĠward robe\nft s\nĠBer k\nSim ply\nĠRivers ide\niver ing\nident ial\nlu cent\nĠen riched\nĠCon ver\nĠG iving\nãĥ Ļ\nĠlegal ize\nĠF TC\nĠfre aking\nM ix\nĠter restrial\nes ian\nci ents\nW ing\nLO AD\nĠled ge\nĠViol ent\nĠMet all\nĠ30 8\nĠs outheastern\nhett o\nM eat\nĠslow down\nĠret reated\nJere my\nend as\n**** *\ner ic\nĠre ins\nopp able\nĠHuman ity\near ances\nrig an\nC amera\nĠwa ivers\ns oc\nĠalter ation\ntrans form\nĠC emetery\n50 6\nĠindef inite\nĠstim ulating\ny g\n60 3\nĠS op\nĠdescript ive\nPh ase\nĠEd mund\nĠpneum onia\nvent us\nA mb\nĠlabor atories\nĠEx clusive\nug ar\nW ere\nĠmalf unction\nĠhomosexual s\nĠ---- ---\nun i\nĠturb ines\nĠEqu ity\nD u\nĠmind ed\nĠR H\nĠBlack hawks\nĠfe ats\nĠ17 00\nre pl\n36 2\nlad en\nĠindisp ensable\nly ss\ntt i\nĠre el\nĠdiver ted\nĠlik eness\nĠsubscript ions\nĠfing ert\nĠfil thy\ndest ruct\nd raft\nĠBernard ino\nl aunch\nĠper plex\nĠS UM\ncar b\nĠswe ater\nĠVent ure\nĠJ ag\nĠCele b\nĠV oters\nĠstead fast\nĠathlet ics\nĠHans on\nĠDr ac\nTr acker\nĠcomm end\nĠPres idency\nĠD ID\nin formed\nĠweb page\nP retty\nĠforce fully\nãĥĥ ãĤ¯\nĠrel ocation\nĠsat ire\nâ ī\nĠSunder land\næ Ħ\nV oice\n???? ????\nĠinform ant\nĠbow el\nĠUn iform\nĠ ...\"\nĠpur ge\nĠpic nic\nĠU mb\nĠU PDATE\nĠSapp hire\nĠSt all\nle arn\nĠobject ively\nĠob liter\nĠlooph ole\nĠjour neys\nĠo mission\nPro s\nĠSid ney\npl oma\nĠspray ed\nĠg uru\nĠtra itor\nĠtim et\nĠsn apping\nĠSe vent\nurn al\nĠUk ip\nĠb owed\npor al\nl iberal\nR os\nQuest ions\ni OS\nĠsummar ize\nST AT\nĠ18 50\nap est\nĠl ender\nĠVari able\nbr inging\nĠL ORD\n, )\nĠcollaps es\nx iety\nĠN ed\nY D\nĠSch a\nĠantib ody\nĠdis band\ny re\nill usion\nĠro ver\ns hed\nĠHiro sh\ncc i\nĠcal am\nĠMort on\nP interest\nĠ19 28\nĠE uras\nord es\nĠf ences\nĠIn ventory\nĠVal encia\nĠU d\nĠT iff\nĠsqu e\nĠqu otation\nĠtroubles ome\ner ker\nQU EST\nĠKing doms\ns outh\nĠle vy\nPr ince\nĠSt ing\nĠnick named\nĠapp e\nĠphot ographic\nĠcorp us\nre ference\nĠT rog\nU nt\n) =(\nĠLat via\nĠactiv ating\nĠlicense e\nĠdispar ities\nĠNews letter\nãĥĥ ãĥĪ\nĠfree ing\nĠJe ep\nĠPer ception\nins k\nĠsil icone\nĠHay den\nLe an\nĠSuz uki\nibr arian\n66 8\nĠsp or\nĠcorrel ations\nag hetti\nĠtu ber\nĠIP CC\nil us\nĠV u\nĠwealth iest\nĠCarb uncle\nan za\nĠfool ed\nĠZ ur\nĠd addy\nran o\nil ian\nĠknock out\nf man\nrequ ired\nĠWik ileaks\nĠD uffy\nON T\nĠins ol\nĠObject s\nĠb ou\nĠNord ic\nĠIns ert\nsc an\nĠd ancers\nĠid iots\nmajor ity\nĠNev ille\nĠFree BSD\nĠt art\npan ic\n69 0\nĠcoc oa\nĠsam pled\nĠlook up\nInd ust\nĠinject ions\ngen re\nĠa u\nĠroad way\nĠgen itals\nK ind\nĠEx aminer\nĠY az\nF resh\nĠpar alysis\nĠAl uminum\nĠre ap\nok Ã©\nĠsl oppy\nĠTun nel\npos ium\nner y\nen ic\nĠher bal\nĠOut er\nĠBuild er\nĠinc ur\nĠide ologies\nĠback ups\ncons uming\nĠDet ect\nde ck\nĠKN OW\nĠG ret\nĠM IC\nĠtough ness\nĠEx hibit\nĠh ive\nL es\nĠSCH OOL\nĠAt ari\nald e\nĠN ull\nand estine\nm ouse\nĠbrig ade\n48 9\nĠrev ol\nĠLaw son\nĠW ah\nop oly\neb ted\nĠS aunders\nĠ3 13\nĠW inc\nĠtab oo\nĠHel met\nĠw edge\nch ip\nĠT ina\nb g\nĠinf uri\nr n\nĠanomal ies\nĠSy nc\nĠEx am\nĠComm it\nĠDi ary\nĠALS O\nĠDe bor\nomed ical\nĠcomprehens ion\n6 55\nĠempower ing\nĠ ire\nĠju ices\nĠE TH\nĠBox ing\n=\" /\nĠfacilit ated\np oke\nĠPars ons\nĠMod er\ntra vel\nĠcivil izations\nĠliber tarians\nĠrun e\nĠCl arks\nat hed\nĠcampaign ers\nĠDis patch\nĠFah renheit\nĠCap com\n-------- --\nĠl ace\nĠdr aining\nĠl iner\nĠArt ificial\nÃ© n\nt ask\n] ).\nĠGM O\nĠOper ator\nord inary\nĠInf luence\nĠU ps\nĠpot ency\nuss en\nosp ons\nĠSw im\nĠDead line\nUn ity\nĠcul inary\nĠenlight enment\nĠwe arer\nĠmin ed\nĠp ly\nĠinc est\nĠDVD s\nW alk\nB TC\nTr ade\nĠdev al\nib and\nĠOvers ight\nPalest inian\nĠd art\nĠm ul\nL R\nĠrem ovable\nĠReal ms\nì Ŀ\nĠmisc ar\nĠV ulkan\n68 5\nÃ¨ re\nĠS ap\nĠmer ging\nĠCar ly\nche ster\nĠbr isk\nĠlux urious\nĠGener ator\nĠbit terness\nĠed ible\nĠ24 3\nT G\nĠrect angle\nWith No\nbel ow\nJ enn\nĠdark est\nĠh itch\nĠdos age\nĠsc aven\nĠK eller\nĠIllust rated\nCertain ly\nĠMaver icks\nMarg inal\nĠdiarr hea\nĠenorm ously\nĠ9 99\nsh r\nqu art\nĠadam ant\nĠM ew\nĠren ovation\nĠcerv ical\nĠPercent age\nen ers\nĠKim ber\nĠflo ats\nĠde x\nĠW itcher\nĠSwan sea\nd m\nĠsal ty\ny ellow\nĠca pe\nĠDr ain\nĠPaul a\nĠTol edo\nles i\nMag azine\nĠW ick\nĠM n\nĠA ck\nĠR iding\nAS ON\nĠhom ophobic\nAR P\nĠwand ered\nC PU\nood oo\nĠP ipe\nĠtight ening\nĠBut t\n3 18\nĠdesert ed\nS ession\nĠfacilit ating\nJ ump\nĠemer gencies\nOW ER\nĠexhaust ive\nĠAF TER\nĠheart beat\nĠLab el\nack y\nĠCert ified\nilt ration\nZ e\nĠU tt\nĠ13 00\nĠpres ume\nĠDis p\nĠsur ged\nĠdoll s\nCol umb\nĠchim pan\nĠR azor\nĠt icks\nĠcouncill or\nĠpilgr image\nĠReb els\nĠQ C\nĠA uction\nx ia\nik k\nb red\nĠinsert ion\nĠco arse\nd B\nSE E\nĠZ ap\nĠF oo\nĠcontem por\nĠQuarter ly\not ions\nĠAl chemist\nĠT rey\nĠDu o\nS weet\n80 4\nĠGi ov\nĠfun n\nN in\nh off\nĠram ifications\nĠ19 22\nĠExper ts\naz es\nĠgar ments\nar ial\nĠN ab\nĠ25 7\nĠV ed\nĠhum orous\nĠPom pe\nĠn ylon\nĠlur king\nĠSerge y\nĠMatt is\nĠmisogyn y\nĠComp onents\nĠWatch ing\nĠF olk\nract ical\nB ush\nĠt aped\nĠgroup ing\nĠbe ads\nĠ20 48\nĠcon du\nquer que\nRead ing\nĠgriev ances\nUlt ra\nĠend point\nH ig\nĠSt atic\nĠScar borough\nL ua\nĠMess i\na qu\nĠPsy Net\nĠR udd\nĠa venue\nv p\nJ er\nĠsh ady\nĠRes ist\nĠArt emis\nĠcare less\nĠbro kers\nĠtemper ament\nĠ5 20\nT ags\nĠTurn ing\nĠut tered\nĠp edd\nĠimpro vised\nĠ: (\nĠtab l\nĠpl ains\n16 00\npress ure\nĠEss ence\nmarg in\nfriend s\nĠRest oration\nĠpoll ut\nĠPok er\nĠAugust ine\nĠC IS\nĠSE AL\nor ama\nĠth wart\nse ek\nĠp agan\nÂ º\ncp u\nĠg arn\nĠass ortment\nĠI LCS\nt ower\nRecomm ended\nĠun born\nĠRandom Redditor\nĠRandomRedditor WithNo\nĠparaly zed\nĠeru ption\nĠinter sect\nĠSt oke\nĠS co\nB ind\nå ¾\nĠP NG\nĠNeg ative\nĠNO AA\nLe on\nĠall oy\nĠL ama\nĠD iversity\n5 75\nĠunderest imated\nĠSc or\nĠm ural\nĠb usted\nso on\nl if\nĠnone x\nĠall ergy\nĠUnder world\nĠR ays\nĠBl asio\nĠh rs\nĠD ir\nĠ3 27\nby ter\nĠrepl acements\nĠactiv ates\nri ved\nM H\nĠp ans\nĠH I\nĠlong itudinal\nĠnu isance\nal er\nĠsw ell\nĠS igned\ns ci\nĠIs les\nĠA GA\nĠdef iant\nĠson ic\noc on\nK C\nĠA im\nt ie\nah ah\nĠm L\nD X\nĠb isc\nĠBill board\nĠSY STEM\nNE Y\nga ard\nĠdist ressed\nformer ly\nAl an\nĠche fs\nĠopt ics\nĠC omet\nĠAM C\nĠredes igned\nirm ation\nĠsight ings\n38 2\n3 11\nĠW B\nĠcont raction\nĠT OTAL\nD ual\nĠstart led\nĠunderstand ably\nĠsung lasses\nETH OD\nĠd ocker\nĠsurf ing\nĠH EL\nĠSl ack\nton es\nĠsh alt\nVis ual\n49 8\nDep artment\nc ussion\nĠunrest ricted\nĠt ad\nĠre name\nemploy ed\nĠeduc ating\nĠgrin ned\nbed room\nĠActiv ities\nĠV elvet\nĠSW AT\nĠsh uffle\nig or\nĠsatur ation\nF inding\nc ream\nic ter\nĠv odka\ntr acking\nte c\nĠfore ground\niest a\nĠve hement\nĠEC B\nĠT ie\nE y\nĠt urtles\nĠRail road\nĠKat z\nĠFram es\nĠmen ace\nĠFell owship\nĠEss ential\nugg ish\nĠdri p\nch witz\nĠKy oto\ns b\nĠN ina\nParam eter\nĠal arms\nĠCl aud\nĠpione ering\nĠchief ly\nĠSc ream\nCol lection\nĠthank fully\nĠRonald o\nåŃ Ĳ\nst rip\nĠDisney land\ncom mercial\nSee ing\nS oul\nĠevac uate\nĠc iv\nĠAs he\nĠdiv ides\nĠD agger\nrehens ive\nĠber ries\nĠD F\nĠs ushi\nĠplur ality\nW I\nĠdisadvant aged\nĠbatt alion\nob iles\n45 1\nĠcl ing\nĠunden iable\nĠL ounge\nĠha unt\np he\nĠquant ify\nĠdiff ered\nĠ[* ]\nĠV iz\nc um\nsl ave\nĠvide og\nĠqu ar\nĠbund les\nĠAl onso\nt ackle\nĠneur onal\nĠlandsl ide\nconf irmed\nĠDep th\nĠrenew ables\nB ear\nĠMaced onia\nĠjer seys\nĠb unk\nĠSp awn\nĠControl s\nĠBuch anan\nĠrobot ics\nĠemphas izing\nĠTut orial\nh yp\nist on\nĠmonument al\næ °\nĠCar ry\nĠt bsp\nen ance\nH ill\nart hed\nĠro tten\nDe an\nĠtw isting\nĠgood will\nĠimm ersion\nL iving\nĠbr ushes\nĠC GI\nĠAt k\ntr aditional\nĠph antom\nĠSt amina\nĠexpans ions\nĠMar in\nĠembark ed\nĠE g\nint estinal\nĠPE OPLE\nĠBo oth\nĠApp alach\nĠreleg ated\nV T\nM IT\nĠmust er\nĠwithdraw ing\nĠmicrosc ope\nĠG athering\nĠC rescent\nĠArgent ine\nĠDec re\nĠDomin ic\nĠbud s\nant age\nĠI on\nĠwid ened\nONS ORED\nĠGl oves\niann opoulos\nraz en\nfe el\nĠrepay ment\nĠhind sight\nĠRE ALLY\nĠPist ol\nĠBra h\nĠwat ts\nĠsurv ives\nĠfl urry\niss y\nAl ert\nĠUrug uay\nPh oenix\nS low\nĠG rave\nĠF ir\nĠmanage able\nĠtar iff\nĠU DP\nĠPist ons\nĠNiger ian\nĠstrike outs\nĠcos metics\nwhel ming\nf ab\nc ape\npro xy\nĠre think\nĠover coming\nsim ple\nĠw oo\nĠdistract ing\nĠSt anton\nĠTuls a\nĠD ock\n65 9\nĠdisc ord\nĠEm acs\nĠV es\nĠR OB\nĠreass uring\nĠcons ortium\nMuslim s\n3 21\nĠprompt s\nse i\nĠH itch\nimp osed\nĠF ool\nĠindisc rim\nwr ong\nbu querque\nD avis\n! ]\nĠtim eless\nĠNE ED\nĠpestic ide\nĠrally ing\nĠCal der\nĠå ¤\nĠx p\nĠUn le\nĠEx port\nlu aj\nB uff\n) </\nB oot\nĠChrys ler\nor ative\nM ess\nĠneglig ible\nert odd\nĠMush room\nĠG ale\ng c\nĠCos by\nĠR ural\nrit ical\nB ell\nĠturb ine\n00 200000\nĠlegit imately\nĠAnim ated\nT ED\nĠThe odore\nc onduct\nĠH ier\nĠcounterfe it\nĠAlger ia\nĠun beat\ncont roller\nĠun res\nĠscram bling\nĠFall on\nT es\nĠam ber\nĠroy alties\nĠShel ter\nĠL ester\nĠclass ify\nRem ote\nĠun heard\nĠcontrovers ies\nĠenrich ment\nĠYan kee\ng amer\nĠpl atinum\nĠec ology\nĠS ark\nĠunt ouched\nĠsuper visors\nĠ\" %\nĠf ooth\nĠcomm ons\nĠnarc otics\nĠind ices\nĠP ly\nĠaddition ally\nĠGaw ker\nĠE Q\nPl aying\nĠcave at\nĠAbs olute\noss us\nB aby\nĠr ation\nĠres in\nĠcalib ration\nĠNew port\nĠkn ocks\nv t\nĠcomp ost\nSc ene\nĠsar cast\nĠkiss es\nĠn s\nall i\nĠMar cel\nĠP iet\niat rics\nĠsurround s\nĠRep rodu\nĠPhill ies\nĠuncertain ties\nĠE ur\nĠRom ance\nĠH ath\nĠNeed s\nĠCl oak\nĠcre m\nque ue\nĠ3 55\nĠup front\n] );\nĠrecip roc\nĠ19 27\nĠ11 00\nut su\nĠdep ressive\now ment\nF ans\nĠme ch\nĠann ihil\nĠcounter terrorism\nĠFig ures\nb old\nĠMo ines\nĠDri vers\nĠmanuscript s\nĠCrypt o\nĠhyp not\nredd its\nĠprosec utions\nĠdiver t\nCR IP\nĠB ene\nĠRe ggie\nĠtax ing\nĠMor ales\nent ing\nt ur\nsign ificant\nĠPR OV\nĠstr ands\nĠp ouch\nĠR ookie\n» Ĵ\nĠnic er\nhe my\nh w\nEC A\nĠintimid ated\nĠstr icter\nĠmicro bial\ndet ails\nĠv ows\nĠqu ake\nhh hh\nĠrein vent\nU b\nĠrel inqu\nĠBuff ett\nlic ensed\nitte red\nĠPic ard\nĠche wing\nu cl\norgan ic\nĠlocal ized\nĠEconom ist\nĠacqu ainted\nDef inition\ns ed\nCrit ics\nĠc c\n45 3\n38 1\nĠfell ows\nĠcheck points\n0 25\nĠre election\nĠmed iated\nĠK DE\nĠhurd le\nĠtext ing\nPer fect\nĠtrust ees\nfect ure\nĠd ich\nmon ary\nĠdist inctions\nĠ14 00\nĠus her\nĠparas ites\nĠSh aring\nĠV im\nĠbar becue\nĠMin isters\nere lla\nĠe b\nĠm c\nĠSome how\nĠIn sect\nch anges\nb road\nĠBy z\nĠgrap es\n66 9\nĠ= ================\nĠass imil\nĠhaun ting\nĠfire power\nĠdef amation\nem phasis\nĠcomp ose\nĠallerg ies\nĠstr ang\nroll ers\nb ang\nĠbrew ers\nron gh\nri ot\np oor\nc old\nS ample\nĠbu oy\n0 40\nĠCourt ney\nĠ26 8\nĠWed ding\n70 2\nĠobsess ive\nĠbra king\nĠL al\nan ical\nå ¦\nat en\nCon struction\nĠclin ically\niers hip\nN ames\nĠDisc uss\nĠRam os\nĠloc ale\nĠAgric ultural\nEn able\nĠhorse power\nent ure\nP ref\nC ourt\nĠstaff ing\nĠfut uristic\ndri vers\nĠMarket place\næĪ ¦\nFriend s\nĠdam ning\nĠCustom ers\nĠwe eds\nĠM ai\nĠag ile\nĠT att\nic ent\nR anked\ncro ft\nĠKat y\nExt reme\nĠcar ve\nĠR over\nĠBy ron\n37 2\nĠconduct s\nr atch\nit ia\nĠPump kin\nSad ly\nRel oaded\nP olicy\nĠl ick\npe ak\nis ks\nĠCD s\nĠEn cyclopedia\nin itial\nC os\nĠAware ness\nĠD ram\n$$ $$\nĠr iff\nĠscript ure\nrun ners\nĠbo iler\nons on\no in\nĠham string\nĠcat aly\nĠArch bishop\nch all\nĠf aux\nok in\nlocal host\nĠN AME\nad obe\nS AN\nam ate\nĠscram ble\nĠcar c\nĠMan ifest\nĠCed ar\nĠSer gio\nl ater\nff er\nĠgrapp ling\nĠDe utsche\nagon ists\nĠNew sp\nĠpret ended\narch ment\nĠcur ated\nĠhead phone\nĠUn common\nĠS IGN\nA gent\nĠdead lines\nĠhorizont ally\nĠM AT\nĠSum mers\nĠord ained\nĠLast ly\nĠKend all\nĠfr ig\nĠMach ina\nĠWater loo\nĠMex icans\nĠprotect or\nĠgl are\n} \"\nPrem ium\nĠr ift\nĠTelesc ope\nMet al\nĠrec apt\nĠ; ;\nĠincl ination\nĠimp oses\ning en\n^ {\nĠh aste\nĠd olphins\nĠcomm uters\npl anned\nc ong\nm x\nĠU pload\nĠext rap\nĠTuc son\nĠExpl oration\nefe ated\nĠsl ender\n70 3\nĠB uk\nis el\nĠcompet itiveness\nch lor\nĠP ermanent\nĠE verett\nĠSpecial ist\nĠS OL\nĠcy an\nĠEx actly\nU F\nĠL IFE\nary l\non et\nĠEmploy ee\naw ed\nĠRat ings\nĠextra vag\nul hu\nĠPl ane\nĠelev ate\nĠCoord inator\nĠWat kins\nĠex cludes\nĠsent ient\nĠep och\nĠall oc\nPre viously\nĠSh y\nĠSlov akia\nL OCK\nĠmarked ly\nĠkn ob\nĠadventure rs\nĠBe en\nĠCost s\namm ers\nĠon slaught\nĠSupport ed\nĠT au\nik arp\nĠS overe\nĠHam pton\nãĤ ī\nPre v\nĠW orse\nĠc ottage\nĠH ades\nle z\nb owl\nĠfrag rance\nĠL ok\nEM OTE\nĠPet ro\nĠ19 25\nĠP end\nprodu cing\nĠrel ocate\nv ati\np ole\nĠsem in\nĠN UM\nĠrock ed\nb uff\nb ly\nRep ly\nĠH ai\nĠartic ulated\nĠIslam abad\n66 5\nĠClaim s\nDes ktop\nĠtrust ee\nĠscript ing\nĠS ob\nĠAs ylum\nSTD OUT\nĠCl own\nĠD ortmund\nĠDev on\nl ite\nĠMar ble\nĠb unker\nĠcre st\nĠarous al\nĠS ears\nĠBudd y\nered ith\nĠP olly\nĠdec ode\nĠV ish\nĠRef lect\nan on\nĠrefund s\nimm ers\nH M\nĠwip ing\nĠpuzz led\nĠmat te\nun o\nP ierre\n) ),\nĠt ainted\nĠsymbol ism\nĠF raz\nĠprotest ors\nethe us\n%% %%\nW ra\nĠl ax\nad em\natur ation\nãĥ ĵ\nĠTra iler\nĠE NG\nĠBows er\nĠatt m\nD ur\n80 7\nĠsid x\nĠc ider\nĠA ffect\nĠw oven\nĠBark er\nben ef\nĠdst g\nĠRy u\n> [\nĠsq or\nS audi\nĠis tg\nĠindul ge\npro c\nĠdisg usted\nĠcomp ounded\nĠn em\nĠschool ing\nĠC ure\nprocess ing\nS ol\nĠpro verb\nit ized\nĠAlv arez\nĠscar f\nĠrect angular\nre ve\nĠh ormonal\nĠSt ress\nitiz en\nĠ4 25\ngirl s\nĠNo ir\nĠR app\nĠmar ches\nch urch\nĠUs es\nĠ40 5\nĠBer m\nĠord inances\nĠJud gment\nCharg es\nĠZ in\nĠdust y\nĠstraw berries\nĠper ce\nĠTh ur\nĠDebor ah\nnet flix\nĠLam bert\nĠam used\nĠGu ang\nY OU\nR GB\nĠC CTV\nĠf iat\nr ang\nĠf ederation\nĠM ant\nĠB ust\nĠM are\nrespect ive\nĠM igration\nĠB IT\n59 0\nĠpatriot ism\nĠout lining\nreg ion\nĠJos Ã©\nĠbl asting\nĠEz ra\nB s\nĠundermin es\nĠSm ooth\nĠcl ashed\nrad io\nĠtransition ing\nĠBucc aneers\nĠOw l\nĠplug s\nĠh iatus\nĠPin ball\nĠm ig\nĠNut r\nĠWolf e\nĠinteg ers\nĠor bits\nĠEd win\nĠDirect X\nb ite\nĠbl azing\nv r\nEd ge\nĠP ID\nex it\nĠCom ed\nĠPath finder\nĠGu id\nĠSign s\nĠZ er\nĠAg enda\nĠreimburse ment\nM esh\ni Phone\nĠMar cos\nĠS ites\nh ate\nen burg\nĠs ockets\np end\nBat man\nv ir\nĠSH OW\nĠprovision al\ncon n\nĠDeath s\nAT IVE\nPro file\nsy m\nJ A\nĠnin ja\ninst alled\nid ates\neb ra\nĠOm aha\nĠse izing\nĠBe asts\nĠsal ts\nM ission\nGener ally\nĠTr ilogy\nhe on\nleg ates\nĠd ime\nĠf aire\npar able\nG raph\nĠtotal ing\nĠdiagram s\nĠYan uk\nple t\nĠMe h\nĠmyth ical\nĠStep hens\naut ical\nochem istry\nĠkil ograms\nĠel bows\nanc ock\nĠB CE\nĠPr ague\nĠimpro v\nĠDev in\nĠ\" \\\npar alle\nĠsuprem acists\nĠB illion\nĠreg imen\ninn acle\nĠrequ isite\nang an\nĠBur lington\nain ment\nĠObject ive\noms ky\nG V\nĠun ilateral\nĠt c\nĠh ires\nment al\nĠinvol untary\nĠtrans pl\nĠASC II\nÂ ¨\nEv ents\nĠdoub ted\nĠKa plan\nĠCour age\nig on\nĠMan aging\nĠT art\nĠfalse hood\nĠV iolet\nĠair s\nĠfertil izer\nBrit ain\nĠaqu atic\nou f\nW ords\nĠHart ford\nĠeven ings\nĠV engeance\nqu ite\nG all\nĠP ret\nĠp df\nĠL M\nĠSo chi\nĠInter cept\n9 20\nĠprofit ability\nĠId le\nĠMac Donald\nĠEst ablishment\num sy\nĠgather ings\nĠN aj\nCharl ie\nĠas cent\nĠProt ector\nĠal gebra\nĠbi os\nfor ums\nEL S\nIntrodu ced\nĠ3 35\nĠastron omy\nCont ribut\nĠPol ic\nPl atform\nĠcontain ment\nw rap\nĠcoron ary\nĠJ elly\nman ager\nĠheart breaking\nc air\nĠChe ro\nc gi\nMed ical\nĠAccount ability\n! !\"\noph ile\nĠpsych otic\nĠRest rict\nĠequ itable\niss ues\nĠ19 05\nĠN ek\nc ised\nĠTr acking\nĠo zone\nĠcook er\nros is\nĠre open\nĠinf inity\nĠPharm aceutical\nens ional\nAtt empt\nĠR ory\nMar co\nĠawa its\nH OW\nt reated\nĠbol st\nĠreve red\nĠp ods\nopp ers\n00 10\nĠampl itude\nric an\nSP ONSORED\nĠtrou sers\nĠhal ves\nĠK aine\nĠCut ler\nĠA UTH\nĠsplend id\nĠprevent ive\nĠDud ley\nif acts\numin ati\nĠY in\nĠad mon\nĠV ag\nĠin verted\nĠhast ily\nĠH ague\nL yn\nĠled ger\nĠastron omical\nget ting\nĠcirc a\nĠC ic\nĠTenn is\nLim ited\nĠd ru\nĠBY U\nĠtrave llers\nĠp ane\nĠInt ro\nĠpatient ly\nĠa iding\nĠlo os\nĠT ough\nĠ29 3\nĠconsum es\nSource File\nĠ\"\" \"\nĠbond ing\nĠtil ted\nĠmenstru al\nĠCel estial\nUL AR\nPlug in\nĠrisk ing\nN az\nĠRiy adh\nĠacc redited\nĠsk irm\né Ľ\nĠexam iner\nĠmess ing\nĠnear ing\nĠC hern\nĠBeck ham\nĠsw apped\nĠgo ose\nK ay\nĠlo fty\nĠWal let\nĠ[ '\nĠap ocalypse\nĠb amboo\nĠSP ACE\nĠEl ena\nĠ30 6\nac ons\nĠtight ened\nĠadolesc ence\nĠrain y\nĠvandal ism\nĠNew town\nĠcon ject\nc akes\nĠche ated\nĠmoder ators\npar ams\nE FF\nĠdece it\nĠST L\nĠTanz ania\nĠR I\nĠ19 23\nĠEx ile\nthe l\nĠthe olog\nĠquir ky\nĠIr vine\nĠneed y\nor is\nU m\nK a\nĠmail box\n3 22\nĠb os\nĠPet ra\nK ING\nĠenlarg ed\nO ften\nĠbad ass\nĠ3 43\nĠPl aces\nĠC AD\nĠpr istine\nĠinterven ing\nd irection\nĠl az\nĠD SM\nĠproject ing\nĠF unk\nag og\npay ment\nn ov\nĠch atter\nAR B\nĠexam inations\nĠHouse hold\nĠG us\nF ord\n4 14\nB oss\nĠmy stic\nĠle aps\nĠB av\nul z\nb udget\nFoot ball\nĠsubsid ized\nĠfirst hand\nĠcoinc ide\noc ular\nCon n\nĠColl abor\nĠfool s\nam ura\nah ar\nr ists\nĠsw ollen\nĠexp ended\nĠP au\ns up\nĠsp ar\nĠkey note\ns uff\nĠunequ al\nĠprogress ing\nstr ings\nĠGamer gate\nDis ney\nĠEle ven\nom nia\nĠscript ed\nĠear ners\nbro ther\nĠEn abled\næ ³\nĠlar vae\nĠL OC\nm ess\nWil son\nĠTem plate\nsuccess fully\nĠparam ount\nĠcamoufl age\nĠbind s\nĠQu iet\nĠSh utterstock\nr ush\nĠmasc ot\nfort une\nĠCol t\nĠBe yon\nhab i\nĠha irc\nĠ26 7\nĠDe us\nĠtw itch\nĠconcent rating\nĠn ipples\nc ible\nĠg ir\nN Z\nM ath\nn ih\nRequ ired\nĠp onder\nĠS AN\nĠwedd ings\nĠl oneliness\nN ES\nĠMah jong\n69 5\nadd le\nĠGar ner\nĠC OUR\nBr idge\nĠsp ree\nĠCald well\nĠbri bery\nĠï¿½ï¿½ï¿½ï¿½ ï¿½ï¿½ï¿½ï¿½\nplug ins\nĠr acket\nĠchamp agne\nvers ible\nV ote\nĠmod ifiers\nMay or\n6 80\nĠassemb lies\nĠS ultan\nĠN ing\nĠLad ies\nĠsulf ur\nĠor bs\nĠ---- -\n____ ___\nĠJournal ism\nĠes ports\nĠl ush\nĠh ue\nĠspect ral\nH onest\nãĥ ı\nĠbus hes\nĠrein forcement\nĠre opened\nĠWhe els\nĠM org\nrie ving\nĠaux iliary\nĠj Query\nĠB AT\ntes que\nĠver tex\np ure\nf rey\nãĤ º\nd os\nĠty ph\nĠc ull\nĠe q\nĠdec on\nĠtoss ing\nĠdispar ate\nĠBr igham\nprint f\nled ged\nĠsu nd\nĠco zy\nĠhepat itis\nper forming\nĠav al\nĠG G\nf uture\nĠpet ertodd\nĠKos ovo\nĠmagn ets\nAl ready\nĠEd ison\nĠCe res\nĠRA ID\nĠbrill iance\n57 6\nĠder ives\nĠhypert ension\nĠÎ Ķ\nĠlamb da\nĠfl air\nĠmission aries\nĠrap es\nĠSt arter\nĠMon ths\nĠdef y\nĠseism ic\nĠR aphael\nĠeuro zone\n65 6\nz sche\nĠscr atched\nĠb ows\nĠLenn on\nĠGa ia\nĠdri pping\nf acts\nA le\nĠfrog s\nĠBre ast\nogene ity\nĠProsecut or\nĠampl ified\nĠHod g\nĠF n\nTh ousands\nĠNI H\nĠMonitor ing\nFT WARE\nĠPri ebus\nĠG rowing\nhun ter\nĠdiagn ose\nĠM ald\nĠL R\nĠcrown ed\nĠburst ing\nĠdiss olution\nj avascript\nĠuseful ness\nĠExec ution\n: (\nĠIv ory\na ah\nĠpersecut ed\nviol ence\nist as\nĠCr ate\nĠimpuls es\nĠSp ani\ned es\nHand le\nĠZ erg\nthink able\nLast ly\nĠspont aneously\nĠinconven ient\nĠdismiss ing\nĠpl otted\nĠeight y\nĠ7 37\nr ish\nĠThor nton\nath am\nĠsit com\nV en\nRec ipe\nt el\nl und\nĠcle ars\nĠSas uke\nĠ25 8\nĠopt ing\nĠen raged\nest hetic\nĠA e\nuch s\nPre p\nFl ow\nĠrun off\nĠE ating\nĠG iles\nĠAct ing\nres ources\nib aba\nĠr pm\nĠske wed\nĠBl anc\nĠS akuya\nĠhot ter\nĠ19 24\nop ian\nck o\nĠcr umbling\nĠcapt ains\nĠAppropri ations\nle aders\ndro pping\nan uts\nĠrevers ing\nĠP ose\nĠS ek\nSc ot\nĠIde a\nc ise\nĠSloven ia\nĠ3 17\nDo ctor\nĠcro cod\nald i\nSe a\nĠFar rell\nĠmerc enaries\nĠR NC\nĠGu ess\nĠp acing\nM achine\nStreamer Bot\nĠChar ity\nĠ29 8\nĠcann ons\nĠTob y\nTPP StreamerBot\nĠPass ion\ncf g\nTh om\nĠbad ges\nĠBern stein\n. âĢĵ\nĠP OP\nĠCon j\nĠinitial ization\nĠbiod iversity\nD ub\nĠfeud al\nĠdisclaim er\nĠc row\nĠign ition\nar f\nS HA\nĠk Hz\nh azard\nĠArt ists\noe uv\n67 9\nĠRud y\nN ine\nĠRam adan\nå ½\nitt o\nĠadren aline\nC ert\nĠsmell ed\nĠimp unity\nĠag endas\nĠRe born\nĠCon cent\nĠSe ems\nĠo mega\nĠDust in\nĠback er\nĠSau ce\nĠBoy le\nW IN\nĠsp ins\nĠpa uses\nu pt\nĠshred ded\nĠstra pped\nĠCor ruption\nĠscr atches\nĠn i\nĠatt ire\nĠS AF\nFactory Reloaded\nĠI PS\nĠ( %\nĠsem inar\nf ocus\nc ivil\nĠ18 60\nint osh\nĠcontin ual\nĠabbre vi\nĠS ok\noc obo\nX M\nĠfr antic\nĠunavoid able\nĠar tery\nĠannot ations\nb ath\nCl imate\nĠd ors\nĠSl ide\nco ord\nĠRel oad\nĠL DL\nĠLove craft\nĠunim agin\nĠresemb led\nĠbarr acks\nn p\nĠsurrog ate\nĠcategor ized\nãĤ ©\nĠvacc inated\nĠdrain age\nĠind ist\nĠWhats App\nĠ18 70\noler ance\ninv oke\nam orph\nĠrecon nect\nĠem anc\nĠblind ness\nĠ12 80\nintern et\nc ollar\nĠalt ru\nĠab yss\nĠT RI\n65 7\nĠinf used\nHE AD\nĠforest ry\nĠWood y\nĠC i\nw i\ns am\n78 4\nhol iday\nĠmog ul\nĠF ees\nĠD EN\nIn ternal\nur bed\nf usc\nat om\nĠIll usion\nĠpoll ed\nĠfl ap\nĠco ax\nL GBT\nAn aly\nĠSect ions\nĠCalif orn\nem n\nĠh ither\nĠN IGHT\nĠn ailed\nĠPip eline\n39 1\no of\nĠPr imal\nvere nd\nĠsl ashing\nĠret ri\navi our\nĠdepart ing\ng il\nIS C\nĠmid way\nĠultras ound\nĠbeh aving\nĠT ara\nclass es\nV irtual\nĠColon ial\nĠstri pping\nĠorchestr ated\nĠGra ves\n45 2\nĠIron ically\nĠWrit ers\nĠl ends\nĠMan z\nĠra ven\nĠoxid ative\nĠ26 6\nEL F\nact ually\nasc ar\nD raft\nĠfavour able\nĠhumili ating\nĠf idelity\nĠH of\nĠX uan\n49 6\nĠlay ered\nat is\n79 0\nĠpay check\nit on\nK ar\nĠVM ware\nĠFar mer\nĠserv ic\ngl omer\nĠsl ump\nĠFab ric\nĠD OC\nest ing\nĠreass ure\nĠph yl\nv olt\nit ory\nR ules\nĠoxid ation\nĠpri zed\nĠmist ress\nĠDj ango\nWAR N\nå ĳ\nĠenc ode\nĠFeed back\nĠstupid ity\nI an\nĠYugoslav ia\n× ¨\nac l\nUT E\n19 77\nĠqual ifies\nĠpuls es\npret ty\nĠfro ze\nĠs s\nIter ator\nĠur gently\nĠm ailed\nĠCh am\nĠsust aining\nĠbas il\nĠpupp ies\nil ant\nĠP LEASE\nl ap\nace ous\nF ear\nĠMaster y\naut omatic\nĠT AG\nĠant im\nag les\n47 3\nfram es\nĠwh ispers\nĠWho ever\nĠbra very\nĠUK IP\nract ions\n\"\" \"\nĠt ame\nĠpart ed\nevery thing\nCON T\nĠind ebted\nĠadd r\nre k\nIR ED\nĠem inent\ncl inton\nĠo usted\nĠreview er\nĠmelt down\nĠre arr\nĠY ao\nthe real\naby te\nĠst umbling\nĠbat ches\nĠ25 9\nĠcontrace ptive\nĠprost itute\nens is\nDe cl\nĠSt rikes\nM ilitary\nĠO ath\nv acc\npp ings\n05 2\nĠpart Name\namp ing\nRep orts\nK I\nCH R\nĠsubt ly\nsw ers\nBl ake\nus ual\nĠcontest ants\nĠcart ridges\nĠGRE AT\nĠbl ush\nĠâĢ º\n47 2\nĠreason ed\nãĥ ¤\nparalle led\nĠd yn\nag ate\nĠnight ly\nå Ĩ\n55 6\nĠsem antic\nĠAdv oc\nĠ !!\nĠdisag rees\nĠB W\nV eh\nĠharm ing\nĠembr aces\nĠstri ves\nĠin land\nĠK ard\nĠhe ats\nĠGin ny\nut an\nern aut\nyl ene\nĠE lev\nJ D\nĠh ars\nĠStar r\nĠsk ysc\nĠcollabor ators\nUs ually\nĠrev olutions\nĠSTAT S\nĠdism antle\nĠconfident ly\nĠkin etic\nAl i\nĠpercent ile\nĠextract ing\nill ian\nest ead\nĠphysic ists\nĠMarsh al\nĠfell owship\nĠd ashed\nĠU R\nĠSi oux\nĠComp act\nam ide\nP ython\nĠLe igh\nĠPharm ac\nist rates\nher ical\nĠf ue\nĠE min\nĠ( {\nĠNeighbor hood\nĠdisrupt ing\nĠD up\nĠg land\nĠSe v\nĠMar ian\narg on\nĠD und\nĠ< !--\nĠstr and\nĠstadium s\nz os\nĠpsych osis\nĠR ack\nĠbrilliant ly\nï¸ ı\nĠsubmer ged\nĠInst it\nĠCh ow\nĠc ages\nĠH ats\nĠU rs\nĠdil uted\nus at\nien ne\nĠMembers hip\nĠBur k\nĠ ie\nĠarche type\nD rug\nult on\nĠSp ock\nĠMcK ay\nĠDep end\nF eatured\nS oc\n19 78\nĠB ere\nĠrelent lessly\nĠcripp ling\nĠar thritis\nçĶ Ł\nĠTrop ical\nĠBul g\nĠCher yl\nĠadm irable\nĠsub title\nOver ride\nĠorig inating\nĠC CP\nĠsw ore\nĠSo le\nĠDis orders\n3 29\nĠprocess ion\nĠref urb\nĠimm ersed\nrequ ently\nĠskept ics\nĠcer amic\nm itter\nen stein\nb elt\nĠT IT\nb idden\nĠf ir\nm ist\n> ]\nĠwe ave\nĠParad ox\nĠentr usted\nĠBarcl ays\nĠnovel ist\nog ie\n80 6\nĠnin ety\nĠdisag reements\n@@@@ @@@@\nĠAus chwitz\nc ars\nĠL ET\nt ub\narant ine\nP OS\nĠback story\nĠcheer ful\nĠR ag\nek a\nbi ased\nĠinexper ienced\nak ra\nĠW itt\nt an\nĠrap ist\nĠplate au\nch al\nĠInqu is\nexp ression\nĠc ipher\nĠsh aving\nadd en\nre ly\n( \\\nism a\nĠReg ulatory\nCH AR\nily n\nN VIDIA\nG U\nĠmur m\nla us\nChrist opher\nĠcontract ual\nĠPro xy\nĠJa ime\nĠMethod ist\nĠstew ards\nst a\nper ia\nĠphys iology\nĠbump ed\nĠf ructose\nAustral ian\nĠMet allic\nĠMas querade\nar b\nĠprom ul\nĠdown fall\nĠbut cher\nĠb our\nĠIN FORMATION\nĠB is\npect s\nad ena\nĠcontempl ating\nar oo\ncent ered\nĠPe aks\nUs ed\nĠmod em\nĠg enders\nĠ8 000\n37 1\nĠm aternity\nĠR az\nĠrock ing\nĠhandgun s\nĠD ACA\nAut om\nĠN ile\nĠtum ult\nĠBenef it\nĠAppro ach\nworks hop\nĠLe aving\nG er\ninst ead\nĠvibr ations\nĠrep ositories\n49 7\nĠA unt\nĠJ ub\nĠExp edition\nAl pha\nĠs ans\nĠoverd ue\nĠoverc rowd\nĠlegisl atures\nĠp aternal\nĠLeon ardo\nĠexp ressive\nĠdistract ions\nĠsil enced\ntr ust\nĠb iking\nĠ5 60\nĠpropri et\nĠimp osition\nĠcon glomer\nĠ= ================================================================\nĠTe aching\nĠY ose\nint ensive\nT own\nĠtroll ing\nĠGr ac\nĠAS US\nY o\nĠspecial s\nĠNep h\nĠGod zilla\nDat abase\nĠHe gel\nĠ27 2\n19 76\nĠGl oria\nĠdis emb\nĠInvestig ations\nĠB ane\nag ements\nSt range\nĠtre asury\nĠPl ays\nĠundes irable\nĠwid ening\nĠverb ally\nĠinf ancy\nĠcut ter\nf ml\nĠ21 00\nprot otype\nf ine\nĠdec riminal\nĠdysfunction al\nĠbes ie\nĠErn st\nz eb\nĠnort heastern\nĠa ust\npor ate\nĠMar lins\nĠsegreg ated\new orld\nĠMa her\nĠtra verse\nĠmon astery\nur gy\nG ear\ns and\nCom pl\nĠE MP\nĠpl ent\nĠMer cer\nĠ27 6\nTA BLE\nConfig uration\nH undreds\nĠpr ic\nĠcollabor ating\nĠPar amount\nĠCumm ings\nĠ( <\nĠrecord er\nĠfl ats\nĠ4 16\nwh ose\nFont Size\nĠOr bit\nY R\nĠwr ists\nĠb akery\n) }\nĠB ounty\nĠLanc aster\nĠend ings\nacc ording\nĠSal am\ne asy\n75 5\nĠBur r\nĠBarn ett\nonom ous\nUn ion\nĠpreced ence\nĠScholars hip\nĠU X\nĠroll out\nĠbo on\nal m\nĠCan ter\næ µ\nĠround ing\nĠcl ad\nĠv ap\nĠF eatured\nis ations\nĠ5 40\npol ice\nĠunsett ling\nĠdr ifting\nĠLum ia\nĠObama Care\nĠF avor\nHy per\nĠRoth schild\nĠMil iband\nan aly\nĠJul iet\nH u\nĠrec alling\na head\n69 6\nĠunf avorable\nĠd ances\nO x\nĠleg ality\nĠ40 3\nrom ancer\nĠinqu ire\nĠM oves\n\\ \">\nĠVari ant\nĠMess iah\nĠL CS\nĠBah Ã¡\n75 6\nĠeyeb row\nĠÂ ¥\nĠMc F\nĠFort y\nM as\nĠpan icked\nĠtransform ations\nq q\nĠrev olves\nring e\nĠA i\nax e\nĠon ward\nĠC FR\nĠB are\nlog in\nĠliqu ids\nĠde comp\nsecond ary\nil an\nĠCon vert\nami ya\nĠprosecut ing\nĠâī ¡\nĠYork ers\nĠByr ne\nsl ow\naw ei\nJ ean\nĠ26 9\nĠSky dragon\nĠ Ã©\nĠNicarag ua\nĠHuck abee\nĠHigh ly\nĠamph ib\nĠPast or\nĠL ets\nĠbl urred\nĠvisc eral\nĠC BO\nĠcollabor ated\nz ig\nLeg al\nĠapart heid\nĠbr id\nĠpres et\nĠD ET\nĠAM A\n× Ķ\narch ing\nauc uses\nbuild er\nĠpo etic\nĠem ulator\nĠMole cular\nĠhon oring\nise um\nĠtract or\nĠCl uster\nĠCal m\nared evil\nĠsidew alks\nĠviol in\nĠgeneral ized\nĠAle c\nĠemb argo\nĠfast ball\nĠHT TPS\nĠL ack\nĠCh ill\nri ver\nC hel\nĠSw arm\nĠLev ine\nro ying\nL aunch\nĠkick er\nĠadd itive\nĠDe als\nW idget\ncont aining\nĠescal ate\nĠOP EN\nĠtwe aked\nĠst ash\nĠsp arks\nĠEs sex\nĠE cc\nĠconv ict\nĠblog ging\nI ER\nĠH L\nĠmurd erers\n75 9\nĠH ib\nĠde pl\nĠJ ord\nS ac\nĠdis sect\nĠHow e\nos her\nĠcustom izable\nĠFran z\nĠat ro\nÄ ĩ\nĠ000 4\nĠout post\nR oss\nĠglyph osate\nĠHast ings\nĠBE FORE\nĠsh ove\no pped\nĠSc ala\nĠam ulet\nan ian\nĠexacerb ated\nĠe ater\n47 1\nUM E\nĠpul p\nizont al\nĠZ am\nĠAT I\nimm une\naby tes\nĠunnecess arily\nĠC AT\nĠAx is\nĠvisual ize\nÃ ī\nĠRad ical\nf m\nDoc uments\nĠFor rest\nĠcontext ual\nĠSy mbol\nĠtent ative\nĠDO ES\nĠGood s\nĠintermitt ent\n} :\nmedi ated\nĠridic ule\nĠathe ism\nĠpath ogens\nĠM um\nĠre introdu\nĠ30 7\ni HUD\nĠflash light\nĠsw earing\nĠp engu\nB u\nĠrot ated\nĠCr ane\nĠ() );\nĠfashion able\nĠendors ing\n46 3\n) [\nĠingest ion\nĠcook s\nĠ9 50\not omy\nĠIm am\nĠk a\nĠte aser\nĠGhost s\nĠãĤ µ\n19 69\nÏ ĥ\nub by\nĠconver ter\nzan ne\nend e\nĠPre par\nĠNic kel\nĠChim era\nh im\nĠTyr ann\nĠSabb ath\nĠNich ols\nĠra pt\nih ar\nĠshe lling\nĠillum inate\nĠdent ist\nut or\nĠInteg ration\nĠwh ims\nĠLiter ary\nBe aut\nĠp archment\nag ara\nBr and\nĠder og\nâĢ¦ )\nĠNor se\nĠunw itting\nĠc uc\nĠborder line\nĠupset ting\nĠrec ourse\nĠd raped\nĠRad ar\nĠcold er\nĠPep si\nim inary\n], [\n65 8\nV i\nĠF rem\nĠP es\nĠveter inary\nĠT ED\nĠEp idem\nn ova\nk id\nĠdev out\no ct\nj ad\nM oh\nĠP AY\nĠge ometric\nĠ3 23\nĠcircum ference\nich ick\n19 75\nĠY uri\nĠSh all\nĠH over\nun in\nS pr\nĠg raft\nĠHapp iness\nĠdisadvant ages\natt acks\nĠhub s\nĠStar Craft\né ĸ\nĠgall eries\nĠKor ra\nĠgrocer ies\nĠGors uch\nĠrap ists\nĠfun gi\nĠTyph oon\nV ector\nĠEm press\nb attle\n4 68\nĠparas ite\nĠBom ber\nS G\nex ist\nĠP f\nĠun se\nĠsurge ons\nB irth\nĠUn sure\nĠPrint ed\nĠBehavior al\nĠA ster\nPak istan\nĠun ethical\nĠs v\nĠIo T\nĠlay outs\nP ain\nĠconst ants\nĠL W\nĠB ake\nĠtow els\nĠdeterior ation\nĠBol ivia\nĠblind ed\nĠW arden\nĠMist ress\nĠon stage\nĠcl ans\nĠB EST\n19 60\nĠant ique\nĠrhet orical\nĠPer cy\nĠRw anda\n, .\nB ruce\nĠtra umat\nĠParliament ary\nĠfoot note\nid ia\nĠLear ned\nse eking\ngen ic\nĠdim ensional\nH ide\nèĢ ħ\nĠintrig ue\nin se\nĠle ases\nĠapp rentices\nw ashing\nĠ19 26\nV ILLE\nĠsw oop\ns cl\nĠbed rooms\non ics\nĠCr unch\ncomp atible\nĠincap ac\nĠYemen i\nash tra\nz hou\nd anger\nĠmanifest ations\nĠDem ons\nAA F\nSecret ary\nACT ED\nL OD\nĠam y\nra per\neth nic\n4 17\nĠpos itives\nĠ27 3\nĠRefuge es\nĠus b\nĠV ald\nodd y\nĠMahm oud\nAs ia\nĠskull s\nĠEx odus\nĠComp et\nĠL IC\nĠM ansion\nĠA me\nĠconsolid ate\nstorm s\nont ent\n99 6\nĠcl en\nĠm ummy\nfl at\n75 8\nĠV OL\noter ic\nn en\nĠMin ute\nS ov\nĠfin er\nR h\nly cer\nĠreinforce ments\nĠJohann es\nĠGall agher\nĠgym n\nS uddenly\nĠext ortion\nk r\ni ator\nT a\nĠhippocamp us\nN PR\nĠComput ing\nĠsquare ly\nĠmod elling\nĠFor ums\nĠL isp\nĠKrish na\nĠ3 24\nĠr ushes\nĠens ued\nĠcre eping\non te\nn ai\nil ater\nĠHorn ets\nĠob livious\nIN ST\n55 9\nĠjeopard y\nĠdistingu ishing\nj ured\nĠbeg s\nsim ilar\nph ot\n5 30\nĠPark way\nĠs inks\nĠHearth stone\nib ur\nĠBat on\nAv oid\nĠd ancer\nĠmag istrate\nary n\nĠdisturb ances\nĠRom ero\nĠpar aph\nĠmis chief\nâĸ ĵ\nĠSh aria\nĠur inary\nr oute\niv as\nf itted\nĠeject ed\nĠAl buquerque\nĠ4 70\nĠirrit ated\nĠZ ip\nĠB iol\nÃ į\nĠden ounce\nĠbin aries\nĠVer se\nĠopp os\nĠKend rick\nĠG PL\nĠsp ew\nĠEl ijah\nĠE as\nĠdr ifted\nso far\nĠannoy ance\nĠB ET\n47 4\nĠSt rongh\nit ates\nĠCogn itive\noph one\nĠIdent ification\nocr ine\nconnect ion\nĠbox er\nĠAS D\nĠAre as\nY ang\nt ch\null ah\nĠdece ive\nComb at\nep isode\ncre te\nW itness\nĠcondol ences\nht ar\nĠhe als\nĠbuck ets\nĠLA W\nB lu\nĠsl ab\nĠOR DER\noc l\natt on\nĠSteven son\nĠG inger\nĠFriend ly\nĠVander bilt\nsp irit\nig l\nĠReg arding\nĠPR OG\nĠse aling\nstart ing\nĠcard inal\nĠV ec\nĠBe ir\nĠmillisec onds\nwe ak\nper se\nĠster ile\nĠCont emporary\nĠPh ant\nĠCl o\nĠout p\nĠex iled\nĠ27 7\nĠself ie\nĠman ic\nĠn ano\nter ms\nAlex ander\nĠres olves\nĠmillenn ia\nĠexpl odes\nĠconst ellation\nĠadul tery\nm otion\nD OC\nĠbroad casters\nĠkinderg arten\nĠMay weather\nĠE co\nich o\nĠ28 7\nl aun\nĠm ute\nĠdisc reet\nĠpres chool\nĠpre empt\nDe lete\nĠFre ed\nP i\nH K\nĠblock er\nĠC umber\nĠw rought\nd ating\nĠins urer\nĠquot as\nĠpre ached\nĠev iction\nĠReg ina\nĠP ens\nĠsevent een\nĠN ass\nD ick\nĠfold s\nĠd otted\nĠA ad\nUn iversal\nĠp izz\nĠG uru\nĠso ils\nĠno vice\nĠNe ander\nĠst ool\nĠdeton ated\nĠPik achu\nĠMass ive\nIV ER\nĠAb del\nĠsubdu ed\nĠtall est\nĠprec arious\nĠa y\nr ification\nĠOb j\nc ale\nĠun question\ncul osis\nad as\nigr ated\nD ays\nĠque ens\nĠGaz ette\nĠCol our\nĠBow man\nĠJ J\nÃ¯ ve\nĠdomin ates\nStud ent\nĠm u\nĠback log\nĠElect ro\nTr uth\n48 3\nĠcond ensed\nr ules\nĠCons piracy\nĠacron ym\nhand led\nĠMat te\nj ri\nĠImp ossible\nl ude\ncre ation\nĠwar med\nĠSl ave\nĠmis led\nĠfer ment\nĠK ah\nink i\nke leton\ncy l\nĠKar in\nHun ter\nReg ister\nĠSur rey\nĠst ares\nĠW idth\nĠN ay\nĠSk i\nĠblack list\nuck et\nĠexp ulsion\nim et\nĠret weet\nvant age\nFe ature\nĠtro opers\nĠhom ers\n9 69\nĠconting ency\nĠW TC\nĠBrew er\nfore ign\nW are\nS olar\nĠund ue\nRE C\nulner able\npath ic\nĠBo ise\nĠ3 22\nĠarous ed\nĠY ing\nä¸ į\nuel ess\nĠp as\nĠmor p\nĠfl oral\nEx press\nud ging\nk B\nĠGr anted\nØ ¯\nĠMich a\nĠGoth ic\nĠSPEC IAL\nĠRic ardo\nF ran\nĠadminister ing\n6 20\npor a\nĠÂ ®\nĠcomprom ises\nĠb itten\nAc cept\nTh irty\nÐ ²\nĠmater ially\nĠTer r\nig matic\nch ains\nĠdo ve\nstad t\nMar vel\nFA ULT\nĠwind shield\nĠ3 36\nad ier\nĠsw apping\nĠflaw less\nĠPred ator\nĠMiche le\nĠprop ulsion\nĠPsych ic\nĠassign ing\nĠfabric ation\nĠbar ley\nl ust\nĠtow ering\nĠalter cation\nĠBent ley\nSp here\nĠtun a\nĠClass es\nFre edom\nun er\nL ady\nv oice\nĠcool est\nor r\nĠpal p\n$ {\nĠhyster ia\nĠMet atron\np ants\nĠspawn ing\nExper ts\nĠInvest ors\nĠAn archy\nĠshr unk\nĠVict im\nĠ28 9\nĠec stasy\nĠB inding\n58 5\nĠMel ody\n57 8\not ally\nĠE tsy\nlig a\nĠapplaud ed\nĠswe ating\nĠredist ributed\nĠpop corn\nĠsem inal\nf ur\nĠNeuro science\nR and\nĠO st\nĠMadd en\nĠIncre asing\nĠDaw kins\nĠSub way\nĠar sen\ncons erv\nB UR\nĠsp iked\nĠLy ft\nĠImper ium\nĠDrop box\nĠfav oured\nĠencomp asses\ngh ost\nĠins pires\nĠbur geoning\nĠY oshi\nĠVert ical\nĠAud itor\nĠint ending\nĠfilib uster\nBl oom\nf ac\nĠCav s\nign ing\nĠcowork ers\nĠBarb arian\nrem ember\nFL AG\nĠaudit ory\nason ry\nCol lege\nĠmut ed\ngem ony\nob in\nĠPsych o\n9 68\nĠlav ish\nĠhierarch ical\nĠDr one\nou k\nĠcripp led\nĠMax im\nSl ot\nĠqu iz\nĠV id\nif ling\nĠarchae ologists\nĠabandon ment\nd ial\nle on\nĠF as\nT ed\nĠr aspberry\nĠmaneu vers\nĠbehavi ours\nĠins ure\nĠrem od\nSw itch\nh oe\nĠsp aced\nĠafford ability\nĠF ern\nnot ation\nĠBal anced\nĠoccup ies\nen vironment\nĠneck lace\nĠsed an\nF U\nĠBrav o\nĠab users\nĠAn ita\nmet adata\nĠG ithub\nait o\nĠF aster\nĠWass erman\nĠF lesh\nĠth orn\nr arily\nĠMer ry\nw ine\nĠpopul ace\nĠL ann\nĠrepair ing\nĠpsy che\nĠmod ulation\naw aru\nâĢĭ âĢĭ\nari j\nĠdecor ations\nĠapolog ise\nĠG arg\napp ly\nĠgive away\nĠFl an\nĠWy att\nU ber\nĠauthor ised\nĠMor al\nHAHA HAHA\nactiv ate\nĠtorped o\nĠF AR\nĠam assed\nĠA ram\nark in\nĠVict ims\nst ab\nĠo m\nĠE CO\nĠopio ids\nĠpurpose ly\nĠV est\nĠer g\nat an\nĠSur gery\nĠcorrect ing\nĠOrt iz\nĠBe et\nĠrev oke\nĠfre eway\nĠH iggins\nF ail\nĠFar ms\nĠAT P\nh ound\nĠp oking\nĠCommun ists\nmon ster\niment ary\nĠunlock ing\nĠunf it\nwe ed\nen ario\nat ical\nĠEnlight enment\nĠN G\nĠComp ensation\nde en\nĠWid ow\nĠCind y\nĠAfter wards\nĠ6 000\nikh ail\nag ically\nĠrat ified\nĠcasual ty\nH OME\np sey\nf ee\nĠspark ling\nĠd Ã©\nĠconcert ed\nC atal\nĠcomp lying\nĠA res\nĠD ent\nSh ut\nĠsk im\nad minist\nĠhost ilities\nĠG ins\nĠ6 08\nĠm uddy\nĠMc Int\nĠDec ay\n5 25\nĠconspic uous\nĠEx posure\nĠresc ind\nĠwear able\nĠ3 28\nour met\nah s\nĠRob ots\nĠe clips\ninst ance\nĠRE PORT\nĠApp l\n0 30\nĠSk ies\n01 00\nĠfall acy\nS ocket\nĠRece iver\nĠsol ves\nĠButter fly\nĠSho pping\nĠFI RE\n65 4\nMed ic\nĠsing ers\nĠNeed less\n'' ''\nisher s\nĠD ive\n58 8\nĠselect ively\nĠcl umsy\n88 9\nĠpurch aser\near ned\nard y\nĠbenef iting\neng lish\nĠyield ing\nĠP our\nĠspin ach\nĠdel ve\nĠC rom\n6 10\nĠexport ing\nĠMA KE\nĠ26 3\nĠg rop\nĠenv oy\nĠInqu iry\nĠLu igi\nd ry\nĠT uring\nThumbnail Image\nĠVar iety\nĠfac et\nĠfl uffy\nĠexcerpt s\nĠsh orth\nĠOl sen\nCL UD\nĠrel iant\nĠUN C\nT our\nĠbat hing\nComp any\nĠglobal ization\nP red\nĠMalf oy\nĠh oc\nj am\ncraft ed\nĠBond s\nĠKiss inger\nEng land\nĠorder ly\ncat entry\nĠ26 1\nĠexch anging\nĠInt ent\nĠAmend ments\nD OM\nĠst out\nÂłÂłÂłÂłÂłÂłÂłÂł ÂłÂłÂłÂłÂłÂłÂłÂł\nĠAir bus\nĠ27 8\nhy de\nP oll\nItem ThumbnailImage\nĠlooph oles\nĠPill ar\nĠexpl or\nSt retch\nA part\nĠun married\nLim it\nĠTransform ers\nĠintellect ually\nunct ure\n18 00\nĠd arn\nB razil\nĠleft over\nber us\nf red\nMine craft\n3 26\nĠForm s\nĠproof s\nĠDes igned\nĠindex es\nĠSupp ose\nEM S\nĠL oving\nĠBon nie\nim ating\nOT US\nĠconduct or\nĠbehav ed\nĠF ren\nĠsy nerg\nĠmillenn ium\nĠcater ing\nĠL auder\nW r\nĠY iannopoulos\nĠAT F\nĠensl aved\nĠawaken ed\nD VD\nĠED ITION\nĠConc ert\nĠChall enger\nĠH aku\numer ic\nĠdep recated\nĠSH AR\n4 12\nĠdy stop\nĠtremb ling\nĠdread ed\nĠSp ac\np adding\nRe pl\nĠG arrison\nM ini\nĠun paralleled\nam ar\nURR ENT\nw reck\nc ertain\nt al\nĠC LS\napp ings\nĠsens ed\nĠf encing\nĠPas o\nĠDes k\nĠsc off\nĠcontem plate\nĠL iga\nl iquid\n75 7\nĠapp rentice\nĠUCH IJ\n5 70\nĠTh ousand\nĠIll um\nĠchampion ed\nãĤ Į\nĠelect ors\nĠ3 98\nĠH ancock\nround ed\nĠJ OHN\nĠuns atisf\nĠqual ifier\nĠGad get\nEN E\nĠdead liest\nĠPl ants\nĠ ions\nĠacc ents\nĠtwe aking\nĠsh aved\nF REE\nĠCh aser\nAgain st\n9 60\nĠmeth amphetamine\nĠnormal ized\nĠ$ \\\nĠPre cision\nĠGu am\nĠch oked\nĠX II\nĠCast ing\nTor rent\nĠscal p\nĠJagu ar\nw it\nĠsem ic\nix ie\nĠG ould\nĠconf ines\nN usra\nĠL on\nĠJ ugg\ny cle\nĠCod ec\nE gypt\nĠrest rain\nĠAl iens\nĠch oking\nĠD unk\nĠBell a\nab c\nĠsl ang\nĠneuro trans\ns av\nĠempower ment\nâ ĨĴ\nĠclim bers\nĠM im\nĠF ra\nros se\nCap ital\nĠCth ulhu\nInter face\nĠprof icient\nĠIN TO\nĠ3 18\nront al\n5 80\nĠDes pair\nK enn\nĠscrim mage\nĠCo at\nas ions\nĠwall paper\nĠJ ol\nĠresurg ence\nĠant iv\nĠB alls\n² ¾\nĠbuff ers\nĠsub system\nĠSt ellar\nĠL ung\nA IDS\nĠerad icate\nĠblat antly\nĠbehav es\nĠN un\nĠant ics\nex port\nDE V\nw b\nĠph p\nĠInteg rity\nĠexplore r\nĠrev olving\nauth ored\ng ans\nĠbas k\nĠas ynchronous\nå į\nTH ING\n69 8\nG ene\nĠR acer\nĠN ico\niss ued\nĠser mon\np ossibly\nĠsize of\nĠentrepreneur ial\nox in\nĠMin erva\nĠpl atoon\nn os\nri ks\nA UT\nĠAval anche\nĠDes c\nĳ å£«\nĠP oc\nĠconf erred\nÎ »\nĠpat ched\nF BI\n66 2\nĠfract ures\nĠdetect s\nĠded icate\nĠconstitu ent\nĠcos mos\nW T\nĠswe ats\nĠspr ung\nb ara\ns olid\nĠuns us\nĠbul ky\nĠPhilipp e\nĠFen rir\nĠtherap ists\nore al\n^^ ^^\nĠtotal ed\nĠboo ze\nĠR PC\nProsecut ors\nĠdis eng\nĠSh ared\nĠmotor cycles\nĠinvent ions\nĠlett uce\nĠMer ge\nĠJ C\nĠspiritual ity\nĠWAR NING\nĠunl ucky\nĠT ess\nĠtong ues\nĠD UI\nT umblr\nĠle ans\nĠinv aders\nĠcan opy\nĠHur ricanes\nĠB ret\nĠAP PLIC\nid ine\nick le\nReg arding\nĠve ggies\nĠe jac\nju ven\nF ish\nD EM\nĠD ino\nTh row\nĠCheck ing\nbe ard\n( &\nĠj ails\nĠh r\ntrans fer\niv ating\nĠfle ets\nĠIm ag\nĠMc Donnell\nĠsnipp et\nIs a\nĠCh att\nĠSt ain\nĠSet FontSize\nĠO y\nĠMathemat ics\n49 4\nĠelectro ly\nĠG ott\nĠBr as\nB OOK\nĠF inger\nd ump\nĠmut ants\nĠrent als\nĠinter tw\nĠc reek\nail a\nBro ther\nĠDisc ord\npe e\nraw ler\nĠcar p\nĠ27 9\nãĤ· ãĥ£\nrel ations\nĠcontr asts\nCol umn\nĠrec onnaissance\nĠun know\nĠl ooting\nĠregul ates\nĠopt imum\nĠChero kee\nĠA ry\nLat est\nĠroad side\nĠd anced\nĠUnic orn\nA cknowled\nĠuncont roll\nĠM US\nat io\nch ance\nha ven\nVAL UE\nĠfavour ites\nĠceremon ial\nb inary\npe ed\nwood s\nEM P\nĠv ascular\nĠcontempl ated\nĠbar ren\nĠL IST\nY ellow\nospons ors\nĠwhisk y\nĠM amm\nĠDeV os\nmin imum\nH ung\n44 2\nP ic\nĠSnap dragon\n77 6\nĠcar ving\nĠund ecided\nĠadvantage ous\nĠpal ms\nĠA Q\nĠst arch\nL oop\nĠpadd le\nĠfl aming\nĠHor izons\nAn imation\nbo ost\nĠprob abilities\nĠM ish\nĠex odus\nĠEditor ial\nĠfung us\nĠdissent ing\nĠDel icious\nrog ram\nĠD yn\nd isk\nt om\nĠfab rics\nĠC ove\nĠB ans\nĠsoft en\nĠCON S\nĠin eligible\nĠestim ating\nĠLex ington\npract ice\nof i\nĠshe dding\nĠN ope\nĠbreat hed\nĠCorinth ians\ny ne\nek i\nB ull\nĠatt aching\nreens hots\nĠanaly se\nĠK appa\nĠuns ustainable\nĠinter pol\nank y\nhe mer\nĠprot agonists\nĠform atted\nĠBry ce\nĠAch illes\nĠAb edin\nsh ock\nĠb um\nb os\nqu a\nĠW arn\nq t\nĠDi abetes\n8 64\nĠIn visible\nĠvan ish\nĠtrans mitting\nĠmur ky\nĠFe i\nĠawa ited\nĠJur assic\numm ies\nĠmen acing\ng all\nC ath\nB uilt\nild o\nĠV otes\nĠon t\nĠmun itions\nĠFre em\nÃŃ n\nĠdec ency\nlo pp\nie ved\nĠG ord\nĠun thinkable\nĠNews week\nĠ3 21\nHe at\nĠpresent er\nji ang\nĠpl ank\nĠAval on\nĠben z\nĠR out\nĠslam ming\nĠD ai\nou ter\nĠCook ie\nĠAlic ia\nge y\nĠvan ity\nĠow l\ná µ\nt ested\nĠAw akens\nĠcan v\nĠblind ly\nĠRid ley\nĠEm ails\nRequ ires\nĠSer bian\nograp hed\nif rame\neter ia\nĠaltern ating\nqu iet\nĠsoc iology\nĠUn lock\nĠCommun ism\nĠo ps\nĠatt ribution\nĠab duction\nĠAb ram\nĠsidel ined\nĠB OOK\nĠref ining\nĠFe eling\nĠOs lo\nĠPru itt\nr ack\nang ible\nĠcaut iously\nĠM ARK\need s\nM ouse\nĠStep h\nĠP air\nS ab\n99 7\nĠBa al\nB ec\nĠcomm a\nĠP all\nĠG ael\nĠmisunder stand\nĠP esh\nOrder able\nĠdis mal\nĠSh iny\n% \"\nĠreal istically\nĠpat io\nĠG w\nĠVirt ue\nĠexhaust ing\nwh atever\noph ys\ny ip\n4 18\nAd just\nĠWa iting\ness on\nĠMaz da\nĠDo zens\nĠstream lined\nĠincompet ence\nĠM eth\nĠeth os\nON ES\nĠincent iv\nĠgr itty\nĠBut cher\nHead er\nĠexp onential\nÃ Ł\nĠcorrel ate\nĠcons ensual\ns ounding\nR ing\nOrig in\nĠcon clusive\nfe et\nac ly\nĠF ernandez\nBuy able\nĠd ucks\naunt lets\nĠel ong\nĠ28 6\nĠsim ul\nG as\nĠK irst\nĠprot r\nĠRob o\nĠAo E\nop ol\nĠpsych ologically\nsp in\nilater ally\nĠCon rad\nW ave\n44 1\nĠAd vertisement\nĠHarm on\nĠOri ental\nis Special\nĠpresum ptive\nĠw il\nĠK ier\nne a\nĠp pm\nĠhar bour\nĠW ired\ncomp any\nĠcor oner\natur days\nĠP roud\nĠN EXT\nĠFl ake\nval ued\nce iver\nĠfra ught\nĠc asing\nĠrun away\nĠg in\nĠLaure nt\nĠHar lem\nĠCur iosity\nqu ished\nĠneuro science\nĠH ulu\nĠborrow er\nĠpetition er\nĠCo oldown\nW ARD\nĠinv oking\nconf idence\nFor ward\nĠst s\npop ulation\nDelivery Date\nFil m\nĠC ov\nquick Ship\nquickShip Available\nprim ary\nisSpecial Orderable\ninventory Quantity\nchannel Availability\nBO X\nĠMulti player\nĠJen ner\n77 8\nĠM d\nĠ~ /.\nM N\nĠchild ish\nĠantioxid ant\nĠChrom ebook\nĠ27 4\nĠscreen play\nĠadvent urous\nĠRelations hip\nrespons ive\nming ton\nĠcorner stone\nĠF ey\nF IR\nĠrook ies\nĠF eaturing\nĠorig inate\nĠelectro des\nant es\nĠscript ures\nĠgl ued\nĠdiscont ent\nĠaff licted\nlay out\nB rave\nĠm osa\nĠQuant ity\nĠH ik\nw inner\nH ours\nĠent ail\nĠCell s\nolog ue\nĠv il\nĠpre acher\nĠdecor ative\nd ifferent\nĠprejud ices\nĠSm oking\nĠNotting ham\nso Type\nĠrhyth ms\nĠAl ph\nbl ast\nSte el\nĠDaniel le\nĠstr ife\nĠrem atch\nso DeliveryDate\nĠF ork\nt rip\nol ulu\nhes es\nC G\nĠPOLIT ICO\nost a\nĠDr ift\né¾įå ¥\né¾įå¥ ĳå£«\nĠvet ting\nĠJin ping\nĠRec ession\nMin or\nĠF raud\nenf ranch\nĠconven ed\nĠNA ACP\nĠMill ions\nĠFarm ing\nĠW oo\nĠFl are\nrit o\nimm igrant\nĠvac ancy\nĠHE AD\nĠV aj\neg al\nĠV igil\nStud y\nĠru ining\nĠr acks\nĠhe ater\nĠRand olph\nĠBr ush\nĠT ir\nØ ¨\nĠc ov\n% ]\nĠrecount s\nĠO PT\nĠM elt\nĠtr uce\nĠcas inos\nĠcrus ade\nĠcarn age\nĠstri pe\nĠK yl\nText ures\nĠ6 98\nĠpro clamation\nĠgood ies\nĠ........ ..\npro claimed\nP olit\nĠtop ical\nĠspecial ize\nĠA min\ng m\nĠanch ored\nĠbear ings\ns ample\nĠHigh land\nĠAut ism\nĠmerc enary\nĠinterview er\nL ER\nĠSom ers\nĠembry o\nĠAss y\nĠ28 1\nĠEd iting\nĠCh osen\n6 60\nĠp ci\nĠThunder bolt\nBI LL\nĠchuck led\njri wal\nh of\nĠearth ly\n() {\nind ependence\nĠdisp ers\nĠV endor\nĠG areth\nĠp als\nP enn\nĠSub mit\nic um\nTh u\nĠcl andestine\nĠcann ibal\nĠCl erk\nE Stream\ngal itarian\nâĻ ¥\ng ew\nĠhor rend\nĠL ov\nĠRe action\nocr in\nClass ic\nĠecho ing\nĠdiscl osing\nĠIns ight\nog un\nĠInc arn\nupload s\npp erc\nguy en\nĠ19 01\nĠB ars\n68 7\nĠb ribes\nĠFres no\nur at\nĠRe ese\nĠintr usive\nĠgri pping\nĠBlue print\nĠR asm\nun ia\nman aged\nĠHeb do\nĠ3 45\nĠdec oding\nĠpo ets\nĠj aws\nĠF IGHT\nam eless\nĠMead ows\nĠHar baugh\nInter view\nĠH osp\nĠB RA\nĠdelet ion\nm ob\nW alker\nĠMoon light\nĠJ ed\nĠSoph ia\nĠus ur\nĠfortun ately\nĠPut ting\nĠF old\nĠsan itation\nĠpart isans\nIS ON\nB ow\nĠCON C\nĠRed uced\nĠS utton\nĠtouch screen\nĠembry os\nâĢ¢âĢ¢ âĢ¢âĢ¢\nĠK rug\ncom bat\nĠPet roleum\nĠam d\nĠCos mos\nĠpresc ribing\nĠconform ity\nours es\nĠplent iful\nĠdis illusion\nĠEc ology\nitt al\nĠf anc\nĠassass inated\nregn ancy\nĠperenn ial\nĠBul lets\nĠst ale\nĠc ached\nĠJud ith\nĠDise ases\nAll en\nĠl as\nĠsh ards\nĠSu arez\nĠFriend ship\ninter face\nĠSupp orters\nadd ons\n46 2\nĠIm ran\nĠW im\nĠnew found\nĠM b\nAn imal\nĠd arling\nand e\nĠrh y\nĠTw isted\npos al\nyn ski\nVar ious\n× ľ\nĠK iw\nuy omi\nĠwell being\nĠL au\nan os\nĠunm ist\nĠmac OS\nĠrest room\nĠOl iv\nĠAir ways\nĠtimet able\n9 80\nĠrad ios\nv oy\nias co\nĠcloud y\nĠDraw ing\nAny thing\nSy ria\nĠH ert\nst aking\nĠun checked\nĠb razen\nĠN RS\n69 7\nonom ic\nest ablish\nĠl eng\nĠdi agonal\nĠF ior\nL air\nĠSt ard\nĠdef icient\njo ining\nbe am\nĠomn ip\nĠbl ender\nĠsun rise\nMo ore\nĠF ault\nĠCost ume\nĠM ub\nFl ags\nan se\nĠpay out\nĠGovern ors\nĠD illon\nĠBan ana\nN ar\nĠtra iled\nĠimperial ist\num ann\nats uki\n4 35\nĠRoad s\nĠsl ur\nĠIde ally\nĠt renches\nC trl\nĠmir rored\nĠZ el\nĠC rest\nComp at\nĠRoll s\nsc rib\nĠTra ils\nomet ers\nw inter\nĠimm ortality\nil ated\nĠcontrad icts\nun iversal\nill ions\nĠM ama\nopt im\nAT URE\nĠge o\net ter\nĠCar lo\n4 24\nĠcanon ical\nĠStrongh old\nn ear\nĠperf ume\nĠorche stra\nod iac\nĠup he\nĠreign ing\nvers ive\nĠc aucuses\nĠD EM\nĠinsult ed\nĠ---- --\nĠCr ush\nĠroot ing\nĠWra ith\nĠwh ore\nĠto fu\nC md\nĠB ree\nĠ$ _\nĠr ive\nĠAd vertising\nĠw att\nĠH O\nĠpersu asive\nĠParam eters\nĠobserv ational\nĠN CT\nĠMo j\nĠSal on\nĠtr unc\nĠexqu isite\nĠMar a\nĠpo op\nĠAN N\nEx c\nĠWonder ful\nĠT aco\nĠhome owner\nĠSmith sonian\norpor ated\nmm mm\nĠlo af\nĠYam ato\nĠInd o\nĠcl inging\nÃ¡ s\nĠimm utable\nh ub\nOr ange\nĠfingert ips\nĠWood en\nĠK idd\nĠJ PM\nĠDam n\nC ow\nc odes\n48 2\nĠiniti ating\nĠEl k\nĠCut ting\nĠabsent ee\nĠV ance\nĠLil ith\nG UI\nĠobsc ured\nĠdwar ves\nĠCh op\nĠB oko\nVal ues\nĠmult imedia\nĠbrew ed\nReg ular\nCRIP TION\nĠMort al\nĠa pex\nĠtravel er\nĠbo ils\nĠspray ing\nRep resent\nĠStars hip\n4 28\nĠdisappro val\nĠshadow y\nĠlament ed\nĠRe place\nĠFran Ã§\n67 7\nd or\nĠunst oppable\nĠcoh orts\ngy n\nĠClass ics\nĠAm ph\nĠsl uggish\nĠAdd iction\nĠPad res\nĠins cription\nĠin human\nmin us\nĠJere miah\nat ars\nTer ror\nĠT os\nĠSh arma\nast a\nc atch\nĠpl umbing\nĠTim bers\nSh ar\nH al\nĠO sc\nĠcou pling\nhum ans\nĠsp onge\nĠid ols\nĠSp a\nĠAdv ocate\nĠBe ats\nlu a\nĠtick ing\nĠload er\nĠG ron\n8 10\nĠstim ulated\nĠside bar\nĠManufact urer\nore And\n19 73\nĠpra ises\nĠFl ores\ndis able\nĠElect rical\nra ise\nE th\nĠmigr ated\nĠlect urer\nK ids\nĠCa vern\nĠk ettle\nĠgly c\nĠMand ela\nĠF ully\nå§ «\nFIN EST\nĠsquee zing\nĠRy der\namp oo\noreAnd Online\nInst oreAndOnline\nBuyable InstoreAndOnline\nĠcommem orate\nĠRamp age\nAust in\nĠSh roud\nĠRu ins\n9 15\nĠK H\nĠwater front\nĠE SC\nb aby\nĠC out\nĠEm blem\nĠequival ents\n49 2\nUn ique\nĠNiet zsche\nbrow ser\nĠim itation\nĠWere wolf\nĠKir in\nac as\n' ,\"\nĠÃ ¾\nReview ed\nĠc unt\nĠvo ic\nĠLen ovo\nĠbond ed\n48 1\nĠinhib itors\nĠendeav ors\nĠHav ana\nĠSt out\nĠJ olly\nA ctor\n*/ (\nĠoccur rences\nĠT ens\nIncre ased\nĠACT ION\nĠ ãĢĮ\nĠRank ings\nĠB reat\nĠ30 9\nD ou\nĠimpact ing\nĠDuc hess\npre fix\nQ B\nĠsummon ing\nĠbest owed\nĠKe pler\nĠPOW ER\nc ube\nĠK its\nĠG rip\nĠop ium\nĠrep utable\nt oc\nich ael\nĠR ipple\nĠcaf Ã©\nĠZ oom\nĠBur ma\nĠwa ive\nĠst alls\nĠdem eanor\ninc erity\nĠfluor ide\nĠSH OULD\nPar is\nĠlong ing\nĠpl at\nĠgross ly\nĠbull s\nĠshowc asing\nex pected\nĠG addafi\nengine ering\nRe peat\nĠK ut\nĠconce ivable\nĠtrim med\nosc ope\nĠCand idate\nĠT ears\nrol og\nLew is\nS UP\nĠroad map\nĠsal iva\nĠtrump et\nJim my\nĠmirac ulous\nĠcolon ization\nĠam put\nĠGN OME\nate ch\nD ifferent\nĠE LE\nĠGovern ments\nĠA head\nãħĭ ãħĭ\nword press\nL IB\nĠIn clude\nĠDor othy\n0 45\nĠColomb ian\nĠle ased\n88 4\nĠde grading\nĠDa isy\ni ations\nĠbapt ized\nĠsurn ame\nco x\nĠblink ed\nãĥ ¢\nĠpoll en\nĠder mat\nĠre gex\nĠNich olson\nĠE ater\nç ľ\nrad or\nĠnarrow er\nĠhur ricanes\nĠhalluc inations\nr idden\nISS ION\nĠFire fly\nĠattain ment\nĠnom inate\nĠav ocado\nĠM eredith\nĠt s\nĠreve rence\nĠe uph\nĠcr ates\nĠT EXT\nĠ4 43\nĠ3 19\nJ SON\niqu ette\nĠshort stop\nic key\nĠpro pelled\nĠap i\nĠTh ieves\n77 9\nĠovers aw\nĠcol i\nĠNic ola\nĠover cl\nik awa\nĠC yr\nĠ38 4\n78 9\nĠAll ows\n10 27\nDet roit\nTR Y\nset up\nĠSocial ism\nSov iet\ns usp\nĠAP R\nĠShut down\nĠal uminium\nzb ek\nĠL over\nGGGG GGGG\nĠdemocr acies\nĠ19 08\nĠMer rill\nĠFranco is\ngd ala\nĠtraff ickers\nĠT il\nĠGo at\nĠsp ed\nĠRes erv\nĠpro d\n55 2\nĠc ac\nĠUn iv\nĠSch we\nĠsw irling\nĠWild erness\nĠEgg s\nĠsadd ened\nĠarch aic\nH yd\nĠexcess ively\nB RE\nĠaer ospace\nĠVo ices\nCra ig\nĠign ited\nIn itially\nĠMc A\nĠhand set\nĠreform ing\nĠfrust rations\nĠDead pool\nĠBel ichick\nract or\nĠRagnar ok\nĠD rupal\nĠApp roximately\n19 20\nĠHub ble\narm or\nĠSar as\nĠJon as\nĠnostalg ic\nĠfeas ibility\nSah aran\nĠorb iting\nĠ9 70\nR u\nĠsh in\nĠInvestig ators\nĠinconsist encies\nĠP AN\nB G\nĠgraz ing\nĠdetect ors\nĠStart up\nĠFun ny\nĠNa omi\nConsider ing\nĠh og\nut f\nce mic\nĠfort ified\nĠFun ctions\nĠcod ec\nnut rition\nH at\n\" !\nmicro soft\n55 8\nĠTh in\nĠA CE\nAl ias\nĠO PS\np apers\nP K\nãĢ İ\nĠimpro bable\nN orthern\nequ al\nĠlook out\nĠty res\nĠMod ified\nĠK op\nAbs olutely\nĠbuild up\nsil ver\nĠaud i\nĠgro tesque\nĠSab er\nĠPres byter\nON Y\nĠglac iers\nĠSho als\nĠK ass\nĠH RC\nĠNic ol\nĠL unch\nĠF oss\nâĸ Ĵ\nAD RA\nĠOne Plus\no ing\nground s\nĠincident al\nĠdatas ets\n68 9\nĠClarks on\nĠassemb ling\nĠCorrect ions\nĠdrink ers\nĠqual ifiers\nĠle ash\nĠunf ounded\nĠH undred\nĠkick off\nT i\nĠrecon cil\nĠGr ants\nĠCompl iance\nĠDexter ity\nĠ19 06\nw arn\nD allas\nMax imum\nn ard\nav ia\nbe aut\nens itivity\ntr ace\nĠpione ers\nĠF ract\nãĢ ı\nĠpre cept\nĠgloss y\nĠI EEE\nAc ross\nĠ6 80\nS leep\nche on\nĠsatir ical\nĠMin otaur\nĠCla ude\nĠr Ã©\nape go\nĠcar rot\nĠSem in\nino a\nĠz o\nInd ependent\nĠdiagn oses\nĠC ue\nM AR\nĠrend ition\nĠK ik\nĠpath ology\nĠselect s\nLink edIn\nĠass ay\nĠD res\nĠtext ual\npost ed\nIT AL\nĠM aul\nN eal\nĠinter connected\nĠerr atic\nĠVir us\nĠ5 30\nĠenvironmental ists\nĠP helps\nĠeng agements\nĠIN ST\nĠeconom ical\nnox ious\nĠg earing\nizz y\nĠfavor ably\nĠMcG ill\nT erm\nĠh anged\nĠball park\nĠRe yes\nĠbe ware\nĠP sal\nĠMass acre\nq i\nĠin accessible\nacly sm\nĠfr ay\nill ac\nĠbitter ly\nĠCert ification\nMich igan\nĠir respective\nal ore\nEm pty\nĠendorse ments\nĠund et\nf g\nequ ipped\nĠmerc iless\nĠC ust\nĠimm ature\nĠvou cher\nĠBlack well\nÑ ı\nh awk\ndis ciplinary\nile e\nĠMak oto\nĠD ude\nãĥĩ ãĤ£\nY ears\nĠin ver\nĠsh aman\nĠY ong\nip el\nell en\nĠCath y\nbr ids\nĠs arc\n65 1\nN ear\nĠground work\nĠam az\nĠ4 15\nĠHunting ton\nhew s\nĠB ung\nĠarbit rarily\nĠW it\nĠAl berto\nĠdis qualified\nbest os\n46 1\nĠp c\nĠ28 4\nro bat\nRob in\nĠh ugs\nĠTrans ition\nĠOcc asionally\nĠ3 26\nĠWh ilst\nĠLe y\nĠspaces hip\ncs v\nĠun successfully\nĠA u\nle ck\nĠWing ed\nĠGrizz lies\n. ï¿½\nĠne arer\nĠSorce ress\nĠInd igo\nEl se\n8 40\nlet es\nCo ach\nĠup bringing\nĠK es\nĠseparat ist\nĠrac ists\nĠch ained\nĠabst inence\nlear ning\nĠrein stated\nĠsymm etry\nĠremind ers\nĠChe vy\nĠm ont\nĠexempl ary\nĠT OR\nZ X\nĠqual itative\nĠSt amp\nĠSav annah\nĠRoss i\nĠp aed\nĠdispens aries\nĠWall s\nĠCh ronic\nĠcompliment ary\nĠBeir ut\nĠ+ ---\nigs list\nĠcrypt ographic\nmas ters\nĠCap itals\nĠmax imal\nĠent ropy\nPoint s\nĠcombat ants\nl ip\nĠGl ob\nĠB MC\nph ase\nth ank\nHT TP\nĠcomm uter\nĠ\\( \\\n.. /\nĠReg ener\nĠDO I\nĠActiv ision\nĠsl it\nos al\nRE M\nĠch ants\nY u\nKe ys\nBre xit\nĠFor ced\nAri zona\nĠsquad ron\nIS O\nĠMal one\nĠ3 38\nĠcontrast ing\nĠt idal\nĠlib el\nĠimpl anted\nĠupro ar\nĠC ater\nĠpropos itions\nM anchester\nĠEuro s\nit amin\nG il\nĠEl ven\nĠSe ek\nĠB ai\nĠredevelop ment\nĠTown s\nĠL ub\n! \",\nal on\nK rist\nĠmeas urable\nĠimagin able\nĠapost les\nY N\n7 60\nĠster oid\nĠspecific ity\nĠL ocated\nĠBeck er\nĠE du\nĠDiet ary\nuts ch\nĠMar ilyn\nĠbl ister\nĠM EP\nĠK oz\nĠC MS\ny ahoo\nĠCar ney\nĠbo asting\nĠC aleb\nBy te\nread s\nad en\nPro blem\nĠWood ward\nS we\nS up\nĠK GB\nSet up\nĠtac it\nĠret ribution\nĠd ues\nĠM Ã¼\n. ?\nä¸ Ń\np ots\nĠcame o\nĠP AL\neduc ation\nA my\nlike ly\ng ling\nĠconstitution ally\nĠHam m\nĠSpe ak\nĠwid gets\nbr ate\nĠcra ppy\nĠI ter\nĠanticip ating\nĠB out\nP ixel\nĠY ep\nĠLaur ie\nĠh ut\nĠbullet in\nĠSal vation\nĠch ats\near able\nHonest ly\nAL TH\nonse qu\nc ult\nisco very\novy ch\nĠse lves\nĠSat oshi\nS ounds\nĠconver gence\nĠRosen berg\n19 74\nĠnas al\nĠfull est\nĠfer ocious\nx us\nist e\nAM S\nĠlobb ied\nĠso othing\nĠGun n\nt oday\n0 24\nĠinspir ational\nĠN BN\np b\ng ewater\nor ah\nall owed\nĠCol iseum\nĠspecial izing\nĠinsane ly\nĠT ape\ndel ay\nĠt arn\nĠP ound\nĠmel anch\nĠdeploy ments\nil and\nĠless en\nĠfur ry\nĠUE FA\nĠblood shed\nĠMe ier\nither ing\nĠhe irs\nĠJ aw\nax ter\nĠPublic ations\nĠal ters\nint ention\nĠWinc hester\nd etermination\nĠLif etime\nth in\nMon ster\n7 80\nĠapprox imation\nĠsuper markets\nĠSecond s\nor os\nh uge\nĠb ribe\nĠLIM ITED\nun ed\nĠmis interpret\nĠIn jury\nĠ3 67\nĠthreshold s\nĠCarn ival\nĠgastro intestinal\nĠguid eline\nĠde ceived\nf eatures\nĠpurported ly\nĠRon nie\nĠNew t\nĠsp acious\nas us\nĠsuperhero es\nĠCyn thia\nle gged\nk amp\nch io\nĠth umbnail\nĠShir ley\nill ation\nĠshe ds\nĠZ y\nE PA\nĠdam s\nĠy awn\nn ah\nĠPe ggy\nĠE rie\nĠJu ventus\nĠF ountain\nr x\ndon ald\nal bum\nĠComp rehensive\nĠc aching\nĠU z\nulner ability\nĠPrinc iple\nĠJ ian\ning ers\ncast s\nĠOs iris\nch art\nt ile\nĠTiff any\nĠPatt on\nĠWh ip\nĠovers ized\nJ e\nĠCind erella\nĠB orders\nĠDa esh\nM ah\nĠdog ma\nĠcommun ists\nv u\nCoun cil\nĠfresh water\nĠw ounding\nĠdeb acle\nĠyoung ster\nĠthread ed\nĠB ots\nĠSav ings\nãģ Ĥ\nol ing\noh o\nĠillum ination\nM RI\nĠlo osen\ntr ump\nag ency\nur ion\nĠmoment arily\nĠCh un\nĠBud apest\nĠAl ley\nD isk\nĠaston ished\nĠCon quer\nĠAccount ing\nh aving\nĠWe in\nĠAl right\nĠrev olver\nĠdel usion\nĠrelic s\nĠad herent\nqu ant\nĠhand made\nor io\nĠcomb ating\nc oded\nĠquad ru\nre th\nN ik\nĠTrib al\nĠMyster ious\nĠin hal\nĠWin ning\nĠClass ification\nch anged\nĠun ab\nĠsc orn\nicip ated\nw l\nond uctor\nĠrein forcing\nĠChild hood\nan ova\nĠadventure r\nĠdoctor al\nĠStrateg ies\nĠengulf ed\nĠEnc ounter\nĠl ashes\nCrit ical\nric ular\nĠU TF\noci ation\ncheck ing\nĠConsult ing\nRun time\nper iod\nĠAs gard\nĠdist illed\nĠPas adena\nĠD ying\nĠCOUN TY\nĠgran ite\nĠsm ack\nĠparach ute\nĠS UR\nVirgin ia\nĠF urious\n78 7\nĠO kin\nĠcam el\nĠM bps\n19 72\nĠCh ao\nĠC yan\nj oice\nef er\nĠW rap\nĠDeb ate\nS eg\nĠfore arm\nĠIgn ore\nĠtim estamp\nĠprob ing\nĠNo on\nĠGra il\nf en\nĠdorm ant\nĠFirst ly\nĠE ighth\nĠH UN\nĠDes ire\nor as\nGirl s\nĠDes mond\nz ar\nam ines\nO AD\nexec ute\nĠbo obs\nĠAT L\n_ (\nChel sea\nĠmasturb ation\nĠCo C\nĠdestroy er\nĠCh omsky\nĠsc atter\nĠAss ets\n79 6\nĠC argo\nĠrecept ive\nĠSc ope\nĠmarket ers\nĠlaun chers\nĠax le\nĠSE A\nse q\nĠM off\nf inding\nĠGib bs\nGeorg ia\nextreme ly\nN J\nĠlab orers\nst als\nĠmed iation\nĠH edge\nat own\nĠi od\ndes pite\nv ill\nJ ane\nex istence\nĠcoinc ided\nĠUt ilities\nĠChe ap\nĠlog istical\nĠcul mination\nĠNic otine\np ak\nF older\nĠrod ents\nst uff\nĠlaw fully\nĠreper to\nio ch\nj j\nDial ogue\nHH HH\nlic tion\nLook s\nĠ29 7\nĠtur rets\nĠAb andon\nĠinc ess\nĠTraff ord\nĠcur led\nĠprefer ring\nĠprivat ization\nĠir resist\nĠP anda\nĠSh ake\nĠMc Gr\nãĥ Ħ\nund ers\nĠdiscrim inated\nĠbart ender\nI LE\nAtl antic\nĠprop ensity\nĠW iz\nĠG im\ncon ference\nĠrein forces\nG h\nw agon\nĠe erie\nF al\nĠhug ged\nrac ist\nR IC\nF u\nĠf iller\nĠSt ub\nĠeng raved\nĠWrest le\nĠimagin ative\nĠPe er\nĠFact ors\nan us\nĠDrac ula\nmon itor\nĠrou ters\nib ia\nĠBoo lean\nend ale\nĠSl aughter\nĠSh ack\nR FC\nĠSpiel berg\nS ax\nĠPH OTO\nĠCl over\nĠR ae\nDep ending\nĠMem or\nar am\nĠpier ced\nĠcur tains\nv ale\nĠInqu isition\nĠP oke\nĠforecast ing\nĠcompl ains\nS ense\nĠHer mes\nisc overed\nĠb ible\nĠMor ph\nĠg erm\n78 5\nD ON\nĠcon gen\nĠcr ane\nĠD PR\nĠrespect fully\nR oom\nĠN aw\nĠDal ai\nre ason\nĠAng us\nEduc ation\nĠTitan ic\nË ľ\nĠo val\nun ited\nĠthird s\nĠmoist ur\nĠC PC\nM iami\nĠtent acles\nĠPol aris\nex c\nex clusive\nĠPra irie\nĠcol ossal\nĠBl end\nsur prisingly\nÃŃ s\nĠindo ctr\nĠbas al\nĠMP EG\nund o\nSpl it\nDevelop ment\nĠlan tern\n19 71\nĠprov ocation\nĠang uish\nĠB ind\nĠLe ia\nduc ers\nipp y\nconserv ancy\nĠinitial ize\nĠTw ice\nĠSu k\nĠpred ic\nĠdi ploma\nĠsoc iop\nIng redients\nĠhamm ered\nĠIr ma\nQ aida\nĠglim ps\nĠB ian\nĠst acking\nĠf end\ngov track\nĠun n\ndem ocratic\nig ree\nĠ5 80\nĠ29 4\nĠstraw berry\nID ER\nĠcher ished\nĠH ots\nĠinfer red\nĠ8 08\nĠS ocrates\nO regon\nĠR oses\nĠFO IA\nĠins ensitive\nĠ40 8\nRecomm end\nĠSh ine\nĠpain staking\nUG E\nĠHell er\nĠEnter prises\nI OR\nad j\nN RS\nL G\nĠalien ated\nĠacknowled gement\nĠA UD\nĠRen eg\nĠvou chers\nĠ9 60\nĠm oot\nĠDim ensions\nĠc abbage\nB right\ng at\nĠK lu\nĠlat ent\nĠz e\nĠM eng\nĠdis perse\nĠpand emonium\nH Q\nĠvirt uous\nĠLoc ations\nee per\nprov ided\nĠse ams\nĠW T\niz o\nPR OV\nĠtit anium\nĠrecol lection\nĠcr an\nĠ7 80\nĠN F\n49 1\n64 2\np acking\n59 8\ntext ure\nSp ider\nfre edom\ncipl ed\nĠTAM ADRA\nâĻ ¦\naut hent\nĠW ANT\nr ified\nĠr ites\nĠuter us\nk iss\nĠâī ¤\nĠsk illet\nĠdis enfranch\nĠGa al\nComp an\nĠage ing\ngu ide\nB alt\nĠiter ator\nĠdiscretion ary\nt ips\nĠprim ates\nĠTechn ique\nĠPay ments\naz el\nĠR OCK\nstant ial\n0 60\nĠd mg\nĠJack ets\nĠPlay off\nĠnurs ery\nĠSy mb\nart on\nĠannex ation\nColor ado\nĠco ils\nĠSh oes\nâĦ¢ :\nĠRo z\nCOM PLE\nĠEve rest\nĠTri umph\nJ oy\nG rid\nà ¼\nprocess or\nĠPros per\nĠSever us\nĠSelect ed\nr g\nĠTay yip\nSt ra\nĠski ing\nĠ? )\nĠpe g\nTes la\nĠtime frame\nĠmaster mind\nĠN B\nscient ific\nĠSh it\ngener ic\nIN TER\nN UM\nĠst roll\nĠEn ix\nĠM MR\nĠE MS\nm ovie\nĤ ª\nĠminim izing\nidd ling\nĠilleg itimate\nĠprot otyp\nĠpremature ly\nĠmanual s\nobb ies\nĠCass idy\nD EC\ndes ktop\nĠaer os\nĠscreen ings\nĠdeb ilitating\nĠGr ind\nnature conservancy\nĠf ades\nter mination\nassets adobe\nF actor\nĠdefinitive ly\nP okÃ©\nap ult\nĠLaf ayette\nC orn\nĠCor al\nĠstagn ant\nT ue\nĠdissatisf action\nG ender\nĠkid neys\nĠG ow\nĠDef eat\nĠAsh ton\nĠcart els\nĠfore closure\nĠExpl ore\nstre ngth\not in\nĠveterin arian\nĠf umble\nĠpar ap\nĠSt rait\nr ils\nĠpr ick\nĠBerm uda\nĠAm munition\nskin ned\nĠab ound\nĠB raz\nĠshar per\nĠAsc ension\nĠ9 78\nĠpreview s\nĠcommun ion\nĠX Y\nĠph ony\nĠnewcom er\nĠ3 32\n.\" ,\"\nĠredist ribution\nProt ect\nĠSo f\nK al\nĠlip stick\nw orst\nĠtang led\nĠretrospect ive\nint eger\nĠvolunte ering\nĠ19 07\nĠ --------------------\nic hen\nĠunve iling\nĠsen seless\nĠfisher ies\n\\ -\nĠh inges\nĠcalcul us\nMy th\nĠund efeated\nĠoptim izations\nĠdep ress\nĠbill board\nĠY ad\nĠPy ramid\nIs n\nI de\nĠleg ion\nĠK ramer\nent anyl\nĠpenet rating\nĠHaw th\nĠPR ODUCT\nĠGer ard\nĠP act\nĠIn cluding\nĠEl ias\nĠEl aine\nvis ual\nĠhum ming\nĠcond esc\nĠF asc\nä¸ Ĭ\nĠe galitarian\nĠdev s\nĠD ahl\nO ps\nD H\nĠB ounce\nid ated\nald o\nĠrepublic an\nĠh amb\nĠS ett\nograph ies\nCH APTER\nĠtrans sexual\nĠsky rocket\nans wer\nĠmark up\nØ ª\nĠhero ine\nComp are\nĠT av\nBe ast\nĠsuccess ors\nĠna Ã¯ve\nĠBuck ley\nst ress\nme at\nĠdownload able\nĠindex ed\nĠsc aff\nĠL ump\nĠHom o\nStud io\nIn sp\nĠr acked\nfar ious\nĠPet ty\nEx ternal\nĠ19 09\nW ars\ncom mit\nput ers\nĠun ob\nĠEr r\nĠE G\nĠAl am\nĠSiber ia\nĠAtmosp heric\nIS TER\nĠSatan ic\ntrans lation\nĠL oud\ntra umatic\nl ique\nĠreson ate\nĠWel ch\nĠspark ing\nĠT OM\nt one\nĠout l\nĠhandc uffed\nĠSer ie\n8 01\nĠland marks\nĠRee ves\nĠsoft ened\nĠdazz ling\nĠW anted\nmonth s\nMag ikarp\nĠunt reated\nĠBed ford\nM i\nĠDynam o\nO re\n79 5\nĠwrong ful\nĠl ured\nĠcort isol\nĠve x\nd rawn\nile t\nDownload ha\nĠF action\nĠlab yrinth\nĠhij acked\nw aters\ner ick\nĠsuper iors\nĠRow ling\nĠGu inness\nĠt d\n99 2\nĠune arthed\nĠcentr if\nĠsham eless\nP od\nĠF ib\nĠ icing\nĠpredict or\nĠ29 2\nfore station\ncon struct\nC and\n@ #\nĠag itated\nĠre pr\nOV A\nĠkn itting\nĠLim a\nĠf odder\n68 4\nĠPerson a\nk l\n7 01\nĠbreak up\ná ¸\nĠapp alled\nĠantidepress ants\nĠSus sex\nHar ris\nĠTher mal\nee ee\nU pload\nĠg ulf\nĠdoor step\nĠSh ank\nL U\nĠM EN\nĠP ond\ns orry\nĠmis fortune\nn ance\nĠb ona\nM ut\nĠde graded\nĠL OG\nĠN ess\nan imal\nĠa version\nund own\nĠsupplement ed\nĠC ups\nĠ50 4\nĠdep rive\nĠSpark le\nÅ Ĥ\nĠMed itation\nauth ors\nĠSab an\nĠN aked\nair d\nĠMand arin\nĠScript ures\nĠPerson nel\nĠMahar ashtra\nĠ19 03\nĠP ai\nĠMir age\nomb at\nAccess ory\nĠfrag mented\nT ogether\nĠbelie vable\nĠGl adiator\nal igned\nĠSl ug\nM AT\nĠconvert ible\nĠBour bon\namer on\nĠRe hab\nnt ax\nĠpowd ered\npill ar\nĠsm oker\nĠMans on\nĠB F\n5 11\nĠGood ell\nĠD AR\nm ud\ng art\nĠob edient\nĠTrans mission\nĠDon ation\n8 80\nĠbother ing\nMaterial s\nãĤ ±\ndest roy\nĠfore going\nĠanarch ism\nĠK ry\nice ps\nĠl ittered\nĠSch iff\nĠanecd otal\nun its\nĠf ian\nĠSt im\nĠS OME\nĠInv aders\nĠbehaviour al\nĠVent ures\nĠsub lime\nĠfru ition\nĠPen alty\nĠcorros ion\n¶ ħ\nĠlik ened\nĠbesie ged\nween ey\nĠCre ep\nĠlinem en\nmult i\nic ably\nud der\nĠvital ity\nĠshort fall\nĠP ants\nap ist\nH idden\nĠDro ps\nmed ical\nĠpron unciation\nĠN RL\nĠinsight ful\nJ V\nĠBe ard\nĠCh ou\nĠchar ms\nĠb ins\nĠamb assadors\nĠS aturdays\nĠinhib itor\nĠFr anch\n6 01\n', '\nĠCon or\nart ney\nĠX peria\ng rave\nbe es\nĠProtest ants\nĠso aking\nĠM andal\nĠph ased\nĠ6 60\nĠsc ams\nĠbuzz ing\nĠItal ians\nĠLoren zo\nĠJ A\nĠhes itated\nĠcl iffs\nĠG OT\ningu ishable\nĠk o\nĠinter ruption\nZ ip\nLear ning\nĠundersc ores\nĠBl ink\nK u\n57 9\nĠAut ob\nI RE\nĠwater ing\nĠpast ry\n8 20\nĠvision ary\nĠTempl ar\nawa ited\nĠpist on\nĠant id\ncurrent ly\nĠp ard\nĠw aging\nĠnob ility\nĠY us\nĠinject ing\nf aith\nĠP ASS\nå º\nĠret ake\nĠPR OC\nĠcat hedral\nb ash\nĠwrest lers\nĠpartner ing\nĠn oses\nĠ3 58\nTrans form\nam en\nĠb outs\nĠId eal\nĠConstant in\nĠse p\nĠMon arch\natt en\nĠPe oples\nmod ified\nĠmor atorium\nĠpen chant\nĠoffensive ly\nĠprox ies\nok ane\nĠTaiwan ese\nĠP oo\nĠH OME\nus ional\nĠver bs\nĠO man\nvis ory\nĠpersu asion\nĠmult it\nĠsc issors\nG ay\now ay\noph ysical\nl us\ngn u\nĠap ocalyptic\nĠabsurd ity\nĠplay book\nĠautobi ography\nI UM\nĠsne aking\nĠSim ulation\npp s\nell ery\nPlan et\nĠright fully\nĠn iece\nĠN EC\nĠIP O\nĠDis closure\nlean or\nous y\nST ER\nĠ28 2\nCru z\nCh all\n64 3\nĠSurv ive\nĠF atal\nĠAm id\nap o\nWe apons\nD EN\n7 70\nĠGreen wald\nĠlin en\nal os\nĠpollut ants\nĠPCI e\nk at\nĠp aw\nĠK raft\nC hem\nĠTermin ator\nĠre incarn\nĠ] [\nĠSe eds\nĠsilhou ette\nĠSt ores\nĠgro oming\nĠD irection\nĠIs abel\nĠBr idges\nðŁ ĳ\nE ED\nĠM orsi\nĠval ves\nĠRank ed\nĠPh arma\nĠOrgan izations\nĠpenet rated\nĠRod ham\nĠProt oss\nĠove rest\nĠex asper\nĠT J\nĠ 000000\nĠtrick le\nĠbour bon\nWH O\nĠw retched\nĠmicrosc opic\nĠcheck list\nĠad orned\nR oyal\nAd minist\nĠRet irement\nĠHig hest\nWe ather\nile ge\nĠincre ments\nĠC osponsors\nĠmas se\nĠS inn\nr f\nĠh ordes\nas sembly\n75 4\nĠNat asha\nĠTY PE\nĠGEN ERAL\nĠarr anging\nĠ40 7\nl ator\nĠg lean\nĠdisc redited\nĠclin icians\nUN E\nĠachie ves\nĠEm erson\ncom plex\n= [\nĠprincip ally\nĠfra il\np icked\nĠthan king\nĠre cl\nĠL AST\nĠsupp ressing\nil ic\nĠantidepress ant\nĠLis bon\nĠth or\nĠsp a\nĠking doms\nĠPear ce\nem o\nĠpl ung\nĠdiv est\nĠ ********************************\nb is\nosp els\nad r\nSp irit\nhall a\nP ink\nend ez\nĠresurrect ed\nesc ape\nĠRosen stein\nĠge ological\nĠnecess ities\nĠcarn iv\nĠE lys\nĠBar ney\nĠ29 6\ndig y\nST ON\nD OWN\nĠmil estones\nĠk er\nĠdismant ling\nĠre prim\nĠcross ings\n19 45\nĠpatri archy\nĠblasp hemy\nĠ3 59\nmet ry\nĠOb esity\nĠDiff erences\nbl ocking\nãĥķ ãĤ¡\nich ita\nĠSab ha\nph alt\nĠCol o\nual a\neffic ients\nĠMed ina\ncon sole\n55 7\nĠHann ibal\nĠHab it\nĠF ever\nĠthen ce\nĠsyn agogue\nĠessential s\nĠw ink\nĠTr ader\nID A\nĠSp oiler\nĠIceland ic\nĠHay ward\nĠpe ac\nĠmal ice\nĠflash back\nĠth w\nĠlay offs\nL iquid\nĠtro oper\nĠh inge\nĠRead ers\nPh ill\nĠB auer\nCre ated\nĠaud its\nac compan\nĠunsus pecting\nier a\n6666 6666\nĠbro ch\nĠapprehend ed\nĠM alk\ncer ning\nĠCod ex\nO VER\nM arsh\nĠD eng\nĠExp ression\nĠdisrespect ful\nĠasc ending\nt ests\nĠPlaint iff\nster y\nĠAl ibaba\ndin and\nĠDem psey\nApplic ations\nmor al\nĠthrough put\nĠquar rel\nĠm ills\nĠhe mor\nĠC ASE\nterror ist\nst im\nifest yle\nro zen\nCE PT\nAr k\nu ci\nlect ic\nĠirrit ating\nshe ets\nA y\nĠrede emed\nĠhorn y\nĠTe ach\nĠS ear\ndem ocracy\n4 65\nĠRest ore\nĠstand by\nĠP is\niff in\nĠsleep y\nĠextr ater\nĠcompl iments\nFram eworks\nĠinstall s\nĠb anging\nsur face\nfound land\nĠmetaph ysical\nĠ28 3\noul s\ndev ices\nAr gs\nĠSac rifice\nĠMcC orm\nes on\nCons ervative\nĠM ikhail\nsee ing\nis ively\nĠRo oms\nĠGener ic\nĠenthusi astically\nĠgri pped\nĠcomed ic\nĠElectric ity\nĠgu errilla\nĠdec oration\nĠPerspect ive\nĠconsult ations\nĠun amb\nĠplag iar\nĠmagic ian\nĠe rection\nĠTour ism\nor ied\nro xy\n11 00\nT am\nĪ è\nÎ ³\n× ª\nĠPred ators\nNit rome\nĠtelesc opes\nproject s\nĠun protected\nĠst ocked\nĠEnt reprene\nnex pected\nĠwast ewater\nV ill\nĠint imately\nĠi Cloud\nĠConst able\nĠspo of\nĠne farious\nĠfin s\nĠcens or\nĠMod es\nĠEs per\nar bon\nĠinter sections\nĠlaud ed\nĠphys i\nĠgener ously\nĠThe Nitrome\nĠTheNitrome Fan\nĠar isen\nĠÙ Ī\nĠg lands\nĠPav ilion\nĠGu pta\nĠuniform ly\nĠr amps\nri et\nĠWH EN\nĠVan essa\nĠrout ed\nĠlim p\nĠC PI\np ter\nint uitive\nĠv aping\nĠexperiment ed\nĠOlymp us\nĠAm on\nĠsight ing\nĠinfiltr ate\nĠGentle man\nĠsign ings\nĠMe ow\nĠNav igation\nche cks\n4 33\nĠel apsed\nĠBulg arian\nesp ie\nĠS OM\nd uring\nĠsp ills\nanc a\nĠPly mouth\nM AL\nĠdomest ically\nĠWater gate\nĠF AM\nk illed\ned ited\nĠYour self\nĠsynchron ization\nĠPract ices\nST EP\nĠgen omes\nĠQ R\nnot ice\nĠloc ating\nz in\nĠ3 29\nal cohol\nĠk itten\nV o\nĠr inse\nĠgrapp le\nĠSc rew\nĠD ul\nA IR\nĠle asing\nĠCaf Ã©\nĠro ses\nĠRes pect\nĠmis lead\nĠperfect ed\nĠnud ity\nĠnon partisan\nĠCons umption\nReport ing\nĠnu ances\nĠdeduct ible\nĠSh ots\nĠ3 77\nĠæ ľ\nano oga\nBen ef\nĠB am\nĠS amp\nif ix\nĠgal van\nĠMed als\nrad ius\nĠno bles\nĠe aves\nigr ate\nK T\nĠHar bour\nu ers\nĠrisk ed\nre q\nĠneuro t\nget table\nain a\nRom ney\nĠunder pin\nĠlo ft\nĠSub committee\nĠMong ol\nb iz\nĠmanif ests\nass isted\nĠG aga\nĠsy nergy\nĠreligious ly\nĠPre f\nĠG erry\nT AG\nĠCho i\n4 66\nbeh ind\nĠO u\nGold Magikarp\nĠhemor rh\nR iver\nĠtend on\nĠinj ure\nĠF iona\nĠp ag\nĠag itation\n|| ||\nur an\nĠE SA\nĠest eem\nĠdod ging\nĠ4 12\nr ss\nĠce ases\nex cluding\nĠint akes\nĠinsert s\nĠemb old\nĠO ral\nup uncture\n4 11\nĠUn ified\nĠDe le\nĠfurn ace\nĠCoy otes\nĠBr ach\nL abor\nĠhand shake\nĠbru ises\nGr ade\néĹ ĺ\nĠGram my\nile en\nSt ates\nĠScandinav ian\nĠKard ash\n8 66\nĠeffort lessly\nĠDI RECT\nĠTH EN\nĠMe i\nert ation\n19 68\nĠgro in\nw itch\nRequ irements\n98 5\nĠroof s\nĠest ates\nĠH F\nĠha ha\nĠdense ly\nĠO CT\nĠpl astics\nĠincident ally\nĠTr acks\nĠTax es\nĠch anted\nĠforce ful\nĠBie ber\nĠK ahn\nK ent\nĠC ot\nlic ts\nF ed\nĠhide ous\nĠVer d\nĠSynd icate\nĠIl legal\nJ et\nĠD AV\nre asonable\nc rew\nĠfundamental ist\nĠtruth ful\nĠJ ing\nĠl il\nĠdown ed\nĠen chanted\nĠPolic ies\nĠMcM aster\nĠH are\nides how\nĠpar ams\nen cers\ngorith m\nĠallow ances\nĠturb ulent\nĠcomplex ities\nĠK T\nĠ3 37\nĠGen etic\nF UN\nD oug\nt ick\nĠg igs\nument hal\nĠpatriarch al\nĠcal c\n, ...\nĠc out\nĠGu an\nĠpath ological\nĠR ivals\nĠunder rated\nĠflu orescent\nĠJ iu\narna ev\nĠQu an\nĠ4 29\nĠ à¨\nM ario\nCon struct\nĠC itation\nĠR acial\nĠR SA\nĠF idel\nĠ3 95\nPerson ally\nC ause\nÃ »\nrad ical\nin en\nĠvehement ly\nĠPap a\nĠintern ship\nĠfl akes\nĠRe ck\nLuck ily\nB ra\n20 20\nrav ings\nR N\nW onder\nSer iously\nĠre usable\nĠpoll uted\nĠP eng\nle igh\nind le\nĠcircuit ry\nĠMad onna\nĠB ART\nRes idents\natt ribute\nPhil adelphia\nCl ub\nĠplan ner\nĠfr antically\nĠfaith fully\nĠTerrit ories\nĠL AT\nĠAnders en\nan u\nĠP ARK\nĠS ora\ni age\nĠPlay offs\nĠG CC\n4 27\nĠab norm\nĠL ever\nĠdisob edience\nAs ync\nĠShe a\nV ert\nĠsk irts\nĠSaw yer\nx p\nĠwors ening\nĠsc apego\nĠAng le\noth al\nĠtro ve\nĠSt y\nĠN guyen\nmar ine\nide on\nDep ths\nBl og\nĠIll uminati\nĠtract s\nĠorgan ise\nĠo str\nF s\nĠlever aging\nĠD aredevil\nas ar\nĠl ang\nĠex termin\nurs ions\nĠRom o\nãĤ¤ ãĥĪ\nĠcont ended\nĠencounter ing\nĠTable t\nĠAltern ate\nsk ill\nĠswe ets\nĠco hesive\ncap acity\nĠrep ud\nĠl izard\nro o\nĠpilgr ims\nĠR uff\nĠInstr ument\nĠLog o\nuit ous\nE H\nĠsales man\nĠank les\nL ed\nĠPat ty\nud os\nOwn er\nĠdiscrep ancies\nk j\nM U\nĠuncond itional\nDragon Magazine\ni ard\nO ak\nĠConvers ation\nbe er\nĠOs aka\nD elta\nus ky\nĠsecret ion\nĠpl aza\nĠm ing\nĠde pletion\nĠM ous\nĠI TS\nĠH imal\nĠFle ming\nĠcyt ok\nĠH ick\nĠbat ters\nĠInt ellectual\n6 75\nÃ© r\nIS ION\nĠQu entin\nĠCh apters\nih adi\nĠco aster\nWAY S\nĠL izard\nĠY or\nand ering\nS kin\nha ust\nab by\nĠportray ing\nĠwield ed\nd ash\nĠprop onent\nĠr ipple\nĠgrap hene\nĠfly er\nĠrec urrent\nĠdev ils\nĠwater fall\næĺ ¯\ngo o\nText Color\nĠtam pering\nIV ES\nTR UMP\nĠAb el\nĠS AL\nĠHend ricks\nĠLu cius\nb ots\nĠ40 96\nIST ORY\nGu est\nĠN X\nin ant\nBen z\nĠLoad ed\nĠCle ver\nt reatment\nĠta vern\nĠ3 39\nĠT NT\nific antly\nTem perature\nF el\nĠunder world\nĠJud ges\nĠ< +\nĠst ump\nĠoccup ancy\nĠab er\nĠF inder\n) \",\nĠN unes\nres et\nin et\nect omy\nĠwell ness\nĠP eb\nquart ered\nand an\nĠneg atives\nĠTh iel\nĠCl ip\nĠL TD\nĠbl ight\nĠreperto ire\nK yle\nĠqu er\nĠC es\nĠha pl\n98 9\nĠTh ames\nisc opal\nDes k\nivari ate\nĠEx cellence\nfound ation\nĠâ ĩ\nX i\nĠmyster iously\nesty les\nĠper ish\nĠEng els\nĠDE AD\n09 0\n}} }\nĠUn real\nĠrest less\nID ES\north odox\nĠInter mediate\nĠdin ners\nĠTr out\nĠSe ym\nĠHall s\nog ged\nĠtraged ies\nĠdid nt\n67 6\nĠail ments\nĠobserv able\nĠV ide\nad apt\nĠD usk\nĠprofessional ism\nĠPres cott\nĠInd ies\np ox\nĠMe hran\nW ide\nĠend emic\nĠPar an\nB ird\nĠped als\nĠI U\nĠAdam ant\nĠH urt\nĠcorrel ates\nurd en\nĠspons oring\ncl imate\nĠUnivers ities\nĠK not\nenn es\nĠDam ian\nĠAx el\nS port\nĠbar b\nĠS no\nsh own\nste en\nud ence\nĠnon violent\nĠhom ophobia\nĠbiom ass\nĠDet ail\nĠsrf N\nĠT une\naccompan ied\nI ENCE\nAl bert\nĠMong o\nz x\nĠCer berus\nor bit\nc ens\nĠsl ay\nSH ARE\nH Y\nĠb rawl\nĠPro be\nĠnonex istent\nĠClare nce\nĠBlack burn\nĠport als\nĠR ita\nĠRem ain\nĠLe vant\nĠtrick ed\nĠF erry\naver ing\nĠStraw berry\nĠAn swers\nĠhorrend ous\nĠA man\nSupp lement\nĠT oad\nĠpe eled\nĠman oeuv\nĠU zbek\nmond s\nĠH ector\nĠ40 2\npe es\nfix es\nĠd j\nĠres umes\nĠaccount ant\nĠadvers ity\nĠham pered\nĠL arson\nĠd oping\npart s\nH ur\nĠbe arded\nĠy r\nĠPlug in\nå¥ ³\nĠ/ **\nrol ley\nĠwaters hed\nĠSub mission\nif lower\nAS C\nĠcho ir\nĠsculpt ures\nm A\nincre asing\nai i\nĠsne akers\nĠconfront s\nĠEle phant\nĠEl ixir\nĠrec al\nĠT TL\nw idget\nĠW ax\nĠGr ayson\nĠha irst\nĠhumili ated\nĠWAR N\napp iness\nĠT TC\nF uel\nĠpol io\nĠcomplex es\nĠbab e\nĠX IV\nP F\n). [\nP arts\nĠ4 35\nM eg\nĠY ards\nĠAL P\nĠy ells\nĠprin ces\nĠbull ies\nĠCapital ism\nex empt\nFA Q\nĠSp onge\nĠAl a\nĠpleas antly\nĠbu f\nĠden ote\nĠunp ublished\nĠkne eling\nasc a\nĠl apse\nal ien\n99 4\nĠrefere es\nĠLaw yers\nS anta\nĠpuzz ling\nĠProm etheus\nĠPh araoh\nĠDel ay\nĠfacilit ates\nĠC ES\nĠjew els\nĠbook let\nond ing\nĠpolar ization\nĠMor an\nĠSal ad\nĠS OS\nĠAdv ice\nPH OTOS\nIC AN\niat ures\nex press\nĠWonder land\nĠC ODE\nĠCL ASS\n9 75\nĠg rep\nĠD iesel\nĠGl ac\n! ?\"\nĠr m\no ine\ndisc rimination\nĠN urse\nm allow\nĠv ortex\nĠCons ortium\nĠlarge Download\nstra ight\naugh lin\nG rad\nĠpublic ized\nĠW aves\nĠRed d\nĠfest ivities\nĠM ane\nar ov\nĠfleet ing\nĠDr unk\nug en\nC ele\nĠchromos omes\nĠD OT\n-+-+ -+-+\nĠbus iest\nĠBe aver\nSy rian\nĠK yr\nk as\nĠCross Ref\n19 50\n76 01\nĠrepe aling\nĠWin ners\nĠMac ro\nĠD OD\nbl ance\nS ort\n64 1\nĠmet re\nĠD irk\nĠgo ggles\nĠdraw backs\nĠcomplain ant\nĠauthor izing\nĠantit rust\noper ated\nĠm ah\nĠexagger ation\nAm azing\nĠSer aph\nĠha ze\nw ow\nĠextingu ished\nĠcan yon\nĠB osh\nĠv ents\nĠsc rape\nCor rect\n4 26\nĠav g\nDem and\nĠâĪ ¼\nĠmicrobi ota\n\"} ],\"\nĠSt ev\nB io\nĠPlan es\nĠsuggest ive\nĠdec ipher\nĠRefuge e\nĠKe jriwal\nĠGreen peace\nĠdecl ass\nĠSound ers\nĠth o\nĠdec rypt\nĠbr ushing\nĠJane iro\nip op\nS i\n8 77\nĠGeoff rey\nĠc pu\nĠHaz el\nĠview points\nĠcris py\nĠNot ification\nĠsold er\nĠMod est\nĠHem isphere\nĠcass ette\nin cludes\nĠident ifiers\nĠC ALL\nin cent\nT odd\nĠSwe ep\nĠ3 34\nb oss\nĠsm ir\ngin x\nĠtown ship\nĠg rieving\nĠMos que\nNet flix\nAS ED\nĠMillenn ials\noc om\n19 67\nĠbold ly\ns leep\nĠes che\narij uana\nĠsw irl\nĠPen al\nĠneglig ent\nĠStephen son\nK ER\nĠZ oro\nris is\nĠlocal ization\nĠSeym our\nĠAng lic\nred itation\nprot ection\nĠPa ige\nĠo mit\nĠR ousse\nĠT ub\nĠinv itations\nt ty\nĠm oss\nph ysical\nC redits\nĠan archy\nĠchild care\nĠl ull\nĠM ek\nĠL anguages\nlat est\nĠSan ford\nĠus ability\nĠdiff use\nĠD ATA\nĠsp rites\nĠVeget a\nĠProm otion\nãĥ¼ ãĤ¯\nrict ing\nz ee\nTur kish\nĠTD s\npro ven\n57 1\nĠsmug glers\n707 10\nĠreform ed\nĠLo is\nĠun fl\nĠWITH OUT\nĠReturn ing\nann ie\nĠTom as\nFr anc\nĠProf it\nĠSER V\nĠR umble\nik uman\nes an\nĠt esters\nĠgad get\nĠbrace let\nĠF SA\ncomp onent\nĠparamed ics\nĠj an\nĠRem em\nĠSk inner\nĠl ov\nĠQu ake\nrom a\nĠfl ask\nPr inc\nĠover power\nĠlod ging\nĠK KK\nret te\nĠabsor bs\nw rote\nĠ ,\"\nK ings\nĠH ail\nĠFall ing\nxt ap\nĠHel ena\nire ns\nL arry\nĠpamph let\nĠC PR\nG ro\nĠHirosh ima\nĠhol istic\n\". [\nĠdet achment\nĠas pire\nĠcompl icit\nĠGreen wood\nĠresp awn\nĠSt upid\nĠFin ished\nf al\nb ass\nĠab hor\nĠmock ery\nĠFe ast\nVID EO\nĠcon sec\nĠHung ry\nP ull\nĠH ust\nit ance\n? ãĢį\n) --\nĠPar allel\ncon v\n4 69\nha ar\nw ant\nP aper\nm ins\nĠTor o\nĠTR UMP\nĠR ai\nD W\nĠW icked\nĠL ep\nĠfun ky\nĠdetrim ent\nios is\nache v\nĠde grade\nim ilation\nĠret ard\nĠfrag mentation\nĠcow boy\nĠY PG\nĠH AL\nParent s\nĠS ieg\nĠStra uss\nĠRub ber\n× Ĳ\nFr ag\nĠp t\nĠoption ally\nĠZ IP\nĠTrans cript\nĠD well\n88 2\nM erc\nĠM OT\nãĥ¯ ãĥ³\nĠhun ts\nĠexec utes\nIn cludes\nĠacid ic\nĠRespons ibility\nĠD umb\nwe i\nAnd erson\nĠJas per\night on\nabs olutely\nAd ult\nĠpl under\nMor ning\nĠT ours\nĠD ane\nÎ º\nĠT EST\nĠG ina\nĠcan ine\naw an\nĠsocial ists\nĠS oda\nĠimp etus\nĠSupplement ary\noli ath\nĠKinn ikuman\nmitted ly\nsecond s\nĠorganis ers\nĠdocument aries\nVari able\nGRE EN\nĠres orts\nĠbr agging\nĠ3 68\nArt ist\nw k\nbl ers\nUn common\nĠRet rieved\nĠhect ares\nĠtox in\nr ank\nĠfaith s\nĠG raphic\nĠve c\nĠL IA\nAf rican\nĠard ent\nend iary\nL ake\nĠD OS\ncient ious\nĠOk awaru\nĠAll y\nĠTim eline\nD ash\nĠI c\ncontin ue\nĠt idy\nĠinstinct ively\nĠP ossibly\nĠOut door\nĠWould n\nĠl ich\nĠBr ay\nĠA X\nĠÃ ī\nĠ+ #\n\\ '\nDirect ory\nab iding\nĠf eral\nic ative\nbut t\nĠper verse\nS alt\nĠwar ped\nĠnin eteen\nĠcabin ets\nĠsrf Attach\nĠSl oan\nĠpower ing\nreg ation\nF light\nse vere\nĠst ren\nĠc og\nap ache\nĠâ Ŀ\nĠcaf eteria\np aces\nĠGrim oire\nuton ium\nĠr aining\nĠcir cling\nĠlineback ers\nc redit\nĠrep atri\nĠCam den\nlic ense\nĠly ric\nĠdescript or\nĠval leys\nĠre q\nĠback stage\nĠPro hibition\nĠK et\nOp ening\nS ym\næĸ ¹\nĠserv ings\nĠoverse en\nĠaster oids\nĠMod s\nĠSpr inger\nĠCont ainer\nè »\nĠM ens\nĠmult im\nĠfire fighter\npe c\nĠchlor ine\nÐ ¼\nend i\nĠsp aring\nĠpolyg amy\nĠR N\nĠP ell\nĠt igers\nĠflash y\nĠMad ame\nS word\nĠpref rontal\nĠpre requisite\nuc a\nĠw ifi\nĠmiscon ception\nĠharsh ly\nĠStream ing\not om\nĠGiul iani\nfoot ed\nĠtub ing\nind ividual\nz ek\nn uclear\nm ol\nĠright ful\n49 3\nĠspecial ization\nĠpassion ately\nĠVel ocity\nĠAv ailability\nT enn\nĠl atch\nĠSome body\nĠhel ium\ncl aw\nĠdi pping\nXX X\nĠinter personal\n7 10\nĠsub ter\nĠbi ologists\nĠLight ing\nĠopt ic\nĠden im\nend on\nĠC orm\nĠ3 41\nĠC oup\nĠfear less\nĠal ot\nĠCliff ord\nĠRun time\nĠProv ision\nup dated\nlene ck\nĠneur on\nĠgrad ing\nĠC t\nsequ ence\nin ia\ncon cept\nĠro aring\nri val\nĠCaucas ian\nĠmon og\nkey es\nĠappell ate\nĠlia ison\nEStream Frame\nĠPl um\n! .\nĠsp herical\nĠper ished\nĠbl ot\nĠben ches\nĠ4 11\nĠpione ered\nĠhur led\nJenn ifer\nĠYose mite\nCh air\nĠreef s\nĠelect or\nĠAnt hem\n65 2\nĠun install\nĠimp ede\nĠbl inking\nĠgot o\nDec re\nA ren\nĠstabil ization\nĠDis abled\nĠYanuk ovych\nĠoutlaw ed\nĠVent ura\nten ess\nĠplant ation\nĠy acht\nĠHu awei\nĠsol vent\nĠgr acious\nĠcur iously\nĠcapac itor\nĠc x\nĠRef lex\nPh ys\nĠC f\npt in\ncons ervative\nĠinv ocation\nc our\nF N\nĠNew ly\nH our\nAs ian\nĠLe ading\nĠAer ospace\nAn ne\nĠpre natal\nĠdeterior ating\nH CR\nĠNorm andy\nol ini\nĠAm bro\n9 10\nĠset backs\nĠT RE\nĠs ig\nĠSc ourge\n59 7\n79 8\nGame play\nĠm sec\nM X\nĠprice y\nĠL LP\naker u\nĠover arching\nĠB ale\nĠworld ly\nCl ark\nĠscen ic\nĠdisl iked\nĠCont rolled\nT ickets\nĠE W\nab ies\nĠPl enty\nNon etheless\nĠart isan\nTrans fer\nĠF amous\nĠinf ield\nble y\nĠunres olved\nĠML A\nãĤ Ĥ\nCor rection\nĠdemocr at\nĠMore no\nro cal\nil ings\nĠsail or\nĠr ife\nh ung\nĠtrop es\nĠsn atched\nĠL IN\nĠB ib\nES A\nĠPre v\nĠCam el\nrun time\nĠob noxious\n4 37\nĠsum mers\nĠunexpl ained\nĠWal ters\ncal iber\nĠg ull\nĠEnd urance\nä½ ľ\nĠ3 47\nIr ish\nĠaer obic\nĠcr amped\nĠHon olulu\nà ©\nus erc\nec ast\nAC Y\nĠQu ery\nãĤ¹ ãĥĪ\nBet a\nĠsuscept ibility\nĠSh iv\nĠLim baugh\nĠÃ ĸ\nĠN XT\nĠM uss\nĠBrit ons\nES CO\nEG IN\nĠ% %\nĠsec ession\nĠPat ron\nĠLu a\nn aires\nĠJPM organ\nus b\nocy te\nĠcouncill ors\nĠLi ang\nf arm\nĠnerv ously\nĠattract iveness\nĠK ov\nj ump\nPl ot\nĠst ains\nĠStat ue\nĠApost les\nhe ter\nĠSUP PORT\nĠoverwhel m\nY ES\nĠ29 1\nd ensity\nĠtra pping\nM it\nĠf ide\nĠPam ela\natl antic\nDam n\nĠp ts\nOP A\nĠserv icing\nĠoverfl owing\nul o\nĠE rit\nt icket\nlight ing\nĠH mm\nãĥ¼ ãĥ«\nim oto\nĠchuck le\n4 23\nãģ ķ\nsh ape\nĠque ues\nĠanch ors\nãĤ¼ ãĤ¦ãĤ¹\nF er\nĠaw oke\nĠ6 66\nh ands\nĠdiver gence\nĠ50 5\nT ips\nĠdep ot\nĠske w\nĠDel iver\nop ot\nĠdiv ul\nĠE B\nuns igned\nĠUn i\nX box\nĠfor ks\nĠ7 02\nå ¯\nĠpromot ers\nĠV apor\nĠlev ied\nsl ot\nĠpig ment\nĠcyl inders\nC RE\nĠsn atch\nĠperpet ually\nĠl icking\nĠFe et\nĠKra ken\nĠHold en\nĠCLS ID\nm r\nĠproject or\nĠden otes\nĠchap el\nĠTor rent\nb ler\nR oute\nĠDef endant\nĠPublisher s\nĠM ales\nĠInn ov\nĠAg ility\nrit er\nty mology\nst ores\nL ind\nĠf olly\nĠZur ich\nB le\nĠnurt ure\nĠcoast line\nuch in\nD omin\nĠfri vol\nĠCons olid\nres ults\nM J\nĠphyl ogen\nĠha uled\nĠW iley\nĠJess ie\nĠPrep are\nĠE ps\nĠtreasure r\nI AS\nĠcolon ists\nĠin und\nĠWW F\nĠCon verted\n6 000\nout side\nĠApp earance\nĠRel ic\nĠM ister\ns aw\nĠresult ant\nĠadject ive\nĠLaure l\nĠHind i\nb da\nPe ace\nĠreb irth\nĠmembr anes\nĠforward ing\nĠcoll ided\nĠCar olyn\nK ansas\n5 99\nĠSolid GoldMagikarp\nBe ck\nĠstress ing\nĠGo o\nĠCooper ative\nĠf s\nĠAr chie\nL iter\nĠK lopp\nJ erry\nĠfoot wear\nWar ren\nĠsc ree\nh are\nUnder standing\nP ed\nĠanth ology\nĠAnn ounce\nM ega\nĠflu ent\nĠbond age\nĠDisc ount\nil ial\nC art\nĠNight mares\nSh am\nĠB oll\nuss ie\nH ttp\nAtl anta\nĠun recogn\nĠB id\nĠunder grad\nĠforg iving\nĠGl over\nAAAA AAAA\n4 45\nV G\npa io\nkill ers\nĠrespons ibly\nĠmobil ize\nĠeffect ed\nĠL umin\nĠk ale\nĠinfring ing\nann ounced\nĠf itt\nb atch\nĠT ackle\nĠL ime\nĠAP P\nuke mia\nĠrub y\nĠex oner\nĠCas ual\n0 70\nĠpel vic\nĠautom ate\nĠK ear\nĠCoast al\nĠcre ed\nĠbored om\nĠSt un\nri ott\nĤ İ\nĠregener ate\nĠcomed ians\nĠOP ER\nSp ons\nid ium\non is\nL ocated\n05 7\nĠsusp ense\nĠD ating\nC ass\nĠneoc ons\nĠShin zo\nĠaw oken\nch rist\nĠMess ages\natt led\nĠSpr ay\nĠSp ice\nC W\nĠshield ing\nĠG aul\nAm id\nĠparam ilitary\nĠmult if\nĠTan ner\nil k\nĠgodd amn\ng ements\nĠbe friend\nm obi\nĠ3 88\nfold er\nacc a\nĠins in\ng ap\nN ev\nfif th\nĠpsychiat ry\nb anks\nTH IS\nĠhar b\nac qu\nĠfac ade\nĠPower Point\n80 3\nĠbl uff\nSh ares\nĠfavor ing\nEl izabeth\nÃį Ãį\nĠr anger\n77 2\nĠAr che\nh ak\nĠGen etics\nĠF EMA\nĠev olves\nĠest e\nĠP ets\nĠM Ã©\nĠInterest ing\nĠCanter bury\nch apter\nĠStar fleet\nSp anish\nĠdraw back\nĠNor wich\n9 70\nn orth\nag anda\nĠtransform ative\nram ids\nbi ology\nad ay\nĠpropag ation\nĠGam ma\nĠDen ise\nĠCalcul ator\nent imes\nĠB ett\nĠapp endix\nĠHD D\nAK ING\nĠst igmat\nĠhol ster\nĠord inarily\nCh ance\nĠCont rary\nĠad hesive\nĠgather s\n6 12\nre au\nony ms\new ays\nĠindu ces\nĠinterchange able\nse m\nWh it\nĠtr ance\nĠincorpor ation\nĠExt ras\nFin ancial\nĠawkward ly\nĠStur geon\nĠH Y\nNorm ally\nĠEnd ing\nĠAss ist\nenc rypted\nĠsub jug\nĠn os\nĠfan atic\nC ub\nC U\n?\" .\nĠirre versible\nå Ĥ\n03 1\nĠH AR\nsp read\nul ia\n= $\nSc ope\nL ots\nĠlif estyles\nol on\nĠf eds\nĠcongrat ulate\nweb kit\nĠindist inguishable\nĠSw ing\nĠcommand ments\nqu ila\nab ella\nm ethyl\nann abin\nĠo vere\nĠlob ster\nĠQU EST\nĠCONT IN\nbern atorial\n:::: ::::\nĠTra ve\nĠSam oa\nAN I\n75 2\nÐ ´\nuserc ontent\nĠMod erate\ny eah\nĠK itt\nĠwe e\nĠstuff ing\nĠInter vention\nĠD ign\nĠware houses\nĠF iji\nĠpel lets\nĠtake away\nĠT ABLE\nĠClass ical\ncol lection\nĠland fall\nĠMus cle\nĠsett les\nĠAD V\nĠ3 44\nL aura\nĠf ared\nĠPart ial\n4 36\noss ibility\nĠD aly\nĠT arant\nĠFu ji\nam l\nc ence\n55 1\nĠProced ures\nĠO CD\nĠU D\nt in\nQ UI\nach o\n4 38\nĠgl itches\nĠenchant ment\nĠcalcul ates\nIR O\nĠH ua\nalys es\nĠL ift\num o\nĠle apt\nĠhypothes ized\nĠGust av\nit ans\nVERS ION\næ ł\nRog er\nĠr and\nĠAd apter\nĠ3 31\nĠPet ition\nk ies\nM ars\nĠunder cut\nze es\nĠLy ons\nĠDH CP\nMiss ing\nĠretire es\nĠins idious\nel i\n> )\n. ãĢį\nĠfinal ists\nĠA ure\nĠacc user\nĠwas tes\nĠY s\nĠL ori\nĠconstitu encies\nĠsupp er\nĠmay hem\nor ange\nĠmis placed\nĠmanager ial\nĠex ce\nĠCL I\nĠprim al\nĠL ent\nCry stal\nh over\nĠN TS\nend um\nĠd w\nĠAl c\nn ostic\nĠpres erves\nĠTs arnaev\nĠtri pled\nrel ative\nArc ade\nk illing\nĠW EEK\nĠH anna\nD ust\nCom pleted\nģ «\nĠappro ves\nĠSur f\nĠLuther an\nven ants\nĠrobber ies\nwe ights\nsoft ware\nat ana\nug al\nĠgrav y\nĠC ance\nOLOG Y\nly ak\nTon ight\nĠunve il\nĠ19 04\nĠMin ion\nent ious\nst ice\npack ages\nĠG EAR\nĠg ol\nĠHutch inson\nĠProf ession\nĠG UN\nĠDiff erence\nĠTsuk uyomi\nĠLes bian\n6 70\nĠfug itive\nĠPlan etary\n-------------------------------- ------------------------\nĠacc rued\nĠch icks\nĠsto pp\nĠblock ers\nC od\nĠcomment ers\nĠSomew here\nĠPhot ographer\nthe me\nĠmay oral\nw u\nĠanten nas\nĠrev amped\nĠSubject s\nit Ã©\nim ura\nĠentr ances\nliter ally\nĠten ets\nĠO MG\nĠMP H\nĠDon key\nĠOff ense\nĠ\" +\nSn ap\nĠAF B\nĠan imate\nĠS od\nHis panic\nĠinconsist ency\nD b\nF Y\nEx port\nĠa pe\nĠpear l\nib el\nĠPAC s\nĠ{ \\\nĠact u\nĠHS BC\ncamp us\nĠpay off\nĠde ities\nĠN ato\nou ple\nĠcens ored\nĠCl ojure\nĠconf ounding\nen i\nĠreck on\nop he\nĠspot ting\nĠsign ifies\nĠprop el\nĠfest ive\nS uggest\nĠpled ging\nĠB erman\nĠrebell ious\nĠovershadow ed\nĠinfiltr ated\nj obs\n67 2\nĠscal able\nĠdomin ion\nĠNew foundland\nĠMead ow\nĠpart itions\nAM I\nĠsupplement ary\nstr ument\nĠhair y\nĠperpet uate\nĠnuts hell\nĠPot ato\nĠHob bit\nĠcur ses\nFlo at\nĠquiet er\nĠfuel ing\nĠcaps ules\nĠL ust\nĠH aunted\nExec utive\nĠchild birth\nG re\nĠrad iant\nå İ\nĠm alls\nĠin ept\nĠWarrant y\nĠspect ator\nE h\nt hens\nĠculmin ating\næ ©\nary a\nãĤ ®\nilit arian\nĠOR IG\nĠSp ending\npt ives\nĠS iren\nĠRec ording\nay ne\nĠv im\nĠspr ang\nT ang\nĠM FT\nmor ning\nĠWe ed\nm peg\ncess ion\nĠCh ung\n7 30\nw arning\n56 2\nhanded ly\nP oor\nP olitics\n: #\nĠp ian\nĠfec es\nĠDocument ation\nĠban ished\nĠ3 99\nĠAR C\nĠhe inous\nJ ake\nĠAm ir\nway ne\nv re\nos henko\nĠnotebook s\nĠfound ational\nĠmarvel ous\nixt ape\nĠwithdraw als\nĠh orde\nĠD habi\nis able\nĠK D\nĠcontag ious\nĠD ip\nĠAr rows\nĠpronoun s\nĠmorph ine\nĠB US\n68 2\nĠk osher\nfin ished\nĠInstr uments\nĠf used\nyd en\nĠSal mon\nF ab\naff ected\nK EN\nC ENT\nDom ain\nĠpoke mon\nĠDr inking\nG rowing\nĠInvestig ative\nĠA ether\nem i\nĠtabl oid\nĠrep ro\nĠNot withstanding\nĠBers erker\nĠdram as\nĠclich Ã©\nĠb ung\nĠU RI\nĠD os\n0 44\nĠpast ors\nĠl s\nĠac rylic\naun ts\nEd ward\nĠmajor ities\nB ang\nĠfield ing\nĠRepl acement\nĠAl chemy\npp ard\nĠRome o\nĠSan ct\nĠLav rov\nib ble\nInst ruct\nĠimp ractical\nĠPlay boy\nce phal\nĠsw aps\nĠk an\nĠThe o\nĠillust rating\nĠdismant led\nĠTrans gender\nĠG uth\nUG H\nĠtriumph ant\nĠencomp ass\nĠbook mark\nudd in\nj er\nĠpred icate\nES H\nĠwhen ce\nĠAB E\nĠnon profits\nSe qu\nĠdi abetic\nĠp end\nĠheart felt\nsh i\nĠinter acts\nĠTele com\nĠbombard ment\ndep ending\nĠLow ry\nĠAd mission\nĠBl ooming\nust ration\nene gger\nB rew\nĠmol ten\nĠNer d\nP IN\nâĸ Ģ\nave ment\nĠtou red\nĠco efficients\nĠTray von\nans son\nĠsand y\nt old\nfl ows\nĠpop ulous\nĠT inder\nĠBl iss\nR achel\nMin imum\nĠcontest ant\nĠRed uce\nĠMor se\nĠGrass ley\nĠClick er\nĠexp r\nĠs incerity\nĠmar qu\nĠelic it\nĠPro position\nĠDemon ic\nĠtac os\nG reek\nĠpost war\nĠin sofar\nĠP ork\nĠ35 2\ndoctor al\nwalk ing\nĠmid term\nĠSam my\nsight ed\nĠTR ANS\nic i\nAL D\nĠUS L\nĠF ISA\nĠAm pl\nĠAlex andra\nine lli\nTr ain\nĠsign ify\nĠVers us\nĠob fusc\nĠk h\nĠagg ro\nĠRen ault\nĠ3 48\n5 18\nox icity\n0 22\nĠTw ist\nĠgoof y\nD ynamic\nĠbrief ings\nm ight\n8 99\nĠderog atory\nT ro\nĠfor ging\nĠKor an\nĠMar ried\nĠBuc s\nĠpal ate\nĠCon version\nm able\n4 13\nĠ( _\nĠs iph\nĠN EO\ncol lege\nĠmarg inally\nĠfl irt\nĠTra ps\nĠP ace\né »Ĵ\nĠgoalt ender\nĠforb ids\nĠcler ks\nĠT ant\nĠRobb ins\nĠPrint ing\nĠpremie red\nĠmagn ification\nĠT G\nĠR ouse\nĠM ock\nodynam ics\nĠpre clude\nism o\nĠPul itzer\nĠaval anche\nĠK odi\nrib une\nĠL ena\nElect ric\nĠref inery\nĠend owed\nĠcounsel ors\nĠd olphin\nĠM ith\nĠarm oured\nhib ited\nBeg in\nĠP W\nO il\nĠV or\nĠShar if\nĠFraz ier\nest ate\nĠj ams\nPro xy\nĠband its\nĠPresbyter ian\nĠPrem iere\nt iny\nĠCru el\nTest ing\nĠhom er\nĠV ERS\nĠPro l\nĠDep osit\nĠCoff in\nĠsemin ars\nĠs ql\nĠDef endants\nAltern atively\nĠR ats\nç «\nethy st\n' >\nĠiss uer\n58 9\nĠch aired\nĠAccess ories\nman ent\nĠmar row\nĠPrim ordial\nC N\nĠlimit less\nĠCarn age\nĠund rafted\nq v\nIN ESS\non ew\nĠco hesion\n98 7\nĠne cks\nĠfootball er\nĠG ER\nĠdetect able\nĠSupport ing\nĠCS V\noc ally\nk Hz\nĠund e\nĠsh one\nĠbud ding\ntra k\nStand ing\nĠStar craft\nĠKem p\nBen ch\nĠthw arted\nĠGround s\nath i\nL isa\nDial og\nĠS X\nV ision\nĠingen ious\nÙ Ĳ\nĠfost ering\nĠZ a\nĠIn gram\nĠ\" @\nN aturally\n6 16\n0 35\nĠF AC\nH mm\n55 4\nĠacceler ator\nĠV end\nĠsun screen\nĠtuber culosis\nrav iolet\nĠFunction al\nĠEr rors\ned ar\n19 66\nĠSpect re\nĠRec ipes\n88 5\nĠM ankind\nL iverpool\nĠ| --\nĠsubst itutes\nĠX T\nw ired\nĠinc o\nĠAf gh\nE va\nic c\nS ong\nK night\nĠdilig ently\nĠBroad cast\nA id\nĠaf ar\nĠH MS\naton in\nĠGr ateful\nĠfire place\nĠOm ni\ne uro\nĠF RE\nĠSh ib\nĠDig est\nt oggle\nĠheads ets\nĠdiff usion\nĠSqu irrel\nĠF N\nĠdark ened\nout her\nĠsleep s\nĠX er\ngun s\nĠset ups\nĠpars ed\nĠmamm oth\nĠCur ious\ng ob\nĠFitz patrick\nĠEm il\nim ov\n........ .....\nĠB enny\nSecond ly\nĠheart y\nĠcons on\nst ained\nĠgal actic\ncl ave\nĠplummet ed\nĠp ests\nĠsw at\nĠrefer rals\nĠLion el\nh oly\nĠunder dog\nĠSl ater\nĠProv ide\nĠAm ar\nress or\nå Į\nong a\nĠtim id\nĠp iety\nĠD ek\nĠsur ging\naz o\nĠ6 10\nĠdes ks\nĠSp okane\nĠAn field\nĠwars hips\nĠCob ra\nĠar ming\nclus ively\nĠBad ge\nag ascar\nĠPR ESS\nĠMcK enzie\nĠFer dinand\nburn ing\nAf ee\nĠtyr ann\nĠI w\nĠBo one\n100 7\nĠRe pt\nĊ Âł\nĠcar avan\nĠD ill\nĠBundes liga\nCh uck\nĠheal er\nãĥ¼ãĥ Ĩ\nĠH obby\nĠneg ate\nĠcrit iques\nsection al\nmop olitan\nĠd x\nĠouts ourcing\nĠC ipher\nt ap\nSh arp\nĠup beat\nĠhang ar\nĠcru ising\nĠNi agara\nĠ3 42\nill us\nĠS v\nĠsubt itles\nĠsqu ared\nĠbook store\nĠrevolution aries\nĠCarl ton\nab al\nUt ah\nĠdesp ise\nĠU M\ncons ider\naid o\nĠc arts\nĠT urtles\nTr aining\nĠhonor ary\nÂ ¢\nĠtri angles\n4 22\nĠreprint ed\nĠgrace ful\nĠMong olia\nĠdisrupt ions\nĠB oh\nĠ3 49\nĠdr ains\nĠcons ulate\nĠb ends\nĠm afia\nur on\nĠF ulton\nm isc\nĠren al\nĠin action\nck ing\nĠphot ons\nĠbru ised\nĠC odes\nog i\nĠn ests\nĠLove ly\nĠLib re\nĠD aryl\nĠ# ##\nS ys\n. ,\"\nĠfree zes\nest ablishment\nand owski\nĠcum bers\nĠSt arg\nĠBom bs\nĠleg ions\nĠhand writing\nĠgr un\nĠC ah\nsequ ent\nĠm oth\nĠMS M\nIns ert\nF if\nĠmot el\nĠdex ter\nĠB ild\nhearted ly\nĠpro pe\nĠText ure\nĠJ unction\nynt hesis\noc ard\nĠVer a\nĠBar th\nĠÎ¼ g\nĠl ashed\nĠ35 1\nĠZ amb\nĠSt aples\nĠCort ex\nĠCork er\nĠcontinu um\nĠWR ITE\nunt a\nrid or\nĠde ems\n0 33\nĠG OLD\np as\nĠrep ressive\nãĥĨ ãĤ£\nĠbaff led\nSc ar\nĠc rave\nĠ ______\nĠentrepreneurs hip\nĠDirector ate\nĠ' [\nĠv ines\nĠasc ended\nĠGR OUP\nĠGood bye\nĠdo gged\nãĥ´ ãĤ¡\nMan ufact\nĠunimagin able\nri ots\nier rez\nĠrel ativity\nĠCraft ing\nra ught\nud en\nc ookie\nĠassass ins\nĠdissatisf ied\nac ci\nĠcondu it\nSp read\nĠR ican\nn ice\nizz le\nĠsc ares\nĠWH Y\nph ans\n5 35\nĠprot racted\nĠKrist en\n5 36\nĠSc rib\nĠNe h\nĠtwent ies\nĠpredic ament\nĠhandc uffs\nĠfruit ful\nĠU L\nĠLud wig\nĠatt est\nĠBre aker\nĠbi ologically\nĠDeal er\nĠrenov ations\nf w\ness en\nAl ice\nĠHen ri\nĠun ilaterally\nĠS idd\nh ai\nĠSt retch\nS ales\nĠcumbers ome\nĠJ avier\nĠtrend y\nĠrot ting\nĠChall enges\nĠscra ps\nĠfac ets\nĠVer onica\nĠVer ge\nĠS ana\nAl ien\nĠR ih\nĠrad ial\nect ar\nĠ6 30\ncl i\nMar ie\nĠwild fire\nĠCat o\nh ander\nĠwait ress\nĠch ops\nĠS ECTION\nĠblunt ly\nĠCat alog\nn ian\nstud y\nĠpat rolling\nĠT enth\nnex us\nĠN ON\nop sy\nĠsc athing\ns ie\nĠdeterior ated\nV B\nNaz is\nĠdep ictions\nĠauthent icated\nĠCon ce\nk rit\nĠpromul g\nĠL ONG\nU FC\nĠVis itors\nĠRec all\nĠrehab ilit\nĠSL I\nĠglac ier\nĠB ite\nĠ50 3\nĠvom it\nĠfer mented\nĠKh alid\nĠgrad ed\nĠMag icka\nĠIch igo\npower ful\nic ators\n75 3\nĠsh rew\nĠ35 6\nĠlegal izing\nĠall otted\nĠArch demon\nith ing\nigg urat\nV OL\nLe od\nĠo ily\nĠindu cing\nĠamy gdala\nĠadm ins\nĠAcqu isition\nC AN\nĠsche matic\nĠmo an\nĠCamer oon\nĠt ink\nĠmer ry\nĠbutter flies\nĠGo ff\nĠworks pace\nĠCor ona\nĠj avascript\nĠD olphin\nĠCant or\n4 64\nto e\nAP S\nĠAg ing\nĠpadd ed\nĠZ heng\nĠHe ld\nĠest ranged\nĠ7 70\n. }\nĠDun ham\nĠsm okes\nĠcap itals\nund ai\nSh in\nĠFound ing\nĠent itle\nĠcenter piece\nD iscover\nĠthere to\nal ert\nĠN ou\nĠAnaly st\nl c\nF H\nFI ELD\nĠP OV\ngr ay\nĠar cs\nĠH OT\nĠr s\nĠoblig atory\nĠArchitect s\nĠS ven\nĠF EC\n0 200\nChrist mas\nĠAlban ia\nrat om\n58 7\nĠhard ships\nĠaut os\nĠCharg es\nĠap es\nĠ3 76\nwal let\nĠintox ication\nĠgobl in\nĠ5 70\n++++++++ ++++++++\nĠYel p\nĠMag netic\nĠBr iggs\nR ail\nĠspawn s\nĠW iggins\nĠshowc ased\nĠres orted\nub en\nĠwh ipping\nĠim itate\nĠdigest ion\nĠUS PS\nĠG est\nĠye a\nĠT ight\nind al\nic as\n` .\nC AST\n'' ;\nĠF et\nopath ic\nIn valid\nĠregrett ed\nĠbro ccoli\nĠSc ores\ne ve\nĠpost ings\nĠaccum ulating\nĠneed less\nelf th\nĠmay ors\nĠsc rib\nĠanecd otes\nĠbot ched\nĠRib bon\nĠConstant ine\ni uses\ness es\nĠdev ise\nComp ared\nĠp udding\nĠg arg\nĠev oke\n79 7\nĠdet ox\n9 09\nĠPie ces\nĠMcC artney\nĠmet ast\nĠK rypt\nP OR\nĠt ending\nĠMerch ants\nPro of\nĠV arg\nĠPort able\nãĥ¼ãĥĨ ãĤ£\nB rain\n25 00\nĠfol iage\nØ ¹\nĠment ors\nĠA ires\nĠminimal ist\nĠing ested\nĠTro jan\nĠQ ian\ninv olved\n0 27\nĠer oded\nRA FT\nĠbl urry\nM ob\nĠbuff et\nĠFn atic\nae a\nKN OWN\nĠIn it\ns afety\nen um\nACT ION\nĠCrus her\nĠD ates\nĠ ................\nc alling\nak ov\nĠvent ured\nĠ5 55\nau ga\nH art\nĠA ero\nM AC\nĠthin ly\nĠar ra\nST ATE\nild e\nĠJac qu\nĠFem ales\nĠthe orem\nĠ3 46\nĠsmart est\nĠPU BLIC\nĠK ron\nĠB its\nĠV essel\nĠTele phone\nĠdec ap\nĠadj unct\nĠS EN\nmer ga\nĠred acted\nĠpre historic\nĠexplan atory\nĠRun s\nĠUtt ar\nĠM anny\nĠAUTH OR\nĠUnle ashed\nĠBow ling\nbe ans\n79 3\nĠunivers es\nĠsens it\nĠK ung\nre peat\nctr l\nĠp aced\nĠfull er\nCl ock\nĠrec omb\nĠF aul\nĠB unker\nĠpool ed\nĠan a\nĠM outh\nLL OW\nhum ane\nĠbull do\nĠMicha els\nf am\nĠwreck ed\nĠport rays\nĠWh ale\nĠH es\nĠguess es\nĠBrow se\nĠL APD\nĠconsequ ential\nĠInn ocent\nĠD RAG\nĠtrans gress\nĠO aks\nĠtri via\nĠRes on\nĠA DS\n-- +\nĠT oll\nĠgrasp ing\nĠTHE M\nĠT ags\nĠCon clusion\nĠpract icable\nĠho op\nĠunintention ally\nĠign ite\nĠM ov\nur ized\nle hem\nTer min\nĠcolour ful\nĠLin ear\nĠEll ie\nG y\nĠman power\nĠj s\nĠem oji\nĠSHAR ES\n_ .\n0000 7\nĠsophistic ation\nĠunders core\nĠpract ise\nĠbl ob\nop ens\nUk raine\nKe eping\nY C\nJ R\nult imate\nCl aim\nĠautom obiles\n99 3\nste el\nĠpart ing\nĠL ank\n... ?\nĠ38 5\nĠremem brance\nĠe ased\nĠcov ari\nĠS ind\nEffect ive\nĠdisse mination\nĠMo ose\nĠCl apper\nbr ates\nApp ly\nĠinv is\nĠwors ened\nâĢĶ -\nĠlegisl ator\nĠL ol\nĠRow e\nĠdealers hip\num ar\nid ences\nĠinvestig ates\nĠc ascade\nĠbid der\nĠB EN\nIron ically\nĠpres iding\nĠd ing\nĠcontrad icted\nĠshut s\nĠF IX\nĠ3 66\nDist rict\nĠsin ful\nĠChar isma\no ops\nĠtot ality\nĠrest itution\nĠOpt imus\nĠD ah\nĠcl ueless\nurn ed\nĠnut rit\nĠland owners\nĠfl ushed\nĠbroad en\nm ie\nĠprint ln\nĠn ig\nĠCorp us\nJ en\nĠprot o\nĠWik imedia\nĠPal o\nC OR\nĠstory lines\nĠevangel icals\nĠDar rell\nĠrot or\nĠH W\nsk illed\nery l\nĠbe gg\nĠBl umenthal\nĠwe aving\nĠdown wards\nĠJack et\nĠANG EL\nTe chnology\nĠes oteric\nalde hyde\nĠfur iously\nĠforeign er\nWe ak\nCH O\nĠH ound\nExper ience\nĠPlay station\nĠM IA\nĠU ng\ncl oth\nag all\nĠcal ming\niz ens\nSt ruct\nĠW itches\nĠCeleb ration\nĠ........ ......\npt roller\nĠTC U\nĠb unny\nãĥ į\nut orial\nĠup scale\nĠSt a\nĠCol ossus\nĠchlor ide\nĠZ ac\nĠRe asons\nĠBrook ings\nĠWH ITE\n][ /\nĠL ose\n9 05\nĠunders ide\nern els\nĠv ape\ndo zen\nupp et\nĠST OP\nmat ical\nĠStat ements\nhed dar\nP AC\nCustom er\nĠmem os\nĠP J\nend ars\nĠLim its\nl augh\nĠstabil ized\nĠALE C\nY A\nUp grade\nal am\nĠtechn o\nĠan ew\nfore seen\nĠcolleg iate\nĠPy ro\nĠD ism\nĠfront line\nĠammon ia\nI U\nQu ite\nJohn ny\nass in\nG OP\nĠSt yles\nĠSovere ign\nacter ial\n5 49\nĠR IP\nĠL ists\nĠ3 64\nĠRece p\ns ocket\nĠByr d\nĠCand le\nAn cient\nĠappell ant\nen forcement\nace a\nans ki\nĠold s\n88 6\nĠsl urs\nĠem pires\nĠbuck le\nĠalien ation\nĠAber deen\nĠunic orn\nĠoverr iding\nĠL X\npp a\nĠdesp ised\nĠB ugs\nĠB ST\nS outhern\n5 33\nĠhall mark\nĠPost er\nĠstem med\nĠprincip als\nĠT ECH\nĠSand wich\nIt aly\nĠche esy\nĠSet TextColor\nĠProt ective\nĠC ohn\nJ O\napt op\nRe ason\nLead er\nĠUnder stand\nĠFr idays\nĠContin uous\nĠcl ipping\nĠR ye\nĠber th\ntim er\nann is\nre act\nĠbuff alo\nĠPar as\nĠ6 55\nĠpres ided\nĠSun rise\nĠve ts\nĠcl oves\nĠMcC ull\nStre ngth\nG AN\nĠill iter\nĠPric ing\nl Ã©\nĠresist or\nĠbr un\nĠSuff olk\nÑ ĭ\nĠL iver\nRe leased\nĠwhat s\n8 60\nĠMe asures\nĠden ouncing\nĠRy zen\nĠsou ven\nĠcareg ivers\nch ini\nĠScar lett\nĠt rough\nCong ratulations\nĠtax is\nĠTrad ition\nj it\nĠtable top\nĠhither to\nĠdis information\noff ensive\nh ra\nĠDISTR ICT\nĠcompl icate\nchen ko\nĠRecon struction\nĠpalp able\nĠa usp\nĠ4 28\nĠshowc ases\nĠPublic ation\nknow ledge\ninn on\n4 19\nĠretri eval\nand ers\nĠref ute\nĠinqu ired\ng ur\nĠneg ativity\nĠcons erve\nĠafter life\nĠpres upp\nĠGill espie\nĠm t\nĠD N\nT ap\nĠper pend\nĠS my\ndoes n\nĠsp illing\nĠhyp ers\nK ate\nÂ® ,\nke pt\nĠP owered\nĠj a\nĠK lux\nard e\nab an\nĠ4 44\nĠflatt ened\nĠImprove ments\nurg a\nĠK und\nĠins cribed\nĠfac ult\nĠunpre pared\nĠCons umers\nĠsatisf ies\nĠpul monary\nĠinf iltration\nĠex ternally\nĠcongrat ulations\nag han\nĠair liner\nĠfl ung\nĠfly ers\nG D\nĠsnipp ets\nĠrec ursive\nĠmaster ing\nL ex\nĠovert ly\nv g\nĠluck ily\nĠenc ro\nĠLanc et\nĠAbyss al\nfunction al\nĠs ow\nĠsqu id\nĠnar ration\nĠn aughty\nĠHon our\nĠSpart ans\nĠsh atter\nĠTac oma\nĠCal ories\nĠR aces\nSub mit\nĠpurpose fully\nw av\nĠY ok\nF est\nĠG err\nMet ro\nĠit iner\nf amous\nĠ\" {\nin line\nwas her\nIss ue\nĠCL IENT\noz o\nVers ions\n7 25\nĠGl ock\nĠshield ed\nĠPC R\nENC Y\nĠWe ld\nĠSim pl\nĠredirect ed\nĠK ham\nĠ( >\nĠlab ou\nĠdi apers\nss l\nĠcell ar\norgan isms\nore sc\nĠBer ks\ndid n\nSh ipping\nC hest\nĠund one\nĠmillion aire\nĠc ords\nĠYoung er\nappropri ately\nĠsequ els\nu ve\nant icipated\nĠle wd\nĠSh irt\nĠDmit ry\nV eter\nĠsl aying\nĠY ar\nĠcompl ication\nI owa\nĠEric a\nĠBL M\ng irlfriend\nb odied\n6 26\n19 63\nĠintermedi ary\nĠcons olation\nM ask\nĠSi em\now an\nBeg inning\nĠfix me\nĠculmin ated\nĠcon duc\nĠVolunte er\nĠpos itional\nĠgre ets\nĠDefin itions\nĠthink er\nĠingen uity\nĠfresh men\nĠMom ents\nĠ35 7\nate urs\nĠFed Ex\ns g\n69 4\nĠdwind ling\nĠBO X\nsel age\nĠt mp\nĠst en\nĠS ut\nĠneighbourhood s\nĠclass mate\nf ledged\nĠleft ists\nĠclim ates\nATH ER\nĠScy the\nul iffe\nĠs ag\nĠho pped\nĠF t\nĠE ck\nĠC K\nĠDo omsday\nk ids\nĠgas ped\nĠmon iker\nĠL od\nĠC FL\nt ions\nr ums\nfol ios\nĠm d\nĠunc anny\nĠtrans ports\nĠLab rador\nĠrail ways\nĠappl iance\nĠCTR L\næ Ģ\nPop ulation\nĠConfeder acy\nĠunb earable\nĠdors al\nĠIn form\nop ted\nĠK ILL\nMar x\nĠhypoc ritical\nq us\nĠN umerous\nĠGeorg ian\nĠAmbro se\nĠL och\nĠgu bernatorial\nĠX eon\nĠSupp orts\nens er\nee ly\nĠAven ger\n19 65\nAr my\nĠju xtap\nĠcho pping\nĠSpl ash\nĠS ustainable\nĠFin ch\nĠ18 61\nict ive\nat meal\nĠG ohan\nĠlights aber\nĠG PA\nug u\nĠRE PL\nvari able\nĠher pes\nĠdesert s\nac iously\nĠsitu ational\nweek ly\nob l\nĠtext ile\nĠCorn wall\nĠcontrace ptives\nĠA ke\n] -\nä¹ ĭ\n: ,\nĠW em\nĠB ihar\nĠ' .\nĠbe re\nĠanal ogue\nĠCook ies\nĠtake off\nWhe el\nĠmaj estic\nĠcomm uting\n0 23\nĠCor pse\nass ment\nmin i\nĠgor illa\nĠAl as\nere e\nĠacquaint ances\nĠAd vantage\nĠspirit ually\nĠey ed\npm wiki\nĠE nder\nĠtrans lucent\nĠnight time\nĠIM AGES\n5 45\nĠK amp\nĠFre ak\nĠ ig\nPort land\n4 32\nĠM ata\nĠmar ines\nĠh ors\nater asu\nĠAtt ribution\nĠ-------- -\nĠk ins\nĠBEL OW\n++ +\nĠre eling\nol ed\nĠcl utter\nĠRel ative\nĠ4 27\nB US\nĠa vert\nĠChe ong\nĠA ble\nĠPry or\nDevelop er\nĠen cyclopedia\nĠUSA F\nĠG arry\nSp ain\nBl ocks\nĠexp osition\nĠGamer Gate\nW OR\nĠstockp ile\nĠclot hed\nĠT one\nĠR ue\nt umblr\nĠtreacher ous\nĠf rying\nÑ Į\nĠS ph\nĠrest raints\nĠemb odies\nĠG es\nS afety\nĠnegoti ators\nmin ing\nĠAppalach ian\nL OS\nĠJenn a\nĠpass ers\nç ĭ\nsn ap\nĠshort en\ncreat or\nĠinn umerable\nuther land\n67 4\nĠW OM\nĠAs cend\nĠArm ory\nĠTrans action\nK ick\nĠsuit case\nday Name\nĠwaste ful\nmar riage\nĠMcC abe\nite ch\nĠO ss\nCl osure\nĠTreasure r\nĠindec ent\nĠD ull\nĠresid ences\n19 59\nĠS ettlement\nHam ilton\nĠself ies\nĠRank ing\nĠBark ley\nĠB ore\nĠW CS\nĠMar itime\nĠH uh\nĠForest ry\nĠcultiv ating\nĠBall ard\nĠg arrison\nĠSD L\n9 30\nĠnas cent\nĠirresist ible\nĠaw fully\n\\/ \\/\nĠequ ate\nĠanthrop ology\nĠSylv ia\nĠintest ine\nĠinnoc uous\ncess ive\nag ra\nĠMet roid\nG rant\n8 55\nģ ĸ\nĠ\" _\nãĥĥ ãĥī\nĠappra isal\nĠFred dy\n04 6\nĠ40 6\nĠ18 30\nĠd ocking\nSt atic\nĠp ont\nĠVolt age\nĠSt ead\nĠMort gage\nĠJon ah\nY L\nCLASS IFIED\nĠas bestos\nnik ov\nĠcoll agen\nĠOrb ital\nP ocket\n7 99\nĠhy brids\ninc hes\nĠinv oice\nund y\nĠinequ alities\nT rend\nw ashed\nB ALL\nĠluc id\nĠComment ary\nĠw itty\nBr andon\nĠbru ising\nĠ6 20\nes cent\nbox ing\nP OL\nĠ3 78\nR ect\nĠlic ences\nĠMcG ee\np ressed\nD anny\nĠj ammed\nord inate\nĠle th\nĠdistingu ishes\nĠYam aha\nIL S\nĠH ume\nĠC ategories\nRober ts\nCh art\nĠbeet le\nĠGra veyard\nĠ($ )\no ÄŁ\nĠtw ilight\nare lla\ná ½\nĠbooth s\nĠH HS\nĠFeld man\nĠexcav ation\nĠphilosoph ies\nat ography\nĠGar age\nte chnology\nĠunfor gettable\nĠver ifying\nĠsubord inates\nE ls\nĠne b\nG aming\nEN A\nĠAchieve ment\nit ters\nĠG abe\nĠd umps\nfor cer\nĠpo ignant\nĠM BA\nĠHe idi\nime i\nĠm ages\nĠliber ate\nĠcircum cised\nĠMer maid\nĠMat th\nt ogether\nĠW ichita\nĠstore front\nĠAd in\nV II\nFour th\nĠexplore rs\nW ER\nNot able\nBro ok\nm ens\nF aith\n-------- -\nĠJ ou\n¬ ¼\nĠpine apple\nĠam alg\nel n\nark able\nĠãĤµ ãĥ¼ãĥĨãĤ£\nĠãĤµãĥ¼ãĥĨãĤ£ ãĥ¯ãĥ³\nĠov arian\nĠE choes\nĠhairc ut\nĠp av\nĠch illed\nanas ia\nĠsty led\nĠd ab\nni per\nĠminister ial\nĠD UP\nT an\nĠsul ph\nĠD eter\nĠBo hem\nod an\nĠeduc ator\nâ ĵĺ\nsp ir\nCh icken\nĠE leanor\nĠqu i\nĠheav iest\nĠgrasp ed\nU RA\nĠcro oked\nJess ica\npro blem\nĠpred etermined\nĠman iac\nĠbreath s\nĠLauder dale\nĠh obbies\ny z\nCr ime\nĠcharism a\nd L\nĠle aping\nĠk ittens\nAng elo\nĠJ ACK\nĠSu zanne\nĠhal ting\nENT ION\nĠswall owing\nĠEarthqu ake\nĠeight eenth\nĠN IC\nĠIN F\nĠCons cious\nĠparticular s\ncirc le\n7 40\nĠbene volent\nĠ7 47\nĠ4 90\nĠr undown\nĠVal erie\nĠB UR\nĠcivil isation\nĠS chn\nW B\not ide\nintern ational\nĠj ohn\nĠ19 02\nĠpe anuts\nĠflav ored\nk us\nĠro ared\nĠcut off\né £\nĠorn ament\nĠarchitect ures\nĠ3 69\nol or\nĠWild e\nĠC RC\nĠAdjust ed\nĠprov oking\nland ish\nĠrational ity\nĠjust ifies\nĠdisp el\nĠa meric\nĠPol es\nØ ©\nĠen vis\nĠD oodle\nä½ ¿\nigs aw\nauld ron\nTechn ical\nT een\nup hem\nĠX iang\nĠdetract ors\nĠZ i\nĠJournal ists\nĠconduc ive\nĠVolunte ers\nĠs d\nKnow ing\nĠtrans missions\nĠPL AN\nĠL IB\nĠall uded\nĠob e\nĠd ope\nĠGold stein\nĠwavelength s\nĠDest ination\nnd a\nug i\nĠattent ive\nĠLe an\nral tar\nĠman g\nmb uds\nak ings\nb ender\nĠacc ol\nĠcraw led\nN OW\nMin nesota\nĠflour ished\nĠZ up\nĠSuper visor\nĠOliv ier\nEx cellent\nĠwid en\nD one\nĠw ig\nĠmiscon ceptions\nCor p\nW an\nĠvener able\nĠNot ably\nĠKling on\nan imate\nBo ost\nĠS AY\nmiss ing\nibli ography\nmel on\nĠpay day\nØ ³\nbo le\nĠve iled\nĠAl phabet\nIt alian\nĠever lasting\nĠR IS\nĠC ree\nrom pt\nĠh ating\nĠgrin ning\nĠge ographically\nOS H\nĠwe eping\nĠÂłĠÂłĠÂłĠÂł ĠÂłĠÂłĠÂłĠÂł\nĠimpe cc\nLet ter\nĠblo ated\nPL A\nĠFe in\nĠper sever\nTh under\nĠa ur\nĠR L\nĠpit falls\nâĸ º\nĠpredomin ant\nĠ5 25\n7 18\nAP E\n7 14\nĠfarm land\nĠQ iao\nĠv iolet\nĠBah amas\nĠinflic ting\nĠE fficiency\nĠhome brew\nĠundert ook\nĠcur ly\nĠHard ing\nman ia\n59 6\nĠtem pered\nĠhar rowing\nĠP ledge\nĠFranken stein\nè ª\nM otion\nĠpredict ably\nĠExpl osion\noc using\ner d\ncol o\nFF ER\nĠback field\nĠV IDE\nue bl\nN arr\nĠArg ument\nĠgen omic\nĠbout ique\nĠbatt ed\nĠB inary\nĠg amb\nĠRh ythm\n67 3\nĠa float\nĠOlymp ia\nY ING\nĠend if\nis in\nĠwin ters\nĠsc attering\nI v\nD istance\nĠtr u\nĠCom fort\nĠne xus\nĠair flow\nĠByz antine\np ayers\ncon i\nĠB etsy\nD eal\nĠN ug\nĠContin ent\nred ibly\nĠoptim izing\nal beit\nĠec static\nĠPro to\nç ·\niv ot\nâĸ Ħ\nem p\nrou nder\nĠcl out\nĠI ST\n66 3\nĠDoll ars\nĠD AC\nĠsubsc ribed\nĠrehears al\nĠam ps\nĠSh ang\nes m\nĠspr inkle\nĠassail ant\nĠO o\nĠCoin base\nT act\nĠret ina\nĠn uns\nR ON\natt o\nĠj ug\nĠSV G\nĠb ikini\nĠFI LE\nĠFound ers\nep ort\nĠK P\nĠrest ores\nĠTh ick\nĠash ore\nĠappro vals\nR ender\nM AG\nG raham\nĠCort ana\nãĥ³ ãĤ¸\nss h\nor ians\nars ity\nĠInsp ired\nu pper\nĠsign alling\nĠreb uke\nĠfl ares\nĠdownt ime\nStud ies\nĠstagn ation\nĠSequ ence\nĠgr unt\nĠass ures\nĠPL A\n59 2\nĠintra ven\nd epend\nSus an\nĠManz iel\nMan ia\nCont ract\nĠsl ams\nĠcult ured\nĠcred itor\nL IST\nĠH UM\nĠChatt anooga\nserv ed\nĠclo aked\nĠF TP\np owder\nĠSt ella\nuct ive\nĠcheap ly\nĠMU CH\nĠGalile o\nĠsu ites\nspe ech\nĠdeliber ations\nĠCh ips\n« ĺ\nBal ance\nĠWyn ne\nĠAk ron\nAss et\nĠhon oured\nĠed ged\nLike wise\nanim ous\nĠW age\nĠEz ek\nad vertisement\nĠRT X\nĠM AD\nĠmigr ating\nĠS QU\nĠ4 75\nEd ited\nĠshorth and\nĠBas ics\nĠcro tch\nĠEV EN\nĠv m\neffic iency\nĠcal ves\nĠF rie\nĠBrill iant\nĠstri kers\nĠrepent ance\nĠarter ies\nr l\nB ed\nh ap\nĠcrypt ography\nĠSab res\nĠ4 14\nvi ks\nih ara\naps es\nT alking\nĠintertw ined\nĠdoc ks\nĠalle le\nĠArt ifact\nĠH IM\nt orn\nç ķ\nĠop acity\nĠE ly\nos uke\nĠn ipple\nĠhand written\nĠV K\nĠChamber lain\nĠLa os\nig raph\ng row\nĠtr illions\nĠdescend ant\nĠSail or\nas uring\nĠce ilings\nĠWare house\nf lying\nĠGl ow\nĠn ont\nĠmiscar riage\nĠrig s\nĠmin istries\nĠelabor ated\nĠdel usional\nĠHum ane\nĠ3 79\nn ets\nĠblack out\nadd ers\nĠn p\nĠT ire\nro sc\nĠsub div\nĠlink age\nĠchron ological\nĠHER O\nĠres ettlement\nĠVin yl\nĠpast oral\nĠMob il\nĠBar bar\nCo oldown\nĠF ritz\nc riminal\nre pe\nĠbell ig\nĠBre ed\nĠ4 18\nĠsem blance\nij k\nĠcur tail\nĠclin ch\ncont ained\nĠProm pt\nast on\nĠw i\nĠpursu its\n5 15\nĠGl oss\nĠfl ips\nĠcoup ons\nĠcl oning\nĠLike ly\nRem oved\nĠQu artz\nr ices\nĠSpe ars\nĠp ious\nĠdep reciation\nĠD are\noun ces\nam az\nO nt\nĠp innacle\nd ocker\n0 26\nĠW yr\nĠPro per\nË Ī\nn il\nBy tes\nĠseek er\nt rial\nĠunf olds\nĠMar se\nĠextravag ant\nĠSurviv ors\nRED ACTED\nĠSpeed way\nĠCra igslist\nsub mit\nĠGener ations\nĠup holding\nĠblood stream\nĠMiss ions\nĠL awn\nĠlim bo\nene i\nH uh\nĠWild cats\npre p\nĠMark us\nĠFor bidden\nrit ic\nIN O\nĠexhib iting\nrequ ent\nch uk\nĠhabit ual\nĠComp atibility\nDr ag\nRIP T\nuj ah\nGR OUND\nĠdelinqu ent\nĠburn er\nĠcontempor aries\nĠgimm ick\nload s\nĠno zzle\np odcast\nĠW ak\nĠStat en\nĠK uh\nãģ ĵ\ninter rupted\nĠinv incible\nĠBurn ett\ncig arette\nĠPeb ble\nĠTem porary\nĠMar ino\n58 2\nĠwast eland\nident ly\nT x\nĠr ite\nĠPan asonic\nĠM iddles\nĠHort on\nae us\nĠc uring\nĠm ats\nĠadj ourn\nĠfears ome\npe z\nbo ats\nĠpro pell\nĠconflic ted\nĠAng er\nĠinsurg ent\nK arl\nĠco ales\nĠsouth western\nĠdis su\nĠO vert\n******** ****\nĠbox ed\nĠBr une\naa a\nĠgard ening\nĠEng el\ntr acks\nĠpur ified\nĠplace holder\nĠL ikes\nĠd an\nG ab\nĠe ct\nĠF aw\nĠEl iot\nĠ' ,\notrop ic\nĠRu in\nhed on\nĠca ul\nĠa ft\nĠCad illac\ngh a\nass ian\nud eb\nĠT ick\nĠadjust s\nAR GET\n5 37\nisc he\nant y\nĠFried rich\nĠBl izz\nĠA OL\nCamp aign\nĠmamm al\nĠVe il\nĠK ev\nĠMaur it\nĠDam ien\nN ation\nE astern\nĠ{ :\nĠ= ================================\nĠstereotyp ical\nĠatt ic\nĠCy borg\nrequ ire\nĠaward ing\nĠPap ua\nbt n\nb ent\nB oo\nĠ( =\nĠX ander\nĠSomers et\nĠcatch y\nĠcert ify\nSTR UCT\nĠit al\nĠt ides\nĠBr ands\nG ray\ncomp etitive\nĠcur ator\nĠD G\nomin ium\nĠGM Os\nci ating\nĠCarm en\now ard\nBalt imore\nĠr gb\nC u\nĠwip es\nspe ll\nIT NESS\nĠsummar izes\nĠRe vis\nĠwhistlebl owers\nĠBre ach\nĠcro chet\nk os\news ki\nĠrep et\nĠcrim son\nĠKar achi\nread able\ndim ension\nĠI gor\nild ed\nĠZ ed\nĠKe ane\nĠCos metic\nDE P\nĠretreat ing\nĠU A\nens ical\nĠd usk\nĠDick ens\nĠaren as\nĠPass age\nlevel s\nĠcur v\nP ope\nĠch ores\nĠEl ise\nĠComp ass\nb ub\nĠmamm alian\nĠSans krit\nĠAN C\nĠCr ack\nQ ual\nL aun\namp unk\nĠlearn ers\nĠglam orous\nĠfur the\nerm ott\nc and\nGener ic\nĠnarr ated\nĠdisorder ly\nĠTrans actions\nĠDet ention\nĠR oku\nÄ į\nĠunder statement\nĠS aur\nĠRodrig o\nĠAS AP\nS in\nĠre joice\nMethod s\nĠelectro de\nĠworsh ipped\nĠid i\nĠPhys icians\nĠpop up\nĠde ft\nĠRem oval\nĠBu enos\nver bs\nĠfun k\nush a\nrict ion\nore a\nĠBang alore\nĠKen obi\nzz i\nĠnorm ative\nĠgobl ins\nĠcaf es\nĠUN CLASSIFIED\nĠF ired\nS IGN\nĠs clerosis\nĠV oter\nĠSon ny\nĠExt end\nĠEV s\nAr senal\nĠp si\nĠwid est\nĠT us\nĠlo oms\nĠjust ifying\nĠGr anger\nè ¯\nRef er\n58 3\nĠflour ishing\nab re\nĠr ave\nĠCont ra\nĠ18 98\nAdd s\nĠf ul\nĠCo oke\nsome one\n= #\n67 1\nĠy ak\nĠar te\nĠMis cellaneous\nĠDet ection\nĠCl ancy\nâ ģ\nass ies\nĠval iant\nĠFemin ist\ncor ruption\nV el\nP ear\nĠsucc inct\nĠquick est\nk w\nĠsp itting\nĠL ibraries\nåħ ī\nant z\nD ad\nĠSpec ifications\nrup ulous\nand r\nRES ULTS\nĠsnow ball\nĠpred is\nĠB axter\nĠNurs ing\nĠCh aff\ns we\nĠout age\nĠnest ing\nĠnotor iety\ntr igger\non ite\nj on\nĠf ou\nook ed\nĠCelebr ity\nre ality\nĠfat ig\nĠhug ging\nĠbother s\nĠPan zer\nĠCh andra\nfig ured\nĠvol ts\nĠCloud s\nĠfee ble\nĠCur ve\nĠAs us\n78 6\nabs or\nĠV ICE\nĠH ess\nĠmanufact ures\nĠgri zz\nĠPower ful\nac id\nĠsub sections\nĠKrug man\nĠAl ps\nis u\nĠsequ est\nĠUlt ron\nĠT inker\nĠGo ose\nĠmism atch\nAtt orney\nĠmorph ology\nĠSix ers\nut tered\nĠE LECT\ngr an\nRus sell\nĠG SL\nĠfort night\nĠ. )\nĠapost le\npr one\nel ist\nUnt itled\nĠIm plementation\nist ors\nĠtank er\nĠpl ush\nĠattend ants\nĠT ik\nĠGreen wich\nĠY on\nĠSP L\ncell s\nunt led\nS olution\nĠQu Ã©\nĠvac ated\nĠupt ick\nĠMer idian\næ ĥ\nĠDr ill\n9 25\n58 4\nĠrenov ated\nĠKub rick\nzy k\nĠl ousy\npp el\nohyd rate\nĠI zzy\nlesi astical\nCC C\nĠAj ax\nĠad apters\nĠPetra eus\nĠaffirm ation\nĠST OR\nle ms\nad oes\nĠConstantin ople\nĠp onies\nĠl ighthouse\nĠadherent s\nĠBre es\nomorph ic\nFight ing\nĠpl aster\nĠP VC\nĠOb st\nĠdear ly\nĠTo oth\nicks on\nĠsh aming\nP lex\nA gg\nĠâĢ¦ \"\nĠsub reddits\nĠpige on\nĠResident ial\nĠPass ing\nĠl um\nĠP ension\nĠpessim istic\nĠ4 32\nz inski\nc ade\n0 75\nĠapolog ised\niy ah\nPut ting\nĠgloom y\nĠLy me\n=-=-=-=- =-=-=-=-\nĠT ome\nĠPsych iatric\nĠH IT\nc ms\nap olog\nĠbreak er\nĠdeep en\nĠtheor ist\nĠHigh lands\nĠb aker\nĠst aples\nĠinterf ered\nĠAb ortion\njo ined\nch u\nĠform ulate\nĠvacc inations\nĠban ter\nphe us\nĠoutfield er\nĠM eter\nĠ# ####\nĠ18 95\nĠnarrow ing\nĠST ORY\nf p\nĠC ST\nign ore\nĠproclaim ing\nĠR U\nĠB ALL\nyn a\n65 3\nĠpos it\nP RE\n59 4\nĠRegist rar\nĠPil grim\nic io\nĠpre tt\nĠlif eless\nĠ__ _\nNe igh\nĠCh urches\norn o\nĠor cs\nĠkind red\nĠAud it\nĠmillenn ial\nĠPers ia\ng ravity\nĠDis ability\nĠD ARK\nW s\nod on\nĠgrand daughter\nĠBro oke\nĠA DA\nER A\nĠpick ups\nĠWil kinson\nĠSh ards\nĠN K\nĠexp el\nĠKis lyak\nĠj argon\nĠpolar ized\nian e\nPub lisher\nĠreb utt\nĠapprehens ion\nĠK essler\nĠpr ism\nF UL\n19 64\nĠL oll\nä ¿\nle thal\nÅ Ł\nĠg hetto\nĠb oulder\nĠSlow ly\nĠOsc ars\nĠInst ruction\nĠUl tr\nĠM oe\nN ich\nĠP ATH\n( *\nĠRE LEASE\nun ing\nrou se\nen eg\nĠre imb\nĠDet ected\nDo S\nĠster ling\nĠaggreg ation\nĠLone ly\nĠAtt end\nhig her\nĠairst rike\nks on\nSE LECT\nĠdef lation\nĠHer rera\nC ole\nrit ch\nĠadvis able\nF ax\nĠwork around\nĠp id\nmort em\ners en\nĠtyp o\nĠal um\n78 2\nĠJam al\nscript s\nĠcapt ives\nĠPres ence\nĠLie berman\nangel o\nĠalcohol ism\nass i\nĠrec ite\nĠgap ing\nĠbask ets\nĠG ou\nBrow ser\nne au\nĠcorrect ive\nund a\nsc oring\nĠX D\nĠfil ament\nĠdeep ening\nĠStain less\nInt eger\nĠbu ggy\nĠten ancy\nĠMub arak\nĠt uple\nĠD roid\nĠS itting\nĠforfe it\nĠRasm ussen\nixt ies\nes i\nĠKim mel\nĠmetic ulously\nĠap opt\nĠS eller\n08 8\nec ake\nhem atically\nT N\nĠmind less\nĠdig s\nĠAcc ord\nons ense\nem ing\nbr ace\nĠe Book\nĠDist ribut\nĠInvest ments\nw t\n] ),\nbeh avior\n56 3\nĠbl inding\nĠPro testers\ntop ia\nĠreb orn\nĠKel vin\nĠDo ver\nĠD airy\nĠOut s\nĠ[ /\nÏ Ģ\nb p\nĠVan ity\nĠRec ap\nĠHOU SE\nĠF ACE\nĠ4 22\n69 2\nĠAnt ioch\ncook ed\nĠcoll ide\nĠa pr\nĠsle eper\nĠJar vis\nĠalternative ly\nĠLe aves\nĠM aw\nĠantiqu ity\nĠAdin ida\nĠab user\nPokÃ© mon\nĠass orted\nĠRev ision\nĠP iano\nĠG ideon\nO cean\nĠsal on\nĠbust ling\nogn itive\nĠRah man\nĠwa iter\nĠpres ets\nĠO sh\nĠG HC\noper ator\nĠrept iles\nĠ4 13\nĠG arr\nĠCh ak\nĠhas hes\nĠfail ings\nĠfolk lore\nĠab l\nĠC ena\nĠMac Arthur\nĠCOUR T\nĠperipher y\napp ers\nĠreck oned\nĠInf lu\nĠC ET\nĠ3 72\nĠDefin itive\nass ault\n4 21\nĠreservoir s\nĠd ives\nĠCo il\nDA Q\nĠvivid ly\nĠR J\nĠBel lev\nĠec lectic\nĠShow down\nĠK M\nip ed\nreet ings\nĠAs uka\nL iberal\nĠÏ Ħ\nĠbystand ers\nĠGood win\nuk ong\nS it\nĠT rem\nĠcrim inally\nĠCirc us\nch rome\n88 7\nĠnan op\nĠOb i\nĠL OW\no gh\nĠAuth ors\nob yl\nUr ban\nĠt i\nĠWe ir\nt rap\nag y\nĠparent heses\nĠout numbered\nĠcounter productive\nĠTob ias\nub is\nP arser\nST AR\nĠsyn aptic\nĠG ears\nĠh iber\nĠdebunk ed\nĠex alted\naw atts\nH OU\nCh urch\nĠPix ie\nĠU ri\nĠForm ation\nĠPred iction\nC EO\nĠthro tt\nĠBrit ann\nĠMad agascar\në ĭ\nĠbill boards\nĠRPG s\nĠBe es\ncomplete ly\nF IL\nĠdoes nt\nĠGreen berg\nre ys\nĠsl ing\nĠempt ied\nĠPix ar\nĠDh arma\nl uck\ningu ished\nĠend ot\nĠbab ys\n05 9\nche st\nr ats\nĠr idden\nĠbeet les\nĠillum inating\nĠfict itious\nĠProv incial\nĠ7 68\nĠshe pherd\nĠR ender\nĠ18 96\nC rew\nĠmold ed\nĠXia omi\nĠSp iral\nĠdel im\nĠorgan ising\nĠho ops\nĠBe i\nz hen\nĠfuck in\nĠdec ad\nĠun biased\nam my\nsw ing\nĠsmugg led\nĠk ios\nĠP ERSON\nĠInquis itor\nĠsnow y\nĠscrap ing\nĠBurg ess\nP tr\nag ame\nR W\nĠdro id\nĠL ys\nĠCass andra\nJac ob\nĠ35 4\nĠpast ure\nĠfr anc\nĠScot ch\nĠEnd s\nĠI GF\ndef inition\nĠhyster ical\nĠBrown e\n77 1\nĠmobil ization\næ ķ\niqu eness\nTh or\nĠspear headed\nĠembro iled\nĠconject ure\njud icial\nCh oice\nĠpaper back\nP ir\nĠrec overs\nĠSur ge\nĠSh ogun\nĠPed iatrics\nãģ ł\nĠsweep s\nĠLabor atories\nĠP acks\nal us\nadd in\nĠhead lights\ng ra\nEv idence\nCOL OR\nAd min\nĬ ±\nĠconco ct\ns ufficient\nĠun marked\nĠrich ness\nĠdiss ertation\nĠseason ing\nĠg ib\nĠM ages\nun ctions\nĠN id\nche at\nĠTM Z\nc itizens\nĠCatholic ism\nn b\nĠdisemb ark\nĠPROG RAM\na ques\nTy ler\nOr g\nĠSl ay\nĠN ero\nĠTown send\nIN TON\nte le\nĠmes mer\n9 01\nĠfire ball\nev idence\naff iliated\nĠFrench man\nĠAugust a\n0 21\nĠs led\nĠre used\nĠImmun ity\nĠwrest le\nassemb led\nMar ia\nĠgun shots\nĠBarb ie\nĠcannabin oids\nĠTo ast\nĠK inder\nIR D\nĠre juven\nĠg ore\nĠrupt ure\nĠbre aching\nĠCart oon\nĠ4 55\nĠPale o\n6 14\nĠspe ars\nĠAm es\nab us\nMad ison\nGR OUP\nĠab orted\ny ah\nĠfel on\nĠcaus ation\nĠprep aid\nĠp itted\nop lan\nĠShel ley\nĠRus so\nĠP agan\nĠwill fully\nĠCan aver\nund rum\nĠSal ary\nĠAr paio\nread er\nĠR ational\nĠOver se\nĠCa uses\nĠ* .\nĠw ob\nKe ith\nĠCons ent\nman ac\n77 3\n6 23\nĠfate ful\net imes\nĠspir ited\nĠD ys\nĠhe gemony\nĠboy cot\nĠEn rique\nem outh\nĠtim elines\nĠSah ara\nĠRel ax\nĠQuin cy\nĠLess ons\nĠE QU\nSE A\nN K\nĠCost co\nIncre ase\nĠmotiv ating\nĠCh ong\nam aru\nĠDiv ide\nĠped igree\nĠTasman ia\nĠPrel ude\nL as\n9 40\n57 4\nĠch au\nĠSp iegel\nun ic\n-- >\nĠPhil ips\nĠKaf ka\nĠuphe aval\nĠsent imental\nĠsa x\nĠAk ira\nser ial\nMat rix\nĠelect ing\nĠcomment er\nĠNeb ula\nple ts\nĠNad u\nĠAd ren\nĠen shr\nĠR AND\nfin ancial\nĠCly de\nuther ford\nĠsign age\nĠde line\nĠphosph ate\nrovers ial\nf ascist\nĠV all\nĠBeth lehem\nĠfor s\nĠeng lish\nS olid\nN ature\nĠv a\nĠGu ests\nĠtant al\nĠauto immune\n;;;;;;;; ;;;;\nĠTot ally\nĠO v\nĠdef ences\nĠCoc onut\nĠtranqu il\nĠpl oy\nĠflav ours\nĠFl ask\nãĤ¨ ãĥ«\nĠWest on\nĠVol vo\n8 70\nĠmicro phones\nver bal\nR PG\nĠi ii\n; }\n0 28\nĠhead lined\nĠprim ed\nĠho ard\nĠSh ad\nĠEN TER\nĠtri angular\nĠcap it\nl ik\nĠAn cients\nĠl ash\nĠconv ol\nĠcolon el\nen emy\nG ra\nĠpub s\nut ters\nĠassign s\nĠPen et\nĠMon strous\nĠBow en\nil ver\nH aunted\nĠD ing\nstart ed\npl in\nĠcontamin ants\nĠDO E\nff en\nĠTechn ician\nR y\nĠrob bers\nĠhot line\nĠGuard iola\nĠKau fman\nrow er\nĠDres den\nĠAl pine\nE lf\nĠf mt\nĠS ard\nurs es\ng pu\nUn ix\nĠunequiv ocally\nĠCitizens hip\nqu ad\nm ire\nĠS weeney\nB attery\n6 15\nĠpanc akes\nĠo ats\nM aps\nĠCont rast\nmbuds man\nĠE PS\nĠsub committee\nĠsour cing\nĠs izing\nĠBuff er\nĠMand atory\nĠmoder ates\nĠPattern s\nĠCh ocobo\nĠZ an\nĠSTAT ES\nĠJud ging\nĠIn her\n* :\nĠb il\nĠY en\nĠexh ilar\noll ower\nz ers\nĠsn ug\nmax imum\nĠdesp icable\nĠP ACK\nĠAn nex\nĠsarcast ic\nĠlate x\nĠt amp\nĠS ao\nb ah\nĠRe verend\nĠChin atown\nĠA UT\nd ocumented\nĠGA BA\nĠCan aan\nĠÙ ħ\nĠgovern s\npre v\nE sc\nĠEst imates\nOS P\nĠendeav our\nĠCl osing\nomet ime\nevery one\nĠwor sen\nĠsc anners\nĠdev iations\nĠRobot ics\nĠCom pton\nĠsorce rer\nĠend ogenous\nĠem ulation\nĠPier cing\nĠA ph\nĠS ocket\nĠb ould\nĠO U\nĠBorder lands\nĠ18 63\nG ordon\nĠW TO\nĠrestrict s\nĠmosa ic\nĠmel odies\nç Ħ\nT ar\nĠdis son\nĠProv ides\nĠ ......\nb ek\nF IX\nĠbro om\nans hip\nDo ctors\nĠner ds\nĠReg ions\nna issance\nĠmet e\nĠcre pt\npl ings\nĠgirlfriend s\nkn it\nig ent\now e\nĠus hered\nĠB az\nM obil\n4 34\nĠPres ents\norig in\nĠins omnia\nĠA ux\n4 39\nĠCh ili\nirs ch\nG AME\nĠgest ation\nalg ia\nrom ising\n$ ,\nc row\nĠIn spection\nat omic\nRel ations\nJ OHN\nrom an\nĠClock work\nĠBak r\nm one\nM ET\nĠthirst y\nĠb c\nĠfacult ies\nR um\nĠnu ance\nĠD arius\nple ting\nfter s\netch up\nReg istration\nĠK E\nR ah\nĠpref erential\nĠL ash\nĠH H\nVal id\nĠN AV\nĠstar ve\nĠG ong\nz ynski\nĠAct ress\nĠw ik\nĠun accompanied\nlv l\nBr ide\nAD S\nĠCommand o\nĠVaugh n\nWal let\nĠho pping\nĠV ie\nĠcave ats\nĠal as\nif led\nab use\n66 1\nĠib n\nĠg ul\nĠrob bing\nt il\nIL A\nĠmit igating\nĠapt ly\nĠty rant\nĠmid day\nĠGil more\nĠDe cker\nĠÂ§ Â§\npart ial\nEx actly\nĠphen otype\nĠ[+ ]\nĠP lex\nĠI ps\nvers ions\nĠe book\nĠch ic\ng ross\n\":\" \"},{\"\nĠSur prisingly\nM organ\nĠresid ues\nĠConf ederation\nin feld\nĠl yr\nmod erate\nĠperpend icular\nV K\nĠsynchron ized\nĠrefres hed\nĠad ore\nĠTor ment\nol ina\nĠ26 00\nItem Tracker\nĠp ies\nĠF AT\nĠR HP\n0 48\nĠRES P\nĠB J\nall ows\nP and\nĠunw elcome\nĠV oc\nĠBast ard\nĠO W\nĠL AR\nĠHeal er\nEnvironment al\nĠKen yan\nĠTr ance\nĠP ats\nĠali ases\nĠGar field\nĠcampaign er\nĠadvance ments\nĠOkin awa\nĠC oh\nows ky\nĠstar ved\nĠsize able\nĠ: -)\nĠm RNA\nĠsusp ensions\nist ar\nScot land\nPr in\n-------------------------------- ----------------\nĠ50 2\nĠteasp oons\nĠ10 50\nĠcoerc ive\nĠMason ic\nedd ed\nĠPass enger\nĠl att\nĠbr aces\nĠSt eal\nĠNY T\nĠK ats\nĠCel est\nae z\nT u\nĠCoul ter\nðŁ ĺ\nFl ickr\nĠWil mington\nith s\n++ ;\nĠv ending\nĠneg ro\nĠPh i\nĠYellow stone\nCall back\nĠsh ampoo\nĠSh ades\nw at\nĠsuper human\nĠridic uled\nĠhol iest\nom bo\nĠintern s\nĠh one\nĠPar agu\nUR I\nĠd angling\nãĤ »\nso v\nict ional\nav ailability\nĠrev ocation\nĠd ow\nin ic\nĠTHE IR\nĠis o\nĠout ings\nĠLeth al\nĠ) ))\nĠinacc ur\nĠout landish\nĠan us\nlet ico\nid on\nl ol\nĠun regulated\nĠsuccumb ed\nĠc uff\nĠWast eland\nlet al\nĠsub str\nĠcoff ers\nĠautom akers\nov i\nĠX ue\nĠDayton a\nĠjar ring\nĠf umes\nĠdisband ed\nz ik\nitt on\nĠstriking ly\nĠsp ores\nAd apter\n.) :\nĠLynd on\nival ry\nĠor ally\nĠtumult uous\nĠdisple asure\nĠcon es\nor rect\nĠappe ase\nĠder by\nĠTrip oli\nĠAl ess\nĠp oked\nĠGu ilty\nv P\nEn ough\nĠorig inals\n6 99\nĠrabb i\nĠproverb ial\nĠpostp one\nel ope\nĠMist y\nĠstaff ed\nĠUn employment\nredit ary\nĠdilig ent\nre comm\nme asures\nas in\n8 25\nĠpond s\nĠmm ol\nĠS AR\nĠC ARE\nĠ3 71\nĠclen ched\nĠCors air\nĠcaric ature\nz n\natt ach\nĠSch ro\nspe ak\np ainted\nĠS uc\nĠE NT\nĠcell ul\nĠP aid\ndi agn\nWH ERE\nĠtext ed\nB arn\nĠret racted\nĠRe ferred\nS av\nĠup keep\nĠwork places\nĠTok ens\nĠampl ify\ncl inical\nĠmult ic\nmber g\nĠconvol uted\nReg ion\n5 65\nĠTop ic\nĠsn ail\nĠsal ine\nĠins urrection\nĠPet r\nf orts\nB AT\nĠNav ajo\nĠrud imentary\nĠLak sh\nOND ON\nMe asure\nĠtransform er\nĠGodd ard\nĠcoinc ides\nir in\nR ex\nĠB ok\nqu it\nĠshotgun s\nĠprolet arian\nĠsc orp\nĠAd a\n5 14\nĠsl ander\nrecord ed\nĠemb ell\nris ome\nĠapolog izing\nĠMul cair\nĠGib raltar\nCl a\nĠall ot\nĠAtt ention\nĠ4 33\nle ave\nĠwh ine\nĠIss a\nĠFa ust\nĠBar ron\nhen y\nĠvictim ized\nJ ews\nĠnurt uring\nett el\nW inged\nĠSub tle\nĠflavor ful\nĠRep s\neng ed\ncall back\nĠdirection al\nĠcl asp\nĠDirect ions\nplan et\nicult ure\nHel per\nic ion\nac ia\nĠç ¥ŀ\nĠsur ges\nĠcan oe\nĠPrem iership\nbe en\nĠdef ied\nĠTro oper\nĠtrip od\nĠgas p\nĠE uph\nĠAd s\nvern ight\nhigh ly\nR ole\nĠent angled\nĠZe it\n6 18\nĠRust y\nĠhaven s\nĠVaugh an\nHA EL\nĠSER VICE\n/ ,\nĠstr icken\nĠdel usions\nĠb is\nĠH af\nĠgrat ification\nĠent icing\nUN CH\nAd ams\nĠOL ED\nĠBeet le\nĠ18 99\nĠSO FTWARE\nateg or\nV L\nĠTot em\nĠG ators\nAT URES\nĠimped ance\nReg istered\nĠC ary\nĠAer ial\non ne\nen ium\nĠd red\nĠBe g\nĠconcurrent ly\nĠsuper power\nĠX an\nj ew\nimes ter\nĠDick inson\nâĶ ģ\nF la\nĠp ree\nĠRoll ins\n© ¶æ\nĠden omination\nĠL ana\n5 16\nĠinc iting\nsc ribed\nj uries\nĠWond ers\napp roximately\nĠsusp ending\nĠmountain ous\nĠL augh\noid al\nN s\nDet ect\n) =\nĠL uthor\nĠSchwarz enegger\nĠMull er\nĠDev i\nec ycle\nJ ar\n6 13\nĠL ongh\nB ah\nĠSP ORTS\nn w\nĠref inement\nĠwater ways\nĠd iner\nBl ade\n68 3\nF ac\nĠinitial s\nĠro g\nĠparan ormal\nB UT\nĠ[ (\nĠSw anson\nĠM esh\nâĸ ¬\nImpro ve\nĠRad iation\nĠEst her\nĠE sk\nĠA ly\nik y\nĠir rad\nĠBuck ingham\nĠref ill\nĠ. _\nRe pe\nCON CLUS\nĠdifferent iated\nĠchi rop\nĠAt kins\nPat tern\nĠexc ise\nĠcab al\nN SA\nĠST A\nĠS IL\nĠPar aly\nĠr ye\nĠHow ell\nĠCount down\nness es\nalys ed\nĠres ize\nãĤ ½\nĠbudget ary\nĠStr as\nw ang\nĠap iece\nĠprecinct s\nĠpe ach\nĠsky line\nĠ35 3\npop ular\nApp earances\nĠMechan ics\nĠDev Online\nS ullivan\nZ en\nĠp u\nop olis\n5 44\nĠde form\nĠcounter act\nĠL ange\nĠ4 17\nCon sole\n77 4\nĠnodd ing\nĠpopul ism\nĠhe p\nĠcoun selling\ncompl iance\nU FF\nĠunden iably\nĠrail ing\nĠHor owitz\nĠSim one\nĠBung ie\nĠa k\nĠTal ks\nx ff\nfl ake\nCr ash\nĠsweat y\nĠban quet\nĠOFF IC\nĠinvent ive\nĠastron omer\nĠStam ford\nĠSc are\nĠGRE EN\nolic ited\nĠr usher\nĠcent rist\night ing\nĠsub class\nĠdis av\nĠdef und\nĠN anto\noci ate\nm ast\nĠpac if\nĠm end\ne ers\nimm igration\nESS ION\nĠnumber ing\nĠlaugh able\nĠEnd ed\nv iation\nem ark\nP itt\nĠmetic ulous\nĠL F\nĠcongrat ulated\nĠBir ch\nĠsway ed\nĠsemif inals\nĠhum ankind\nm atter\nĠEqu ip\nopa usal\nS aid\nĠLay out\nĠvo icing\nĠth ug\nĠporn ographic\nI PS\nĠmo aning\nĠgriev ance\nĠconf essions\nesc al\nTEXT URE\nAut hent\nos aurus\nP urchase\nĠreleg ation\nal ter\nĠÂł Âł\nĠr iddled\nĠo gre\nĠLow ell\nOcc up\nE at\nĠHy der\nĠAdvis er\nCom merce\nH unt\nĠOr th\nĠComp etitive\nĠCL A\nCD C\nĠsal ads\nF le\nĠindustrial ized\n` ,\nĠO WN\nĠbec k\nĠPart icularly\noub t\nĠm M\nĠHuss ain\nĠChen nai\nĠ9 20\nĠappoint ing\nĠCull en\n,,,, ,,,,\nĠp ores\nver ified\nĠbi ochemical\nem ate\nĠcoward ly\nĠHels inki\nĠEthiop ian\nS OURCE\nER C\nest ro\nĠbi otech\nĠS our\nĠbrew er\nBloom berg\nĠintens ify\nGl ass\nan co\nĠF DR\ngre SQL\nĠF ires\n©¶æ ¥µ\nec o\n100 1\nĠHom eless\nĠinstant aneous\nĠH aste\nig el\nD iamond\nĠp aving\nĠland fill\nĠd ads\nh oun\n: ]\nĠinc endiary\nĠLiving ston\nĠHil bert\nĠChe cks\nst yles\nin ators\nĠCl ive\nph rine\nĠchimpan zees\nĠp all\nĠJ M\nĠAad haar\nð Ŀ\nĠachie vable\ndis abled\nP ET\nOOOO OOOO\nM ot\nĠint angible\nĠbal let\nĠWe bs\nĠEst imated\nEffect s\nĠb ailed\nJosh ua\nĠturb ulence\nĠoccup ant\nĠDay light\nĠ36 1\nme et\nĠstat ically\nĠon look\nĠk i\nil legal\nĠvel vet\nĠdehyd ration\nĠacqu ies\nĠRe z\nak ura\nĠU pton\nat ro\nĠincomp rehensible\nĠback door\nĠRh ino\n7 27\nĠmath s\n) +\nĠhe resy\nĠd f\nĠRoc he\nĠL ydia\nĠpanc reat\nre ply\narre ll\nĠsolicit ation\nĠcirc adian\nBI P\nĠfor ay\nĠcrypt ic\niz u\nime o\nĠTom ato\nĠH oms\nex amination\nĠqu arry\nĠVal iant\nĠJer icho\nĠIN CLUD\nĠ18 40\n5 19\nĠres ists\nĠsnap shots\nĠSp ur\nĠAnt iqu\nLog in\nĠbest selling\nĠant ic\nĠS utherland\nãĤ¢ ãĥ«\nĠ~ /\nĠP arm\nè ĥ\nP ages\nint ensity\nĠimm obil\nĠ18 65\nzz o\nĠn ifty\nĠf entanyl\nĠPres ervation\nop hen\nĠd arts\nĠD inosaur\npo inters\nĠR ite\ns uggest\naware ness\nĠSher idan\nĠst ances\nĠsor cery\nĠper jury\nĠNik ola\nie ver\nĠf iance\nĠJordan ian\nĠBall oon\nĠn ab\nĠk b\nĠhuman ities\nĠTan aka\nhill ary\nĠconsult ancy\nĠZ ub\nĠrem ission\nĠconf id\nCH Q\nĠF ug\nĠimpro vis\nY ep\n/ _\nĠunwilling ness\nĠport folios\n05 5\nĠInstruct or\naim an\nĠclaim ants\nM bps\nĠBy e\nre ceived\nT weet\nĠind emn\nri z\nam ara\nN at\nĠeval uates\nĠL ur\nep ad\nFO X\nĠTh ro\nĠrust y\nĠbed rock\nĠOp rah\nJ B\nĠmanip ulative\nĠwill ful\nĠrel apse\nĠext ant\nThe me\nS ensor\nĠSt ability\ngo vern\nĠpo ppy\nĠkn ack\nĠins ulated\nĠT ile\nĠExt rem\nĠunt old\nĠconver ge\nĠref uel\nig roup\nĠdistort ions\nĠrav aged\nĠmechan ically\nĠRe illy\nĠN ose\nĠIncarn ation\nĠBeck y\nabb ling\nĠt aco\nĠr ake\nĠmelanch oly\nĠillust rious\nĠDart mouth\nGu ide\nĠR azer\nĠBen z\nUlt imate\nĠSur prise\nĠpage ant\noff er\nWho ever\nĠw iser\nĠchem ist\nĠHE LL\nĠBul k\nĠpl utonium\nĠCO VER\nÖ ¼\nf ailed\nĠtire lessly\nĠinf ertility\nĠTr ident\nĠShow time\nĠC iv\nV ice\nrequ ires\nitt ance\nĠun controlled\ninterest ing\n56 1\nĠinnov ate\nateg ic\nL ie\nĠS elling\nU l\nĠsav ior\nĠT osh\nĠsw ast\nP ASS\nĠr ink\nĠcard io\nĠI ro\nud i\nĠv antage\nĠv ans\nĠNi Ã±o\n+ =\nĠpropag ate\n< ?\nĠmethod ological\n204 39\nĠtrig lycer\nĠing rained\nĠAn notations\narr anted\n6 17\nĠS odium\nĠA AC\ntechn ical\nmult ipl\nĠ3 73\nå ĭ\nĠdec isively\nĠboost ers\nĠdessert s\nĠGren ade\nĠtest ifying\nĠSc ully\nID s\nĠlock down\nĠSc her\nĠR Ã©\nĠWhit man\nĠRams ay\nrem ote\nĠh ikers\nĠHy undai\nĠcons cientious\nĠcler ics\nĠSiber ian\nut i\nis bury\nĠrel ayed\nĠqu artz\nĠC BI\nseek ers\null a\nĠweld ing\nĠSh al\nble acher\nT ai\nĠSam son\nĠt umble\nĠInvest or\nĠsub contract\nĠShin ra\now icz\nj andro\nd ad\nĠtermin ating\nĠNe ural\nä» £\nĠleak age\nĠMid lands\nĠCaucas us\ní ķ\nc it\nll an\niv ably\nĠAlb ion\nĠ4 57\nĠregist rations\nĠcomr ade\nĠclip board\n0 47\nĠdiscour aging\nĠO ops\nAd apt\nĠem path\nn v\nĠPR OT\nĠDon n\nĠP ax\nĠB ayer\nt is\nSqu are\nĠfoot prints\npart icip\nĠChile an\nB rend\nind ucing\nM agn\nĠclub house\nĠMagn um\nĠenc amp\nĠEth nic\nuch a\nere y\nĠw atered\nĠCal ais\nĠcomplex ion\nĠsect s\nĠren ters\nĠbr as\noÄŁ an\nTime out\nMan agement\nĠinf ographic\nP okemon\nCl ar\nĠloc ality\nĠfl ora\nas el\nP ont\nĠpop ulate\nĠO ng\nĠsubs istence\nĠa uctions\nĠMcA uliffe\nĠL OOK\nbr inger\nĠtit an\nĠmanif old\nĠâĹ ı\nĠcalibr ated\nĠcal iphate\nĠSH E\nĠCommission ers\nce ivable\nj c\nW inner\n5 24\nĠcond one\nOther wise\nĠp iling\nĠem body\nĠCrime an\nut ics\nĠEx hibition\nĠ4 26\ne ering\nĠv ying\nĠH UGE\n* =-\nĠprin cipled\nà ¦\nĠquir ks\nĠEdit ors\nput ing\nG ES\nĠF TA\nà¤ ¾\nadd on\nĠH AM\nĠFrie za\nW oman\n. $\nĠc rib\nĠHer od\nĠtim ers\nĠSp aces\nĠMac intosh\nat aka\nĠgl ide\nĠsmell ing\nĠB AL\nĠun su\nĠcond os\nĠbicy cl\nĠRev ival\n55 3\nĠjugg ling\nH ug\nĠKardash ian\nĠBalk ans\nmult iple\nĠnutrit ious\noc ry\n19 00\nĠinteg rates\nĠad joining\nĠF older\nroll ment\nven ient\nĠu ber\ny i\nĠwh iff\nĠJu ven\nĠB orough\nnet te\nĠb ilingual\nĠSp arks\nph thal\nman ufact\nĠt outing\nĠPH I\nKe efe\nRew ard\nĠinf all\nĠTem per\ntyp ically\nĠNik ol\nĠregular s\nĠpseud onym\nĠexhib itions\nĠbl aster\nĠ40 9\nw arming\nĠrever ber\nĠrecip rocal\nĠ6 70\nip ient\nb ett\nĠBe gins\nĠit ching\nĠPh ar\nAss uming\nĠem itting\nĠML G\nĠbirth place\nĠt aunt\nĠL uffy\nĠAm it\nĠcir cled\nĠN ost\nenn ett\nĠde forestation\nĠHist orically\nĠEvery day\nĠovert ake\n79 2\nĠn un\nĠLuc ia\nĠaccompan ies\nĠSe eking\nĠTr ash\nan ism\nR ogue\nĠnorth western\nĠSupplement al\nĠNY U\nĠF RI\nĠSat isf\nx es\n5 17\nĠreass ured\nĠspor adic\nĠ7 01\nĠmed ial\nĠcannabin oid\nĠbarbar ic\nĠep is\nĠExplos ive\nĠD ough\nĠuns olved\nSupport ed\nĠacknowled gment\nsp awn\nĠkit chens\nĠ- =\ntalk ing\nic ist\nĠPeg asus\nĠPS U\nĠphot on\nĠAuthent ication\nR G\n@# &\n76 2\nĠCl air\nĠdi aper\nĠbr ist\nĠProsecut ors\nĠJ em\n6 28\nĠEvery where\nĠJean ne\nequ ality\nãĥ© ãĥ³\nobject s\nĠPel icans\nĠ39 2\nĠbl u\nb ys\nĠA go\nĠinstruction al\nĠdiscrim inating\nĠTR AN\nĠCorn el\nag os\nĠty re\nĠas piration\nĠBrid gewater\n\": -\n! \".\nĠEn s\nĠCoc o\nP ie\nĠdet ach\nĠC ouch\nĠphys ique\nĠOccup ations\nosc opic\nen ough\nB uzz\nApp earance\nY P\nĠrac er\nĠcompl icity\nr pm\nT oy\nĠinterrupt s\nĠCat alyst\nĠut ilitarian\nimp act\nĠsp aghetti\nĠp orous\nĠeste emed\nĠinc iner\nĠI OC\n7 48\nĠesp resso\nĠSm ile\nabil ia\n6 35\nĠmathematic ian\nĠ4 24\nĠK L\nĠH IP\nĠover heard\nĠT ud\nĠT ec\nĠqu izz\nĠfl attering\nĠcon n\nâĢ İ\nĠatt aches\nĠR OS\nĠAC S\nĠt cp\nĠSh ame\nsk ip\nres pected\nĠTrin idad\ngr ain\nĠfooth old\nĠUnch arted\nĠJul io\nz l\nav ored\nĠAn xiety\ner rors\nĠCent auri\nits ch\nD addy\nĠclutch ing\nĠIm plement\nĠGut ierrez\nĠ7 60\nĠtele portation\nend ra\nĠrevers ible\nst ros\nAd venture\n08 3\nĠliber ating\nĠas phalt\nĠSp end\nAR DS\nim sy\nPR ES\nĠEmer ging\nĠwild fires\nĠtechn ologically\nĠem its\nĠART ICLE\nĠirregular ities\nĠcher ish\nçī Ī\nĠst ink\nĠR ost\nEconom ic\nĠcough ing\nĠMcC ann\npro perties\nilant ro\nĠreneg oti\nTrans lation\nĠin quest\nĠGra pe\noot ers\ngu i\nĠSwords man\nace ae\nh itting\nĠr c\nĠexert ed\nĠS AP\nit ent\nĠperil ous\nĠobsc urity\nĠassass inate\nĠab original\nĠresc uing\nĠSh attered\nlock ing\nall ion\nCh anging\nĠHar rington\nĠB ord\nĠAfgh ans\nJam ie\naret z\nĠAugust us\nĠ38 6\n8 30\nĠj og\nok ingly\nTr igger\nĠH OR\nStat istics\nĠviewers hip\nĠadd itives\nh ur\nĠmaxim izing\nĠR ove\nĠLou ie\nĠBuck et\nĠCHR IST\nou sel\nĠstre aks\nir ted\nĠt ert\nĠcolonial ism\nĠbur ying\ny k\nCond ition\nĠDPR K\nBy Id\n75 1\nâĹ ¼\nĠwor risome\nĠvoc ational\nsl ice\nĠsa ils\nĠCorrection al\n95 4\nĠt ul\nK id\nl uster\nĠfam ilial\nĠSp it\nĠEp iscopal\nSpecific ally\nĠVol cano\nrun s\nq s\nĠve tted\nĠcram med\nt rop\nhere r\nThank fully\nĠper cussion\nĠor anges\nĠround up\nĠ4 99\nx ious\nChar acters\nĠZion ism\nĠR ao\nÃĽ ÃĽ\nW F\nĠunintention al\nONE Y\nGr ab\nCom mercial\nĠglut amate\nĠMcK enna\nru ciating\nning ton\nih u\nCh an\nĠSw ap\nĠleaf lets\nĠfunction ally\ner ous\nF arm\nĠcal oric\nĠLiter ally\ncon cert\nĠshe nan\nĠrep aid\ney es\nĠbas hing\nĠG orge\nĠcollabor ations\nĠun account\nitch ie\nĠteam work\npp elin\nĠpip ing\nĠmin ced\nĠd iam\nri eg\nĠmasc ara\nĠsuck er\nĠMo ons\nApp s\nĠPe ck\nĠper v\nĠFl oat\no ley\nĠN ish\nim ize\nĠarom atic\nu in\nend ish\n! /\nĠB icycle\nĠAS IC\nile ged\nĠQuad ro\nios yn\nĠlock out\nĠW ink\nSP EC\nAttempt s\nĠseed ed\nred o\nias is\nĠsn ag\nãĥķ ãĤ©\nãĤ ¶\nĠground ing\nĠrelie ver\nĠfrivol ous\nĠG ifts\nĠF aces\nEs pecially\nĠmicrobi ome\nim ag\nĠSch l\nĠP les\nĠBle ach\nĠIr win\nĠE aton\nĠDisc iple\nĠmultipl ication\nĠcoer ced\nĠ4 19\nst h\nE vil\nB omb\nĠex orc\nĠstag gered\nL ESS\nĠinert ia\nĠED IT\nĠgo b\nTr aditional\nĠclass y\nLear y\nĠP AGE\nyr s\nĠtrans porter\nĠmat ured\nĠhij ab\nĠbi ome\nWhere as\nĠex termination\nĠT ues\nĠT akeru\nĠAud rey\ner ial\nĠAd en\naff les\nĠnarciss istic\nĠB aird\nUT F\nI re\nĠCon nie\nCh amp\nĠwhis pering\nĠH att\nD K\nĠdis infect\nĠdeduct ed\nĠpart ake\nĠdown grade\nĠEs ports\nĠContin uing\nĠdemocr atically\nicro bial\nitt a\nĠlim estone\nĠexempt ed\nĠFren zy\nH erm\n7 28\nĠfled gling\nMet a\n765 61\n69 3\n% :\nw ake\n5 26\nĠDis cipline\nĠvirgin ity\nĠLeg ions\nĠFrank ie\nint ent\nĠrest rooms\nĠRou ter\nda q\nĠobjection able\nâĨ ĳ\nw ark\nĠRah ul\ng ain\nactiv ation\nabs olute\nĠAccess ed\nĠ24 00\nogg les\nĠsecond ly\nĠDEF ENSE\nĠpost age\nwra pper\nsh arp\n7 29\nĠcommun icates\nĠadd on\nĠMil itia\nH ong\nĠsl umped\nĠJP EG\nĠI car\nad ish\n68 1\nĠmaj esty\nĠWolf gang\nĠEl astic\nu per\nĠv iz\nĠunconscious ly\nĠST D\nĠS ass\nĠflower ing\nĠHel ic\nĠDra per\nĠAm ateur\nĠman ure\nĠdis ingen\nĠLe i\nbr ing\n9 49\nĠinhib ited\nĠhead quartered\nĠen igmatic\nï¿½ï¿½ ï¿½\nĠred ress\nR H\nĠratt led\nĠd iction\nl io\nĠT BA\nĠSN AP\nC alling\nĠfasc ists\nĠD ove\niew icz\n0 36\nĠco asts\nĠR ect\nĠ) ]\nL ot\n6 29\nĠS EM\nĠPeters en\nĠExpl ain\nĠBo ards\nĠBe zos\nĠJ ournals\nĠ20 24\np arser\nĠmist rust\nĠgr ate\nĠL ocked\nbo a\nS aint\ng aming\nĠvow el\nin ately\nbl ow\nAll ah\nĠun matched\nĠb ordering\nĠExp end\nn r\nOr acle\nrou ch\nĠcont iguous\nac us\nĠdist raught\n58 1\nĠanat omical\nO X\nap ixel\n8 33\nĠPL US\nĠres usc\nĠab iding\n57 3\nĠvac ancies\nEm ily\nĠhyp othal\nĠWer ner\nĠWe e\nĠDJ s\n5 13\nĠwitch craft\nĠac upuncture\nent ary\nbenef it\nProduct s\nĠP SP\nĠMP G\nĠJ inn\nĠJ arrett\nĠ4 45\nĠIm aging\nĠP yth\nFin ish\nĠte x\nĠjuven iles\nĠhero ism\nĠdoubt less\nĠA ki\nĠT end\nĠPatri arch\nĠbit ters\nĠTele communications\nit atively\nag na\nĠr g\nĠS OLD\nĠcomp ulsion\nĠN asa\nĠKath ryn\nĠmillion aires\nĠintrins ically\nĠbolst ered\ntime out\nfl o\nĠtut or\np our\nStat ement\nĠ{ *\nĠRud olph\nĠKimber ly\nrog ens\nadi q\n] +\nĠindign ation\nĠfract uring\nĠRe leases\nĠGr ain\npro tein\nL ago\nĠvac ations\nĠboot ed\nĠTH REE\nĠH G\noresc ence\nĠt f\nĠso ar\niosyn cr\nĠgl ances\nĠSp oon\nĠJ ury\nĠCow boy\nĠcreat ively\nHig her\nĠsolic itor\nĠhaw k\nac io\n89 6\nĠsuperf lu\nĠbombs hell\nct ure\nĠbroker age\nĠraid ing\nĠf rench\nĠang led\nTrans action\nĠGen ocide\nu pe\nĠHait ian\n57 2\n! :\nĠunwitting ly\niter ator\nsc roll\nĠtall ied\nĠbi omedical\nĠC ARD\nĠe uphem\nĠbrain storm\na quin\nK o\nMic helle\nĠR unes\nĠBall istic\nud ers\nĠmod esty\nĠiP ads\nĠEzek iel\nY E\nĠstars hip\nĠpower fully\nĠper l\nĠSh ade\nĠQu art\nĠE EG\nĠfisher man\nOS ED\nĠTyp ical\ndf x\nĠmes hes\nĠet ched\nworth iness\nĠtopp led\nĠ3 96\nor ius\nWe iss\nĠmy sql\nĠVal halla\nÙ Ĵ\nle asing\nĠrec omp\nrap nel\nS el\n04 3\nĠder ailed\nĠGu ides\nIR T\nĠde human\nĠBritt any\n\" ))\nĠex claim\nĠb alk\nĠ8 40\nCLA IM\nint el\nL AB\nĠpe gged\nĠast roph\nsm oking\nĠrig ging\nĠfix ation\nĠcat apult\nins ide\nĠC ascade\nĠBolshe vik\nG aza\nDep th\nĠloud spe\nĠalmond s\nme yer\nl eness\nj en\nf resh\nĠunbeat en\nĠSqu id\nĠPres umably\nTim er\nB W\nĠro sters\nĠell ipt\nĠHar riet\ndat abase\nĠMut ual\nĠComm odore\nuk ed\nkn ife\nĠCOMM UN\nh ya\nĠmel ts\narch ives\nĠrat ification\nĠmultip lying\nĠinter oper\nĠasc ert\nw ings\nver ting\nĠScorp ion\nay e\nĠPorts mouth\nĠM TA\nn it\niaz ep\nĠqu arantine\nĠslides how\nĠcent imeters\nĠsyn opsis\nĠsp ate\nth irst\nĠnom inating\nĠMel vin\nPre view\nĠthro b\nĠgener ational\nĠRad ius\nrest ling\nput able\naw ar\nN ECT\nĠunlaw fully\nĠRevel ations\nWik ipedia\nsur v\nĠeye ing\nij n\nĠF W\nĠbr unt\nĠinter stellar\nĠcl itor\nĠCroat ian\nĠCh ic\nev a\nĠDis app\nĠA kin\niner ies\nd ust\nInterest ed\nĠgen esis\nĠE ucl\nÃ¶ n\np icking\nĠmut ated\nĠdisappro ve\nĠHD L\nĠ6 25\nÌ ¶\nc ancer\nĠsqu ats\nĠle vers\nDisc uss\n= ]\nD ex\nĠVIDE OS\nA UD\nĠtrans act\nĠKin ect\nĠK uala\nĠC yp\n7 47\nĠsh attering\nĠarsen ic\nĠInt ake\nĠAngel o\nĠQu it\nĠK he\nĠ18 93\nM aker\n0 29\nĠPain ting\nDis able\n9 16\nĠanal ges\nĠtact ile\nĠprop hes\nĠd iced\nĠTravel s\nĠHe ader\nĠClub s\nAss istant\nĠinc rim\nĠd ips\nĠcruc ifix\nĠShan ahan\nĠInter pret\nĠ40 90\nal ogy\nabb a\nĠsimul ac\nhus band\nS IM\nĠrecy cle\nuc er\ned ged\nĠre naissance\nĠBomb ay\nCath olic\nĠL INE\nĠCl othing\nre ports\nĠpl aus\nĠd ag\nĠM ace\nZ I\nĠintr uder\nĠVeter inary\ng ru\nĠsne aky\nĠS ie\nĠC innamon\nP OSE\nĠcou rier\nĠC NS\nĠemanc ipation\ns it\nĠplay through\nĠFac ilities\nv irt\nĠG auntlet\nThom pson\nĠunbeliev ably\nParam eters\nĠst itching\nign e\nĠTH ESE\nPriv acy\nĠshenan igans\nĠvit ri\nĠVal id\n59 1\nŃ ·\nĠProt otype\nink a\nSC P\nĠT id\nè Ī\nold ed\nĠindividual ity\nĠbark ing\nĠm ars\nĠW D\nĠ8 20\nĠt ir\nĠsl apping\nĠdisgr untled\nĠAng ola\nri us\nĠTorn ado\nĠTh urs\nĠcapt cha\nĠang st\nĠP og\nĠAssass ins\nĠAd idas\nĠjoy ful\nĠwh ining\nEmer gency\nĠphosph orus\nĠatt rition\noph on\nĠTimber wolves\nĠJ ah\nĠBr inging\nĠW ad\nĠEn sure\noh l\nĠX ie\nomm el\nc mp\nĠz ipper\nĠrel at\nĠCor ridor\nm ilo\nT ING\nAv g\nĠcro pped\n] }\nĠr aged\nĠLump ur\nĠGuer rero\nour ke\nN ut\nĠoff sets\nog lu\ndr m\nĠmort als\nlat able\nĠdismiss ive\nä¸ ī\nĠthro ats\nĠchips et\nĠSpot light\nCatal og\nart ist\nG b\nĠch illy\nĠst oked\nĠ3 74\nW ard\nL atin\nĠf iasco\nĠble ach\nĠb rav\nEnh anced\nĠin oc\nĠFior ina\n_ >\nĠle ukemia\nĠel uc\nĠannoun cer\nĠLith uan\nĠArm ageddon\nå ĩ\nLen in\nĠR uk\nĠpe pp\nĠRom antic\nĠP IT\nĠInter stellar\nĠAt kinson\nR aid\nJ s\nGo al\nC ourse\nĠvan ishing\nes ley\nĠR ounds\nEls a\n59 3\nĠredund ancy\nĠST AND\nĠprop hetic\nĠhabit able\nry u\nĠfaint ly\nM ODE\nĠfl anked\nIR C\nAw esome\nĠsp urious\nĠZ ah\nĠMS G\nĠsh ading\nĠmotiv ational\nĠSant ana\nĠS PR\nĠexc ruciating\nom ial\nĠM iko\nĠLe opard\nA byss\nĠ[ |\nd irty\nĠbath s\nĠdem oral\nand re\nP B\nĠun ification\nĠsac rament\nĠ[ &\nĠpric eless\nĠgel atin\nĠeman ating\nĠAll aah\n98 6\nĠout burst\nĠer as\nĠX VI\nĠSP I\nO tt\nĠLaz arus\nPL IED\nF lying\nblog s\nW isconsin\nR aven\nĠreb ate\nĠcreep s\nĠSp an\nĠPain ter\nĠKir a\nĠAm os\nĠCor vette\nCons umer\nĠRec over\nck i\nĠpes ky\nĠIn vention\nCompan ies\nĠchalleng ers\nad emic\nĠUkrain ians\nĠNeuro log\nĠFors aken\nĠent rants\nĠemb attled\nĠdef unct\nĠGlac ier\nĠpo isons\nĠH orses\nm akes\nĠD irt\nĠ4 23\nhh h\nĠTrans formation\nQUI RE\n................ ..\nĠtrave ller\nĠSe xy\nĠK ern\nip olar\nĠransom ware\noooooooo oooooooo\nE c\nrub y\nProf essional\nĠOut break\narg ument\nG rey\nĠFif a\nĠCH O\nĠFOR M\nĠAm trak\n- [\nĠcr adle\nĠantioxid ants\nãģ®å ®\n7 36\nĠNAS L\nĠContribut ions\nInd iana\nĠST EP\nC SS\nĠsal ient\nĠall ocations\nyr ights\nĠm ashed\nĠCut ter\nSex ual\nĠp ounded\nĠfan base\nĠc asc\nĠTrans parency\nĠanaly tic\nĠSummon er\n× ŀ\nĠAD C\ndet ail\nĠvan quished\nĠcr abs\nar ie\nDest roy\nĠS ack\nĠtrans istor\nAl abama\nĠK oen\nĠFisher ies\nc one\nĠannex ed\nĠM GM\nes a\nĠf aked\nĠCong ratulations\nĠhind ered\nĠcorrection al\nĠI TV\nlee ve\nĠin appropriately\nlic ks\nĠtresp ass\nĠp aws\nĠnegoti ator\nĠChrist ensen\nlim its\nĠDian ne\nĠeleg ance\nĠContract s\nan ke\nOb j\nĠvigil ance\nĠcast les\nĠN AD\nĠHol o\nĠemph atically\nĠTit us\nĠServ ing\nĠRich ie\nĠP igs\n5 68\nĠanim osity\nĠAtt ributes\nĠU riel\nM Q\nmy ra\nĠApplic ant\nĠpsychiat rists\nĠV ij\nĠAb by\nag ree\nP ush\nĠk Wh\nhib a\nĠinc ite\nĠWe asley\nĠTax i\nminist ic\nhy per\nĠF arn\nĠ6 01\nĠNation wide\nF ake\n95 2\nĠma ize\nĠinteract ed\nĠtransition ed\nĠparas itic\nĠharm onic\nĠdec aying\nĠbas eless\nns ics\nĠtrans pired\nĠabund antly\nĠFore nsic\nĠtread mill\nĠJ av\nab and\nĠssh d\nĠfront man\nĠJak arta\noll er\ndro ps\nĠSERV ICES\nrompt u\noph ical\nh ospital\nbled on\n6 45\nĠmid range\nĠEV ENT\ncul ated\nraw led\nĠper ched\nĠover board\nĠPe el\nĠP wr\nĠCar th\nĠCOM PLE\nco e\nsh all\nĠdeter rence\nM ETHOD\nĠAbs ent\nM EN\nĠs ill\nĠLE VEL\nY ork\nĠsin ners\nĠOP EC\nĠN ur\nĠDesign s\nse lection\nĠunw orthy\nCH A\nĠstreng thens\n88 3\ned ly\nĠslic ing\nĠmal nutrition\nĠfilm making\nĠPol k\nur ated\nĠ4 21\nbre akers\n!' \"\nĠwet lands\nĠDisc rimination\nĠallow able\nĠste ered\nĠSic ily\nS AM\nĠmust ache\nĠm ids\nĠcl ipped\nĠcirc ulate\nĠbr ittle\nĠBuild ings\nra ised\nĠRound up\nĠwealth ier\nĠoverw rite\nĠover powered\nĠGerr ard\ns ites\nPD ATED\nĠacute ly\nĠGam ble\nĠp im\nĠK us\nTyp ically\nDe ploy\nĠMoroc can\np otion\ncom be\nĠvigil ante\nĠ36 3\nSt ew\nĠB agg\nĠres ided\nĠSp o\nĠrem nant\nĠempt iness\nbr ainer\nĠout patient\npri ority\nĠle ptin\nĠPay ton\nĠGle aming\nĠS hed\nĠPol o\nĠMormon ism\nrest ricted\narl ane\nw x\nĠcreat ine\nĠAn on\nĠST UD\nĠJ UL\nĠT ee\n5 28\n08 9\nĠhat ched\nDis patch\nĠCompos ite\nĠ45 1\np uff\nĠX COM\nĠOr n\nĠTH ANK\nEND ED\nĠAshe ville\nĠÃ ľ\nĠman go\nĠS lightly\nworld ly\nĠW ander\nĠExp and\nĠCh r\nM ist\nĠorthodox y\nĠUN ESCO\nreg ate\nElse where\nk ie\nir led\nĠtopp le\nĠadopt ive\nĠLeg s\nd ress\nĠS agan\nb are\nĠGl ou\nCr unch\nĠhelp ers\nĠchron ically\nĠH uma\n1 0000\nĠaccommod ating\näº Ķ\nĠwrink les\nĠdod ged\nfour th\nĠpre con\nĠcompress or\nĠK are\nĠev ict\nĠWar wick\nim ar\nĠmodern ization\nĠband wagon\nĠref uted\nĠnet ted\nĠNa ples\nĠGen ie\nper ors\nĠfield ed\nĠde re\nĠPar ables\nle es\nĠtr out\nasp ers\nĠn ihil\nĠhapp iest\nĠflo ppy\nĠLo ft\nĠHe ard\nĠun ison\nĠl ug\nĠRed mond\nclass ic\nSupp orters\nSH IP\nG MT\nĠfue lled\nç Ĳ\nĠd d\nĠEmin em\nĠ18 97\nNY SE\nĠsecret aries\nĠF IA\nĠCanaver al\nF avorite\nĠp omp\nĠdetain ee\ners hip\naim on\ni our\nĠA pex\nĠplant ations\nam ia\nac ion\nR ust\nĠtow ed\nĠTru ly\n5 77\nĠshel tered\nr ider\nW o\nĠl air\nĠInt elligent\nimpro ve\nm atically\nĠet iquette\nad ra\nall o\nĠJun o\nany thing\nĠStru ggle\nĠPred ict\nĠGr imes\nĠAMER ICA\nct x\nĠSit uation\nW OOD\nĠsol uble\nme ier\nĠintoler able\nang ering\nĠun interrupted\nĠtool tip\nĠinterrog ated\nĠgun ned\nĠSne ak\næŃ ¦\nĠt ether\nĠcr umble\nL ens\nĠclust ered\nĠSy l\nĠHas an\nĠdystop ian\nw ana\nĠjoy stick\nĠTh ib\namm u\nTom orrow\n5 46\nĠoverc ame\nĠminim ized\ncept or\nRun ner\nENG TH\nĠBrend a\nĠAchieve ments\nĠtor ches\nĠrapp ort\nĠInvestig ator\nĠHand ling\nrel ation\ng rey\n8 15\nĠk cal\nĠComm ands\nd q\nĠcur ls\nĠbe arer\nĠcyn icism\nit ri\nĠUse ful\nB ee\nD CS\nĠab ras\nP ract\nBIL ITIES\n7 12\nĠdebug ger\nĠdebt or\nĠL ia\nĠK ers\nĠexacerb ate\nĠSt acy\nĠB land\nĠSc enes\nĠbranch ing\nâĸĪâĸĪâĸĪâĸĪ âĸĪâĸĪâĸĪâĸĪ\nape ake\nĠs alsa\nĠmish and\nĠKon ami\nĠN ib\nĠanecd ote\nĠagree able\nÏ ī\nĠNath aniel\nĠHe isman\nĠB eware\nĠ18 86\nspect ive\n69 1\n5 22\nĠinhib its\nĠhas hing\nĠ18 89\nå° Ĩ\nv ich\nP ure\nĠsolid ly\nĠaspir in\nim aru\nĠstreet car\nĠU CS\nĠJ udd\nĠflash backs\np ins\nĠ14 40\nĠUN HCR\nĠSym ptoms\nT IT\n5 38\nF ra\n% );\nĠo oz\nĠcur few\nĠcal med\nĠparticip ates\nTe X\nĠnons ensical\nĠfull back\nĠDe L\nmon key\nh ari\nĠmetabol ites\nĠloot ed\nĠAL WAYS\nĠB CC\nL t\noc het\nB one\nĠveto ed\nĠg cc\nĠCL ICK\nĠ18 88\ns af\nĠstiff ness\nĠlow ly\nĠGe h\nvers on\nors et\nĠun foreseen\nĠan esthesia\nĠOpt ical\nĠrecon structed\nĠT up\nsh ows\nNEW S\nĠNewsp aper\nĠA SA\nter a\nN umbers\nĠinexpl icable\n× ĳ\nĠhard ness\nunt arily\nĠA cer\ngrad ient\nARD IS\nĠwood land\nĠmetaph ors\nĠWem bley\nĠPa vel\nphil is\nĠre writing\nĠpercept ual\nĠ10 70\nworm s\nĠDown s\nĠunsur prisingly\nĠtag ging\nfl ame\nĠlit res\nĠboun ces\nĠB abe\nsh ut\nĠoverd oses\nĠShe ila\nĠCh au\nĠBl ess\nCapt ure\nĠSign ificant\nĠSc ion\nĠ38 9\nĠMc H\nĠTitan ium\nĠMe al\named a\nag ents\nagg ressive\nB illy\n76 3\nĠS aying\nDER R\nit one\nColl ins\nB ound\nĠbol ted\nĠDM CA\n95 3\nĠun iqueness\nĠep igen\nun ci\nant am\nĠreck oning\nch airs\nOG R\nĠSen egal\nĠ18 62\nre levant\nĠÂ ¯\nĠpharm acies\nĠG eral\nv ier\nY an\nOR PG\nĠrab id\nb ending\nĠUN ITED\nĠ4 65\nAs sembly\nĠwe ep\nĠbe hest\nĠMother s\nĠJ ace\nh id\nĠwh irlwind\nĠUN IVERS\nĠut opian\nĠkidn ap\nPh ilipp\nK in\n89 3\nĠlivest ream\nĠM ISS\nĠsub versive\nĠTechn iques\nĠJUST ICE\nĠB ASE\nĠ38 7\nĠassail ants\nĠHard core\nĠsprink led\nĠP se\né ļ\nprint ed\nĠH au\nOR GE\nĠT OUR\nĠl aced\nĠit ch\nG iving\nĠport ed\n78 1\n//////////////// ////////////////\nbre eding\nĠlog ger\nĠH OL\ninn ie\nFirst ly\nĠembry onic\nĠdeleg ated\np ai\nO IL\nĠcentr ally\nĠR x\nĠSc outing\nD utch\nĠhe reditary\nĠCru iser\ns at\n5 29\nĠMar riott\nother mal\nĠprohib itions\nE arn\nĠSt ab\nĠColleg es\nĠBel ief\nst retched\nĠL H\nĠEntity Item\nC IA\nĠun rem\nĠlaure ate\nĠdenomin ations\nsum mary\nh ler\nS pect\nĠK laus\nĠBe ans\nĠins ur\nĠPA X\nĠfield er\nĠV et\nĠSp arrow\nz ie\nĠS Q\nĠMond ays\nĠOff line\nĠLer ner\nĠExt ensions\nIre land\nĠpatron age\nĠcontrast ed\nĠMan ia\nh irt\nMos cow\nĠcondem ns\nĠAn ge\nĠcomp osing\nĠPe pe\nĠP addock\nĠheter ogeneity\nĠide ologically\nĠf ishes\nĠcur sing\nĠR utherford\nĠFlo ating\nĠAm elia\nTe a\nSyn opsis\nĠstun ts\nĠbe ad\nĠstock ing\nĠM ILL\nob ook\nmass ive\n\\ <\nĠh ump\nĠPref erences\nEngine Debug\nge ist\nĠNiet o\nome ver\nish y\neval uate\ncol onial\nAltern ative\nĠGo Pro\nĠV ortex\nĠNET WORK\nans ky\nSec ure\nĠTh rust\nSn ake\nĠparcel s\nĠsam urai\nĠactress es\nN ap\nM F\nifer ation\nBe er\n5 23\nĠI ly\noint ment\nP ing\nĠstri ped\nĠMell on\noss ession\nĠneut ron\nend ium\nĠa ph\nĠFlav oring\nĠ38 3\nĠrespons iveness\nĠJ indal\nĠHitch cock\nDen ver\nĠDRAG ON\nsm anship\nĠDu pl\nĠs ly\nĠweb cam\nĠTw ain\nĠDar ling\nili ate\ncons umer\nD IT\nĠnames ake\nĠun orthodox\nĠfun er\nĠPL oS\nĠCONTR OL\nozy g\nogl obin\nF ACE\nER G\nĠD ia\nĠF iesta\nce le\n0 34\nĠencl ave\nâĸ¬ âĸ¬\non ement\nal ist\nM and\nĠhome grown\nĠF ancy\nĠconcept ions\nĠCont ains\nure en\nĠreiter ate\nĠme ager\nĠinstall ments\nSp awn\n6 27\nĠphot oc\nĠCab rera\nĠRos enthal\nĠLans ing\nis ner\nĠinvest s\nĠUFO s\nEX P\nHard ware\nĠtr agically\nĠconced es\nie ft\nch am\nbor gh\nĠSch r\nĠMel anie\nĠH oy\nĠvisit ation\nĠid iosyncr\nĠfract ions\nĠfore skin\nob os\nĠpo aching\nĠVI EW\nĠstimul ates\nĠG ork\ncan on\nM IC\nĠNem esis\nĠInd ra\nĠDM V\nĠ5 29\nĠinspect ing\nĠgrand ma\nĠW hedon\nĠSh ant\nĠP urg\nik an\nĠT eg\nĠCL R\nz ac\nVict oria\nĠVer ify\nion ics\nĠpart ying\nĠM ou\ncol our\nĠtestim onies\nl ations\nĠpress uring\nhi ro\nac ers\nĠf id\nang ler\nĠCS I\nĠhere after\nĠdiss idents\nreport ing\niph any\nche v\nĠsol itude\nĠl obe\nĠind is\nĠcred ential\nre cent\nad ult\nĠNir vana\nĠFranch ise\nL ayer\nH yp\nĠBerks hire\nĠwill s\nt if\nĠtot em\nĠJud ah\nrep air\nInst ant\n5 48\nĠemb assies\nĠbott leneck\nĠb ount\nĠtyp ew\nĠAl vin\nj ing\nim ilar\nR ush\nĠbr im\nĠHEL P\nA im\n] '\nĠpass ively\nĠbound ed\nĠR ated\nĠcriminal ity\nĠbiom ark\nĠdisp atcher\nĠTow ards\nĠ+ ++\nright eous\nf rog\nĠP anc\nC arter\n0 32\næ© Ł\nĠult raviolet\nĠLic ensed\nĠT ata\nĠBl essing\nĠG AM\nĠchem ically\nĠSe af\nĠRE LE\nĠMerc enary\ncapital ist\nĠform ulations\nĠann ihilation\nĠVer b\nĠAr gon\nĠun loaded\nĠmorp hed\nĠconqu ering\nback er\nI ELD\nĠtheft s\nĠfront runner\nĠRoy ale\nĠFund amental\nel ight\nC hip\nnecess ary\nay n\nĠSl ip\nĠ4 48\ncern ed\nP ause\nĠshock ingly\nĠAB V\nĠcomp osure\n7 33\nĠMotors port\nah ime\nMur ray\nM ach\nĠgr ids\nĠdeb ian\nĠfurther more\nĠdexter ity\nĠCollect ions\nos lov\nil age\nb j\nĠMont eneg\nĠstrut Connector\nĠmassac res\nĠbrief s\nfet ched\nuv ian\nol ition\nFail ure\nemon ic\nĠfl ared\nĠclaim ant\nĠc ures\nĠgive aways\nĠSubst ance\nal ions\nĠcr inge\nĠK ul\nĠarist ocracy\nĠUl ster\nol ated\nh ousing\nĠM IS\nĠgl ared\nĠWil helm\nne eds\nlam bda\nbuild ers\nĠV IS\nĠradi ator\nĠGhost busters\nĠ4 36\nact ual\nĠher ds\nÃ§ a\nwatch ing\nĠcounter ing\nCh arge\nĠchar red\nĠwar heads\nĠiod ine\nĠM acy\n04 1\nĠdepart ures\nĠS ins\nĠdy ed\nĠConcept s\ng ado\n7 13\nĠquot ations\nĠg ist\nĠChrist y\nĠant igen\nĠHem p\nĠD rawn\nĠB arg\nez vous\nĠp aternity\nĠar du\nĠAnch orage\nĠR ik\nĠover loaded\nĠUs ername\nĠTam my\nĠN au\nĠCell ular\nĠw aning\nĠrod ent\nĠWor cester\nil ts\nĠT ad\nĠdwell ings\nĠbull ish\n4 31\nĠretali ate\nĠmig raine\nĠChev ron\nCH ECK\nĠdon key\nc rim\nSP A\nĠAn alog\nĠmarqu ee\nĠHa as\nB ir\nĠGD DR\nĠDownload s\nĠwill power\nĠFor th\nĠRecord ed\nĠimp ossibility\nĠLog ged\nĠFr anks\nĠR att\nin itions\nĠclean ers\nĠsore ly\nĠflick ering\nĠEx amination\nc atching\nallow een\nMs g\nĠdun no\nF a\nĠdys ph\nc razy\n.' '.\nĠmain line\nĠc s\nĠp tr\nĠW ally\nig un\n95 1\nĠBig foot\nf ights\nĠretrie ving\nJ r\nĠdupl ication\nĠExpl an\nĠrel ational\nĠqu aint\nĠbisc uits\nĠad o\nĠsh udder\nĠantid ote\nblood ed\nks h\nĠsa uces\nĠrein vest\nĠdispens ary\nĠD iver\nĠ9 000\nstud ent\nĠin separ\nesc ap\nĠtodd lers\nĠGP IO\nĠAss ignment\nhead ers\nĠlack luster\nĠab ack\n95 6\nĠtool bar\n7 45\nĠo ust\nĠcontempl ation\nĠPRES IDENT\nĠ4 58\n==== ==\nĠguarantee ing\nĠHe ist\nĠCann es\nĻ ½\nĠcollabor ator\nĠAm p\nĠg ou\nĠSH ALL\nst ories\n78 3\nĠmobil ized\nĠbro od\nĠL U\nĠðŁ ĳ\nĠref in\nĠAnthrop ology\nv ind\nill i\nĠwarrant ies\nĠB abel\nĠsw ath\nĠc aches\nĠantagon ists\nart ifacts\nĠhot ly\nĠSt arts\nĠG Ã¶\nz ag\n!! !!!\nĠsc ourge\nĠcons piring\nru its\nre verse\nĠShe en\nĠJes uit\nĠGiov anni\nad ies\nĠbutt ocks\near cher\nac an\nĠvolley ball\nĠshroud ed\nĠscore board\nb ats\nĠI PM\nĠass es\nĠde regulation\nĠTe legram\nĠReb oot\nĠ7 000\nĠCan ary\nĠk ernels\nĠFranÃ§ ois\nĠD uff\nĠP on\nĠLe ica\nĠGar min\nĠor phans\nĠClaud ia\nĠcal endars\nĠLe ilan\nent o\nR ocket\nĠbr unch\nĠHaw king\nain ers\nĠsens ibilities\nĠk W\nĠK and\nĠre claimed\nĠinteresting ly\n× ©\nrom y\nJ M\nĠEnhance ment\nb ush\nSk ip\nĠrapp ers\nĠg azing\np edia\nath lon\nRev olution\nĠsn ipers\nĠre verted\nĠconglomer ate\nT erry\n79 4\nĠhars her\nĠdes olate\nĠHit man\nComm ission\nĠ( /\nâĢ¦ .\"\nCom par\nĠampl ification\nom inated\nĠreg ress\nĠColl ider\nĠinform ants\nĠg azed\n"
  },
  {
    "path": "codegeex/tokenizer/special_tokens_map.json",
    "content": "{\"bos_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true}, \"eos_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true}, \"unk_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true}}\n"
  },
  {
    "path": "codegeex/tokenizer/tokenizer.py",
    "content": "import numpy as np\nfrom typing import *\nfrom transformers import AutoTokenizer\nfrom transformers.models.gpt2 import GPT2TokenizerFast\n\n\ndef encode_whitespaces(text: str, start_extra_id: int, max_len: int):\n    \"\"\" Encode whitespaces to extra tokens.\n\n    >>> encode_whitespaces('a\\\\n  b\\\\n   c', 10, 10)\n    'a\\\\n<|extratoken_10|>b\\\\n<|extratoken_11|>c'\n    \"\"\"\n    for i in np.arange(max_len, 1, -1):\n        text = text.replace(\" \" * i, f\"<|extratoken_{start_extra_id + i - 2}|>\")\n    return text\n\n\ndef decode_whitespaces(text: str, start_extra_id: int, max_len: int):\n    \"\"\" Decode the whitespace-encoded strings produced by encode_whitespace.\n\n    >>> text = 'a\\\\n  b\\\\n   c'\n    >>> s, l = 10, 10\n    >>> text == decode_whitespaces(encode_whitespaces(text, s, l), s, l)\n    True\n    \"\"\"\n    for l in range(2, max_len + 1):\n        token_id = start_extra_id - 2 + l\n        token = f'<|extratoken_{token_id}|>'\n        text = text.replace(token, ' ' * l)\n    return text\n\n    \nclass CodeGeeXTokenizer(object):\n    def __init__(\n        self, \n        tokenizer: GPT2TokenizerFast = None, \n        tokenizer_path: str = \"EleutherAI/gpt-j-6B\", \n        start_extra_id: int = 10,\n        max_len : int = 10,\n        mode='codegeex-13b',\n        dict_file: str = None,\n    ):\n        self.tokenizer = tokenizer if tokenizer is not None else AutoTokenizer.from_pretrained(tokenizer_path)\n        if mode not in ['codegeex-13b']:\n            raise ValueError(f\"Invalid mode {mode}, choose from ['codegeex-13b']\")\n        self.start_extra_id = start_extra_id\n        self.max_len = max_len\n        self.mode = mode\n        self.eos_token_id = self.tokenizer.eos_token_id\n        \n    def encode_code(self, code: str):\n        if self.mode == 'codegeex-13b':\n            code = encode_whitespaces(code, self.start_extra_id, self.max_len)\n            input_ids = self.tokenizer(code, is_split_into_words=False, verbose=False).input_ids\n            \n        return input_ids\n    \n    def decode_code(self, input_ids):\n        if self.mode == 'codegeex-13b':\n            text = self.tokenizer.decode(input_ids, skip_special_tokens=False, verbose=False)\n            output_code = decode_whitespaces(text, self.start_extra_id, self.max_len)\n        \n        return output_code"
  },
  {
    "path": "codegeex/tokenizer/tokenizer_config.json",
    "content": "{\"unk_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true, \"__type\": \"AddedToken\"}, \"bos_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true, \"__type\": \"AddedToken\"}, \"eos_token\": {\"content\": \"<|endoftext|>\", \"single_word\": false, \"lstrip\": false, \"rstrip\": false, \"normalized\": true, \"__type\": \"AddedToken\"}, \"add_prefix_space\": false, \"errors\": \"replace\", \"model_max_length\": 2048, \"special_tokens_map_file\": null, \"name_or_path\": \"gpt-j-6B\", \"from_slow\": true, \"tokenizer_class\": \"GPT2Tokenizer\"}\n"
  },
  {
    "path": "codegeex/tokenizer/vocab.json",
    "content": "{\"!\": 0, \"\\\"\": 1, \"#\": 2, \"$\": 3, \"%\": 4, \"&\": 5, \"'\": 6, \"(\": 7, \")\": 8, \"*\": 9, \"+\": 10, \",\": 11, \"-\": 12, \".\": 13, \"/\": 14, \"0\": 15, \"1\": 16, \"2\": 17, \"3\": 18, \"4\": 19, \"5\": 20, \"6\": 21, \"7\": 22, \"8\": 23, \"9\": 24, \":\": 25, \";\": 26, \"<\": 27, \"=\": 28, \">\": 29, \"?\": 30, \"@\": 31, \"A\": 32, \"B\": 33, \"C\": 34, \"D\": 35, \"E\": 36, \"F\": 37, \"G\": 38, \"H\": 39, \"I\": 40, \"J\": 41, \"K\": 42, \"L\": 43, \"M\": 44, \"N\": 45, \"O\": 46, \"P\": 47, \"Q\": 48, \"R\": 49, \"S\": 50, \"T\": 51, \"U\": 52, \"V\": 53, \"W\": 54, \"X\": 55, \"Y\": 56, \"Z\": 57, \"[\": 58, \"\\\\\": 59, \"]\": 60, \"^\": 61, \"_\": 62, \"`\": 63, \"a\": 64, \"b\": 65, \"c\": 66, \"d\": 67, \"e\": 68, \"f\": 69, \"g\": 70, \"h\": 71, \"i\": 72, \"j\": 73, \"k\": 74, \"l\": 75, \"m\": 76, \"n\": 77, \"o\": 78, \"p\": 79, \"q\": 80, \"r\": 81, \"s\": 82, \"t\": 83, \"u\": 84, \"v\": 85, \"w\": 86, \"x\": 87, \"y\": 88, \"z\": 89, \"{\": 90, \"|\": 91, \"}\": 92, \"~\": 93, \"\\u00a1\": 94, \"\\u00a2\": 95, \"\\u00a3\": 96, \"\\u00a4\": 97, \"\\u00a5\": 98, \"\\u00a6\": 99, \"\\u00a7\": 100, \"\\u00a8\": 101, \"\\u00a9\": 102, \"\\u00aa\": 103, \"\\u00ab\": 104, \"\\u00ac\": 105, \"\\u00ae\": 106, \"\\u00af\": 107, \"\\u00b0\": 108, \"\\u00b1\": 109, \"\\u00b2\": 110, \"\\u00b3\": 111, \"\\u00b4\": 112, \"\\u00b5\": 113, \"\\u00b6\": 114, \"\\u00b7\": 115, \"\\u00b8\": 116, \"\\u00b9\": 117, \"\\u00ba\": 118, \"\\u00bb\": 119, \"\\u00bc\": 120, \"\\u00bd\": 121, \"\\u00be\": 122, \"\\u00bf\": 123, \"\\u00c0\": 124, \"\\u00c1\": 125, \"\\u00c2\": 126, \"\\u00c3\": 127, \"\\u00c4\": 128, \"\\u00c5\": 129, \"\\u00c6\": 130, \"\\u00c7\": 131, \"\\u00c8\": 132, \"\\u00c9\": 133, \"\\u00ca\": 134, \"\\u00cb\": 135, \"\\u00cc\": 136, \"\\u00cd\": 137, \"\\u00ce\": 138, \"\\u00cf\": 139, \"\\u00d0\": 140, \"\\u00d1\": 141, \"\\u00d2\": 142, \"\\u00d3\": 143, \"\\u00d4\": 144, \"\\u00d5\": 145, \"\\u00d6\": 146, \"\\u00d7\": 147, \"\\u00d8\": 148, \"\\u00d9\": 149, \"\\u00da\": 150, \"\\u00db\": 151, \"\\u00dc\": 152, \"\\u00dd\": 153, \"\\u00de\": 154, \"\\u00df\": 155, \"\\u00e0\": 156, \"\\u00e1\": 157, \"\\u00e2\": 158, \"\\u00e3\": 159, \"\\u00e4\": 160, \"\\u00e5\": 161, \"\\u00e6\": 162, \"\\u00e7\": 163, \"\\u00e8\": 164, \"\\u00e9\": 165, \"\\u00ea\": 166, \"\\u00eb\": 167, \"\\u00ec\": 168, \"\\u00ed\": 169, \"\\u00ee\": 170, \"\\u00ef\": 171, \"\\u00f0\": 172, \"\\u00f1\": 173, \"\\u00f2\": 174, \"\\u00f3\": 175, \"\\u00f4\": 176, \"\\u00f5\": 177, \"\\u00f6\": 178, \"\\u00f7\": 179, \"\\u00f8\": 180, \"\\u00f9\": 181, \"\\u00fa\": 182, \"\\u00fb\": 183, \"\\u00fc\": 184, \"\\u00fd\": 185, \"\\u00fe\": 186, \"\\u00ff\": 187, \"\\u0100\": 188, \"\\u0101\": 189, \"\\u0102\": 190, \"\\u0103\": 191, \"\\u0104\": 192, \"\\u0105\": 193, \"\\u0106\": 194, \"\\u0107\": 195, \"\\u0108\": 196, \"\\u0109\": 197, \"\\u010a\": 198, \"\\u010b\": 199, \"\\u010c\": 200, \"\\u010d\": 201, \"\\u010e\": 202, \"\\u010f\": 203, \"\\u0110\": 204, \"\\u0111\": 205, \"\\u0112\": 206, \"\\u0113\": 207, \"\\u0114\": 208, \"\\u0115\": 209, \"\\u0116\": 210, \"\\u0117\": 211, \"\\u0118\": 212, \"\\u0119\": 213, \"\\u011a\": 214, \"\\u011b\": 215, \"\\u011c\": 216, \"\\u011d\": 217, \"\\u011e\": 218, \"\\u011f\": 219, \"\\u0120\": 220, \"\\u0121\": 221, \"\\u0122\": 222, \"\\u0123\": 223, \"\\u0124\": 224, \"\\u0125\": 225, \"\\u0126\": 226, \"\\u0127\": 227, \"\\u0128\": 228, \"\\u0129\": 229, \"\\u012a\": 230, \"\\u012b\": 231, \"\\u012c\": 232, \"\\u012d\": 233, \"\\u012e\": 234, \"\\u012f\": 235, \"\\u0130\": 236, \"\\u0131\": 237, \"\\u0132\": 238, \"\\u0133\": 239, \"\\u0134\": 240, \"\\u0135\": 241, \"\\u0136\": 242, \"\\u0137\": 243, \"\\u0138\": 244, \"\\u0139\": 245, \"\\u013a\": 246, \"\\u013b\": 247, \"\\u013c\": 248, \"\\u013d\": 249, \"\\u013e\": 250, \"\\u013f\": 251, \"\\u0140\": 252, \"\\u0141\": 253, \"\\u0142\": 254, \"\\u0143\": 255, \"\\u0120t\": 256, \"\\u0120a\": 257, \"he\": 258, \"in\": 259, \"re\": 260, \"on\": 261, \"\\u0120the\": 262, \"er\": 263, \"\\u0120s\": 264, \"at\": 265, \"\\u0120w\": 266, \"\\u0120o\": 267, \"en\": 268, \"\\u0120c\": 269, \"it\": 270, \"is\": 271, \"an\": 272, \"or\": 273, \"es\": 274, \"\\u0120b\": 275, \"ed\": 276, \"\\u0120f\": 277, \"ing\": 278, \"\\u0120p\": 279, \"ou\": 280, \"\\u0120an\": 281, \"al\": 282, \"ar\": 283, \"\\u0120to\": 284, \"\\u0120m\": 285, \"\\u0120of\": 286, \"\\u0120in\": 287, \"\\u0120d\": 288, \"\\u0120h\": 289, \"\\u0120and\": 290, \"ic\": 291, \"as\": 292, \"le\": 293, \"\\u0120th\": 294, \"ion\": 295, \"om\": 296, \"ll\": 297, \"ent\": 298, \"\\u0120n\": 299, \"\\u0120l\": 300, \"st\": 301, \"\\u0120re\": 302, \"ve\": 303, \"\\u0120e\": 304, \"ro\": 305, \"ly\": 306, \"\\u0120be\": 307, \"\\u0120g\": 308, \"\\u0120T\": 309, \"ct\": 310, \"\\u0120S\": 311, \"id\": 312, \"ot\": 313, \"\\u0120I\": 314, \"ut\": 315, \"et\": 316, \"\\u0120A\": 317, \"\\u0120is\": 318, \"\\u0120on\": 319, \"im\": 320, \"am\": 321, \"ow\": 322, \"ay\": 323, \"ad\": 324, \"se\": 325, \"\\u0120that\": 326, \"\\u0120C\": 327, \"ig\": 328, \"\\u0120for\": 329, \"ac\": 330, \"\\u0120y\": 331, \"ver\": 332, \"ur\": 333, \"\\u0120u\": 334, \"ld\": 335, \"\\u0120st\": 336, \"\\u0120M\": 337, \"'s\": 338, \"\\u0120he\": 339, \"\\u0120it\": 340, \"ation\": 341, \"ith\": 342, \"ir\": 343, \"ce\": 344, \"\\u0120you\": 345, \"il\": 346, \"\\u0120B\": 347, \"\\u0120wh\": 348, \"ol\": 349, \"\\u0120P\": 350, \"\\u0120with\": 351, \"\\u01201\": 352, \"ter\": 353, \"ch\": 354, \"\\u0120as\": 355, \"\\u0120we\": 356, \"\\u0120(\": 357, \"nd\": 358, \"ill\": 359, \"\\u0120D\": 360, \"if\": 361, \"\\u01202\": 362, \"ag\": 363, \"ers\": 364, \"ke\": 365, \"\\u0120\\\"\": 366, \"\\u0120H\": 367, \"em\": 368, \"\\u0120con\": 369, \"\\u0120W\": 370, \"\\u0120R\": 371, \"her\": 372, \"\\u0120was\": 373, \"\\u0120r\": 374, \"od\": 375, \"\\u0120F\": 376, \"ul\": 377, \"ate\": 378, \"\\u0120at\": 379, \"ri\": 380, \"pp\": 381, \"ore\": 382, \"\\u0120The\": 383, \"\\u0120se\": 384, \"us\": 385, \"\\u0120pro\": 386, \"\\u0120ha\": 387, \"um\": 388, \"\\u0120are\": 389, \"\\u0120de\": 390, \"ain\": 391, \"and\": 392, \"\\u0120or\": 393, \"igh\": 394, \"est\": 395, \"ist\": 396, \"ab\": 397, \"rom\": 398, \"\\u0120N\": 399, \"th\": 400, \"\\u0120com\": 401, \"\\u0120G\": 402, \"un\": 403, \"op\": 404, \"00\": 405, \"\\u0120L\": 406, \"\\u0120not\": 407, \"ess\": 408, \"\\u0120ex\": 409, \"\\u0120v\": 410, \"res\": 411, \"\\u0120E\": 412, \"ew\": 413, \"ity\": 414, \"ant\": 415, \"\\u0120by\": 416, \"el\": 417, \"os\": 418, \"ort\": 419, \"oc\": 420, \"qu\": 421, \"\\u0120from\": 422, \"\\u0120have\": 423, \"\\u0120su\": 424, \"ive\": 425, \"ould\": 426, \"\\u0120sh\": 427, \"\\u0120this\": 428, \"nt\": 429, \"ra\": 430, \"pe\": 431, \"ight\": 432, \"art\": 433, \"ment\": 434, \"\\u0120al\": 435, \"ust\": 436, \"end\": 437, \"--\": 438, \"all\": 439, \"\\u0120O\": 440, \"ack\": 441, \"\\u0120ch\": 442, \"\\u0120le\": 443, \"ies\": 444, \"red\": 445, \"ard\": 446, \"\\u00e2\\u0122\": 447, \"out\": 448, \"\\u0120J\": 449, \"\\u0120ab\": 450, \"ear\": 451, \"iv\": 452, \"ally\": 453, \"our\": 454, \"ost\": 455, \"gh\": 456, \"pt\": 457, \"\\u0120pl\": 458, \"ast\": 459, \"\\u0120can\": 460, \"ak\": 461, \"ome\": 462, \"ud\": 463, \"The\": 464, \"\\u0120his\": 465, \"\\u0120do\": 466, \"\\u0120go\": 467, \"\\u0120has\": 468, \"ge\": 469, \"'t\": 470, \"\\u0120U\": 471, \"rou\": 472, \"\\u0120sa\": 473, \"\\u0120j\": 474, \"\\u0120but\": 475, \"\\u0120wor\": 476, \"\\u0120all\": 477, \"ect\": 478, \"\\u0120k\": 479, \"ame\": 480, \"\\u0120will\": 481, \"ok\": 482, \"\\u0120whe\": 483, \"\\u0120they\": 484, \"ide\": 485, \"01\": 486, \"ff\": 487, \"ich\": 488, \"pl\": 489, \"ther\": 490, \"\\u0120tr\": 491, \"..\": 492, \"\\u0120int\": 493, \"ie\": 494, \"ure\": 495, \"age\": 496, \"\\u0120ne\": 497, \"ial\": 498, \"ap\": 499, \"ine\": 500, \"ice\": 501, \"\\u0120me\": 502, \"\\u0120out\": 503, \"ans\": 504, \"one\": 505, \"ong\": 506, \"ions\": 507, \"\\u0120who\": 508, \"\\u0120K\": 509, \"\\u0120up\": 510, \"\\u0120their\": 511, \"\\u0120ad\": 512, \"\\u01203\": 513, \"\\u0120us\": 514, \"ated\": 515, \"ous\": 516, \"\\u0120more\": 517, \"ue\": 518, \"og\": 519, \"\\u0120St\": 520, \"ind\": 521, \"ike\": 522, \"\\u0120so\": 523, \"ime\": 524, \"per\": 525, \".\\\"\": 526, \"ber\": 527, \"iz\": 528, \"act\": 529, \"\\u0120one\": 530, \"\\u0120said\": 531, \"\\u0120-\": 532, \"are\": 533, \"\\u0120your\": 534, \"cc\": 535, \"\\u0120Th\": 536, \"\\u0120cl\": 537, \"ep\": 538, \"ake\": 539, \"able\": 540, \"ip\": 541, \"\\u0120cont\": 542, \"\\u0120which\": 543, \"ia\": 544, \"\\u0120im\": 545, \"\\u0120about\": 546, \"\\u0120were\": 547, \"very\": 548, \"ub\": 549, \"\\u0120had\": 550, \"\\u0120en\": 551, \"\\u0120comp\": 552, \",\\\"\": 553, \"\\u0120In\": 554, \"\\u0120un\": 555, \"\\u0120ag\": 556, \"ire\": 557, \"ace\": 558, \"au\": 559, \"ary\": 560, \"\\u0120would\": 561, \"ass\": 562, \"ry\": 563, \"\\u0120\\u00e2\\u0122\": 564, \"cl\": 565, \"ook\": 566, \"ere\": 567, \"so\": 568, \"\\u0120V\": 569, \"ign\": 570, \"ib\": 571, \"\\u0120off\": 572, \"\\u0120te\": 573, \"ven\": 574, \"\\u0120Y\": 575, \"ile\": 576, \"ose\": 577, \"ite\": 578, \"orm\": 579, \"\\u0120201\": 580, \"\\u0120res\": 581, \"\\u0120man\": 582, \"\\u0120per\": 583, \"\\u0120other\": 584, \"ord\": 585, \"ult\": 586, \"\\u0120been\": 587, \"\\u0120like\": 588, \"ase\": 589, \"ance\": 590, \"ks\": 591, \"ays\": 592, \"own\": 593, \"ence\": 594, \"\\u0120dis\": 595, \"ction\": 596, \"\\u0120any\": 597, \"\\u0120app\": 598, \"\\u0120sp\": 599, \"int\": 600, \"ress\": 601, \"ations\": 602, \"ail\": 603, \"\\u01204\": 604, \"ical\": 605, \"\\u0120them\": 606, \"\\u0120her\": 607, \"ount\": 608, \"\\u0120Ch\": 609, \"\\u0120ar\": 610, \"\\u0120if\": 611, \"\\u0120there\": 612, \"\\u0120pe\": 613, \"\\u0120year\": 614, \"av\": 615, \"\\u0120my\": 616, \"\\u0120some\": 617, \"\\u0120when\": 618, \"ough\": 619, \"ach\": 620, \"\\u0120than\": 621, \"ru\": 622, \"ond\": 623, \"ick\": 624, \"\\u0120over\": 625, \"vel\": 626, \"\\u0120qu\": 627, \"\\u010a\\u010a\": 628, \"\\u0120sc\": 629, \"reat\": 630, \"ree\": 631, \"\\u0120It\": 632, \"ound\": 633, \"port\": 634, \"\\u0120also\": 635, \"\\u0120part\": 636, \"fter\": 637, \"\\u0120kn\": 638, \"\\u0120bec\": 639, \"\\u0120time\": 640, \"ens\": 641, \"\\u01205\": 642, \"ople\": 643, \"\\u0120what\": 644, \"\\u0120no\": 645, \"du\": 646, \"mer\": 647, \"ang\": 648, \"\\u0120new\": 649, \"----\": 650, \"\\u0120get\": 651, \"ory\": 652, \"ition\": 653, \"ings\": 654, \"\\u0120just\": 655, \"\\u0120into\": 656, \"\\u01200\": 657, \"ents\": 658, \"ove\": 659, \"te\": 660, \"\\u0120people\": 661, \"\\u0120pre\": 662, \"\\u0120its\": 663, \"\\u0120rec\": 664, \"\\u0120tw\": 665, \"ian\": 666, \"irst\": 667, \"ark\": 668, \"ors\": 669, \"\\u0120work\": 670, \"ade\": 671, \"ob\": 672, \"\\u0120she\": 673, \"\\u0120our\": 674, \"wn\": 675, \"ink\": 676, \"lic\": 677, \"\\u012019\": 678, \"\\u0120He\": 679, \"ish\": 680, \"nder\": 681, \"ause\": 682, \"\\u0120him\": 683, \"ons\": 684, \"\\u0120[\": 685, \"\\u0120ro\": 686, \"form\": 687, \"ild\": 688, \"ates\": 689, \"vers\": 690, \"\\u0120only\": 691, \"oll\": 692, \"\\u0120spe\": 693, \"ck\": 694, \"ell\": 695, \"amp\": 696, \"\\u0120acc\": 697, \"\\u0120bl\": 698, \"ious\": 699, \"urn\": 700, \"ft\": 701, \"ood\": 702, \"\\u0120how\": 703, \"hed\": 704, \"\\u0120'\": 705, \"\\u0120after\": 706, \"aw\": 707, \"\\u0120att\": 708, \"ov\": 709, \"ne\": 710, \"\\u0120play\": 711, \"erv\": 712, \"ict\": 713, \"\\u0120could\": 714, \"itt\": 715, \"\\u0120am\": 716, \"\\u0120first\": 717, \"\\u01206\": 718, \"\\u0120act\": 719, \"\\u0120$\": 720, \"ec\": 721, \"hing\": 722, \"ual\": 723, \"ull\": 724, \"\\u0120comm\": 725, \"oy\": 726, \"old\": 727, \"ces\": 728, \"ater\": 729, \"\\u0120fe\": 730, \"\\u0120bet\": 731, \"we\": 732, \"iff\": 733, \"\\u0120two\": 734, \"ock\": 735, \"\\u0120back\": 736, \").\": 737, \"ident\": 738, \"\\u0120under\": 739, \"rough\": 740, \"sel\": 741, \"xt\": 742, \"\\u0120may\": 743, \"round\": 744, \"\\u0120po\": 745, \"ph\": 746, \"iss\": 747, \"\\u0120des\": 748, \"\\u0120most\": 749, \"\\u0120did\": 750, \"\\u0120add\": 751, \"ject\": 752, \"\\u0120inc\": 753, \"fore\": 754, \"\\u0120pol\": 755, \"ont\": 756, \"\\u0120again\": 757, \"clud\": 758, \"tern\": 759, \"\\u0120know\": 760, \"\\u0120need\": 761, \"\\u0120cons\": 762, \"\\u0120co\": 763, \"\\u0120.\": 764, \"\\u0120want\": 765, \"\\u0120see\": 766, \"\\u01207\": 767, \"ning\": 768, \"iew\": 769, \"\\u0120This\": 770, \"ced\": 771, \"\\u0120even\": 772, \"\\u0120ind\": 773, \"ty\": 774, \"\\u0120We\": 775, \"ath\": 776, \"\\u0120these\": 777, \"\\u0120pr\": 778, \"\\u0120use\": 779, \"\\u0120because\": 780, \"\\u0120fl\": 781, \"ng\": 782, \"\\u0120now\": 783, \"\\u0120\\u00e2\\u0122\\u0135\": 784, \"com\": 785, \"ise\": 786, \"\\u0120make\": 787, \"\\u0120then\": 788, \"ower\": 789, \"\\u0120every\": 790, \"\\u0120Un\": 791, \"\\u0120sec\": 792, \"oss\": 793, \"uch\": 794, \"\\u0120em\": 795, \"\\u0120=\": 796, \"\\u0120Re\": 797, \"ied\": 798, \"rit\": 799, \"\\u0120inv\": 800, \"lect\": 801, \"\\u0120supp\": 802, \"ating\": 803, \"\\u0120look\": 804, \"man\": 805, \"pect\": 806, \"\\u01208\": 807, \"row\": 808, \"\\u0120bu\": 809, \"\\u0120where\": 810, \"ific\": 811, \"\\u0120years\": 812, \"ily\": 813, \"\\u0120diff\": 814, \"\\u0120should\": 815, \"\\u0120rem\": 816, \"Th\": 817, \"In\": 818, \"\\u0120ev\": 819, \"day\": 820, \"'re\": 821, \"rib\": 822, \"\\u0120rel\": 823, \"ss\": 824, \"\\u0120def\": 825, \"\\u0120right\": 826, \"\\u0120sy\": 827, \"),\": 828, \"les\": 829, \"000\": 830, \"hen\": 831, \"\\u0120through\": 832, \"\\u0120Tr\": 833, \"__\": 834, \"\\u0120way\": 835, \"\\u0120don\": 836, \"\\u0120,\": 837, \"\\u012010\": 838, \"ased\": 839, \"\\u0120ass\": 840, \"ublic\": 841, \"\\u0120reg\": 842, \"\\u0120And\": 843, \"ix\": 844, \"\\u0120very\": 845, \"\\u0120includ\": 846, \"other\": 847, \"\\u0120imp\": 848, \"oth\": 849, \"\\u0120sub\": 850, \"\\u0120\\u00e2\\u0122\\u0136\": 851, \"\\u0120being\": 852, \"arg\": 853, \"\\u0120Wh\": 854, \"==\": 855, \"ible\": 856, \"\\u0120does\": 857, \"ange\": 858, \"ram\": 859, \"\\u01209\": 860, \"ert\": 861, \"ps\": 862, \"ited\": 863, \"ational\": 864, \"\\u0120br\": 865, \"\\u0120down\": 866, \"\\u0120many\": 867, \"aking\": 868, \"\\u0120call\": 869, \"uring\": 870, \"ities\": 871, \"\\u0120ph\": 872, \"ics\": 873, \"als\": 874, \"\\u0120dec\": 875, \"ative\": 876, \"ener\": 877, \"\\u0120before\": 878, \"ility\": 879, \"\\u0120well\": 880, \"\\u0120much\": 881, \"erson\": 882, \"\\u0120those\": 883, \"\\u0120such\": 884, \"\\u0120ke\": 885, \"\\u0120end\": 886, \"\\u0120But\": 887, \"ason\": 888, \"ting\": 889, \"\\u0120long\": 890, \"ef\": 891, \"\\u0120think\": 892, \"ys\": 893, \"\\u0120bel\": 894, \"\\u0120sm\": 895, \"its\": 896, \"ax\": 897, \"\\u0120own\": 898, \"\\u0120prov\": 899, \"\\u0120set\": 900, \"ife\": 901, \"ments\": 902, \"ble\": 903, \"ward\": 904, \"\\u0120show\": 905, \"\\u0120pres\": 906, \"ms\": 907, \"omet\": 908, \"\\u0120ob\": 909, \"\\u0120say\": 910, \"\\u0120Sh\": 911, \"ts\": 912, \"ful\": 913, \"\\u0120eff\": 914, \"\\u0120gu\": 915, \"\\u0120inst\": 916, \"und\": 917, \"ren\": 918, \"cess\": 919, \"\\u0120ent\": 920, \"\\u0120You\": 921, \"\\u0120good\": 922, \"\\u0120start\": 923, \"ince\": 924, \"\\u0120made\": 925, \"tt\": 926, \"stem\": 927, \"olog\": 928, \"up\": 929, \"\\u0120|\": 930, \"ump\": 931, \"\\u0120hel\": 932, \"vern\": 933, \"ular\": 934, \"ually\": 935, \"\\u0120ac\": 936, \"\\u0120mon\": 937, \"\\u0120last\": 938, \"\\u0120200\": 939, \"10\": 940, \"\\u0120stud\": 941, \"ures\": 942, \"\\u0120Ar\": 943, \"self\": 944, \"ars\": 945, \"meric\": 946, \"ues\": 947, \"cy\": 948, \"\\u0120min\": 949, \"ollow\": 950, \"\\u0120col\": 951, \"io\": 952, \"\\u0120mod\": 953, \"\\u0120count\": 954, \"\\u0120Com\": 955, \"hes\": 956, \"\\u0120fin\": 957, \"air\": 958, \"ier\": 959, \"\\u00e2\\u0122\\u0136\": 960, \"read\": 961, \"ank\": 962, \"atch\": 963, \"ever\": 964, \"\\u0120str\": 965, \"\\u0120point\": 966, \"ork\": 967, \"\\u0120New\": 968, \"\\u0120sur\": 969, \"ool\": 970, \"alk\": 971, \"ement\": 972, \"\\u0120used\": 973, \"ract\": 974, \"ween\": 975, \"\\u0120same\": 976, \"oun\": 977, \"\\u0120Al\": 978, \"ci\": 979, \"\\u0120differe\": 980, \"\\u0120while\": 981, \"--------\": 982, \"\\u0120game\": 983, \"cept\": 984, \"\\u0120sim\": 985, \"...\": 986, \"\\u0120inter\": 987, \"ek\": 988, \"\\u0120report\": 989, \"\\u0120produ\": 990, \"\\u0120still\": 991, \"led\": 992, \"ah\": 993, \"\\u0120here\": 994, \"\\u0120world\": 995, \"\\u0120though\": 996, \"\\u0120num\": 997, \"arch\": 998, \"imes\": 999, \"ale\": 1000, \"\\u0120Se\": 1001, \"\\u0120If\": 1002, \"//\": 1003, \"\\u0120Le\": 1004, \"\\u0120ret\": 1005, \"\\u0120ref\": 1006, \"\\u0120trans\": 1007, \"ner\": 1008, \"ution\": 1009, \"ters\": 1010, \"\\u0120take\": 1011, \"\\u0120Cl\": 1012, \"\\u0120conf\": 1013, \"way\": 1014, \"ave\": 1015, \"\\u0120going\": 1016, \"\\u0120sl\": 1017, \"ug\": 1018, \"\\u0120Americ\": 1019, \"\\u0120spec\": 1020, \"\\u0120hand\": 1021, \"\\u0120between\": 1022, \"ists\": 1023, \"\\u0120De\": 1024, \"oot\": 1025, \"It\": 1026, \"\\u0120ear\": 1027, \"\\u0120against\": 1028, \"\\u0120high\": 1029, \"gan\": 1030, \"az\": 1031, \"ather\": 1032, \"\\u0120exp\": 1033, \"\\u0120op\": 1034, \"\\u0120ins\": 1035, \"\\u0120gr\": 1036, \"\\u0120help\": 1037, \"\\u0120requ\": 1038, \"ets\": 1039, \"ins\": 1040, \"\\u0120Pro\": 1041, \"ism\": 1042, \"\\u0120found\": 1043, \"land\": 1044, \"ata\": 1045, \"uss\": 1046, \"ames\": 1047, \"\\u0120person\": 1048, \"\\u0120great\": 1049, \"pr\": 1050, \"\\u0120sign\": 1051, \"\\u0120An\": 1052, \"'ve\": 1053, \"\\u0120somet\": 1054, \"\\u0120ser\": 1055, \"hip\": 1056, \"\\u0120run\": 1057, \"\\u0120:\": 1058, \"\\u0120ter\": 1059, \"irect\": 1060, \"\\u0120follow\": 1061, \"\\u0120det\": 1062, \"ices\": 1063, \"\\u0120find\": 1064, \"12\": 1065, \"\\u0120mem\": 1066, \"\\u0120cr\": 1067, \"ered\": 1068, \"ex\": 1069, \"\\u0120ext\": 1070, \"uth\": 1071, \"ense\": 1072, \"co\": 1073, \"\\u0120team\": 1074, \"ving\": 1075, \"ouse\": 1076, \"ash\": 1077, \"att\": 1078, \"ved\": 1079, \"\\u0120system\": 1080, \"\\u0120As\": 1081, \"der\": 1082, \"ives\": 1083, \"min\": 1084, \"\\u0120lead\": 1085, \"\\u0120Bl\": 1086, \"cent\": 1087, \"\\u0120around\": 1088, \"\\u0120govern\": 1089, \"\\u0120cur\": 1090, \"velop\": 1091, \"any\": 1092, \"\\u0120cour\": 1093, \"alth\": 1094, \"ages\": 1095, \"ize\": 1096, \"\\u0120car\": 1097, \"ode\": 1098, \"\\u0120law\": 1099, \"\\u0120read\": 1100, \"'m\": 1101, \"con\": 1102, \"\\u0120real\": 1103, \"\\u0120support\": 1104, \"\\u012012\": 1105, \"....\": 1106, \"\\u0120really\": 1107, \"ness\": 1108, \"\\u0120fact\": 1109, \"\\u0120day\": 1110, \"\\u0120both\": 1111, \"ying\": 1112, \"\\u0120serv\": 1113, \"\\u0120For\": 1114, \"\\u0120three\": 1115, \"\\u0120wom\": 1116, \"\\u0120med\": 1117, \"ody\": 1118, \"\\u0120They\": 1119, \"50\": 1120, \"\\u0120exper\": 1121, \"ton\": 1122, \"\\u0120each\": 1123, \"akes\": 1124, \"\\u0120che\": 1125, \"\\u0120cre\": 1126, \"ines\": 1127, \"\\u0120rep\": 1128, \"19\": 1129, \"gg\": 1130, \"illion\": 1131, \"\\u0120grou\": 1132, \"ute\": 1133, \"ik\": 1134, \"We\": 1135, \"get\": 1136, \"ER\": 1137, \"\\u0120met\": 1138, \"\\u0120says\": 1139, \"ox\": 1140, \"\\u0120during\": 1141, \"ern\": 1142, \"ized\": 1143, \"ared\": 1144, \"\\u0120fam\": 1145, \"ically\": 1146, \"\\u0120happ\": 1147, \"\\u0120Is\": 1148, \"\\u0120char\": 1149, \"med\": 1150, \"vent\": 1151, \"\\u0120gener\": 1152, \"ient\": 1153, \"ple\": 1154, \"iet\": 1155, \"rent\": 1156, \"11\": 1157, \"ves\": 1158, \"ption\": 1159, \"\\u012020\": 1160, \"formation\": 1161, \"\\u0120cor\": 1162, \"\\u0120offic\": 1163, \"ield\": 1164, \"\\u0120too\": 1165, \"ision\": 1166, \"\\u0120inf\": 1167, \"\\u0120Z\": 1168, \"the\": 1169, \"oad\": 1170, \"\\u0120public\": 1171, \"\\u0120prog\": 1172, \"ric\": 1173, \"**\": 1174, \"\\u0120war\": 1175, \"\\u0120power\": 1176, \"view\": 1177, \"\\u0120few\": 1178, \"\\u0120loc\": 1179, \"\\u0120different\": 1180, \"\\u0120state\": 1181, \"\\u0120head\": 1182, \"'ll\": 1183, \"\\u0120poss\": 1184, \"\\u0120stat\": 1185, \"ret\": 1186, \"ants\": 1187, \"\\u0120val\": 1188, \"\\u0120iss\": 1189, \"\\u0120cle\": 1190, \"ivers\": 1191, \"anc\": 1192, \"\\u0120expl\": 1193, \"\\u0120another\": 1194, \"\\u0120Q\": 1195, \"\\u0120av\": 1196, \"thing\": 1197, \"nce\": 1198, \"Wh\": 1199, \"\\u0120child\": 1200, \"\\u0120since\": 1201, \"ired\": 1202, \"less\": 1203, \"\\u0120life\": 1204, \"\\u0120develop\": 1205, \"ittle\": 1206, \"\\u0120dep\": 1207, \"\\u0120pass\": 1208, \"\\u00e3\\u0125\": 1209, \"\\u0120turn\": 1210, \"orn\": 1211, \"This\": 1212, \"bers\": 1213, \"ross\": 1214, \"\\u0120Ad\": 1215, \"\\u0120fr\": 1216, \"\\u0120resp\": 1217, \"\\u0120second\": 1218, \"oh\": 1219, \"\\u0120/\": 1220, \"\\u0120disc\": 1221, \"\\u0120&\": 1222, \"\\u0120something\": 1223, \"\\u0120comple\": 1224, \"\\u0120ed\": 1225, \"\\u0120fil\": 1226, \"\\u0120month\": 1227, \"aj\": 1228, \"uc\": 1229, \"\\u0120government\": 1230, \"\\u0120without\": 1231, \"\\u0120leg\": 1232, \"\\u0120dist\": 1233, \"\\u0120put\": 1234, \"\\u0120quest\": 1235, \"ann\": 1236, \"\\u0120prot\": 1237, \"20\": 1238, \"\\u0120never\": 1239, \"ience\": 1240, \"\\u0120level\": 1241, \"\\u0120art\": 1242, \"\\u0120things\": 1243, \"\\u0120might\": 1244, \"\\u0120effect\": 1245, \"\\u0120contro\": 1246, \"\\u0120cent\": 1247, \"\\u012018\": 1248, \"\\u0120allow\": 1249, \"\\u0120belie\": 1250, \"chool\": 1251, \"ott\": 1252, \"\\u0120incre\": 1253, \"\\u0120feel\": 1254, \"\\u0120result\": 1255, \"\\u0120lot\": 1256, \"\\u0120fun\": 1257, \"ote\": 1258, \"\\u0120ty\": 1259, \"erest\": 1260, \"\\u0120contin\": 1261, \"\\u0120using\": 1262, \"\\u0120big\": 1263, \"201\": 1264, \"\\u0120ask\": 1265, \"\\u0120best\": 1266, \"\\u0120)\": 1267, \"IN\": 1268, \"\\u0120opp\": 1269, \"30\": 1270, \"\\u0120number\": 1271, \"iness\": 1272, \"St\": 1273, \"lease\": 1274, \"\\u0120ca\": 1275, \"\\u0120must\": 1276, \"\\u0120direct\": 1277, \"\\u0120gl\": 1278, \"\\u0120<\": 1279, \"\\u0120open\": 1280, \"\\u0120post\": 1281, \"\\u0120come\": 1282, \"\\u0120seem\": 1283, \"ording\": 1284, \"\\u0120week\": 1285, \"ately\": 1286, \"ital\": 1287, \"\\u0120el\": 1288, \"riend\": 1289, \"\\u0120far\": 1290, \"\\u0120tra\": 1291, \"inal\": 1292, \"\\u0120pri\": 1293, \"\\u0120US\": 1294, \"\\u0120place\": 1295, \"\\u0120form\": 1296, \"\\u0120told\": 1297, \"\\\":\": 1298, \"ains\": 1299, \"ature\": 1300, \"\\u0120Trump\": 1301, \"\\u0120stand\": 1302, \"\\u0120#\": 1303, \"ider\": 1304, \"\\u0120Fr\": 1305, \"\\u0120next\": 1306, \"\\u0120soc\": 1307, \"\\u0120pur\": 1308, \"\\u0120let\": 1309, \"\\u0120little\": 1310, \"\\u0120hum\": 1311, \"\\u0120i\": 1312, \"ron\": 1313, \"15\": 1314, \"\\u012015\": 1315, \"\\u0120commun\": 1316, \"\\u0120mark\": 1317, \"\\u0120There\": 1318, \"\\u0120wr\": 1319, \"\\u0120That\": 1320, \"\\u0120information\": 1321, \"ways\": 1322, \"\\u0120bus\": 1323, \"app\": 1324, \"\\u0120invest\": 1325, \"me\": 1326, \"\\u0120hard\": 1327, \"ained\": 1328, \"ead\": 1329, \"\\u0120import\": 1330, \"\\u0120appro\": 1331, \"\\u0120test\": 1332, \"\\u0120tri\": 1333, \"\\u0120rest\": 1334, \"osed\": 1335, \"\\u0120full\": 1336, \"\\u0120care\": 1337, \"\\u0120Sp\": 1338, \"\\u0120case\": 1339, \"ON\": 1340, \"\\u0120sk\": 1341, \"\\u0120less\": 1342, \"\\u0120+\": 1343, \"\\u0120partic\": 1344, \"\\u0120Pl\": 1345, \"ably\": 1346, \"uck\": 1347, \"ished\": 1348, \"chn\": 1349, \"be\": 1350, \"\\u0120list\": 1351, \"ator\": 1352, \"\\u0120top\": 1353, \"\\u0120adv\": 1354, \"\\u0120Be\": 1355, \"ruct\": 1356, \"\\u0120dem\": 1357, \"ration\": 1358, \"ling\": 1359, \"gy\": 1360, \"reen\": 1361, \"ger\": 1362, \"\\u0120home\": 1363, \"\\u0120left\": 1364, \"\\u0120better\": 1365, \"\\u0120data\": 1366, \"\\u012011\": 1367, \"\\u0120attack\": 1368, \"\\u0120proble\": 1369, \"line\": 1370, \"ards\": 1371, \"\\u0120beh\": 1372, \"ral\": 1373, \"\\u0120How\": 1374, \"\\u0120She\": 1375, \"arge\": 1376, \"\\u0120--\": 1377, \"://\": 1378, \"\\u0120bro\": 1379, \"\\u0120Ph\": 1380, \"ats\": 1381, \"\\u0120build\": 1382, \"ww\": 1383, \"ided\": 1384, \"aim\": 1385, \"ases\": 1386, \"ency\": 1387, \"\\u0120main\": 1388, \"ined\": 1389, \"\\u0120including\": 1390, \"\\u0120{\": 1391, \"\\u0120got\": 1392, \"\\u0120interest\": 1393, \"\\u0120keep\": 1394, \"\\u0120X\": 1395, \"\\u0120eas\": 1396, \"aining\": 1397, \"\\u0120class\": 1398, \"\\u00e2\\u0122\\u00a6\": 1399, \"\\u0120No\": 1400, \"\\u0120var\": 1401, \"\\u0120small\": 1402, \"ample\": 1403, \"AT\": 1404, \"\\u0120ide\": 1405, \"\\u0120So\": 1406, \"\\u0120rece\": 1407, \"\\u0120polit\": 1408, \"\\u0120mov\": 1409, \"\\u0120plan\": 1410, \"\\u0120percent\": 1411, \"iving\": 1412, \"\\u0120camp\": 1413, \"\\u0120pay\": 1414, \"14\": 1415, \"sc\": 1416, \"ised\": 1417, \"\\u0120unt\": 1418, \"oney\": 1419, \"ploy\": 1420, \"====\": 1421, \"\\u0120didn\": 1422, \"\\u0120Ind\": 1423, \"els\": 1424, \"ertain\": 1425, \"\\u0120pos\": 1426, \"____\": 1427, \"iver\": 1428, \"\\u0120process\": 1429, \"\\u0120program\": 1430, \"ified\": 1431, \"\\u0120Rep\": 1432, \"16\": 1433, \"uro\": 1434, \"ology\": 1435, \"atter\": 1436, \"ina\": 1437, \"\\u0120name\": 1438, \"\\u0120All\": 1439, \"\\u0120four\": 1440, \"\\u0120return\": 1441, \"vious\": 1442, \"bs\": 1443, \"\\u0120called\": 1444, \"\\u0120move\": 1445, \"\\u0120Sc\": 1446, \"ird\": 1447, \"\\u0120group\": 1448, \"\\u0120bre\": 1449, \"\\u0120men\": 1450, \"\\u0120cap\": 1451, \"ten\": 1452, \"ee\": 1453, \"\\u0120dri\": 1454, \"leg\": 1455, \"here\": 1456, \"uthor\": 1457, \"\\u0120pat\": 1458, \"\\u0120current\": 1459, \"ides\": 1460, \"\\u0120pop\": 1461, \"to\": 1462, \"ention\": 1463, \"\\u0120always\": 1464, \"\\u0120mil\": 1465, \"\\u0120women\": 1466, \"\\u012016\": 1467, \"\\u0120old\": 1468, \"iven\": 1469, \"raph\": 1470, \"\\u0120Or\": 1471, \"ror\": 1472, \"ently\": 1473, \"\\u0120near\": 1474, \"\\u0120Ex\": 1475, \"ream\": 1476, \"sh\": 1477, \"\\u012014\": 1478, \"\\u0120free\": 1479, \"ission\": 1480, \"stand\": 1481, \"\\u0120Con\": 1482, \"ality\": 1483, \"used\": 1484, \"13\": 1485, \"\\u0120design\": 1486, \"\\u0120change\": 1487, \"\\u0120chang\": 1488, \"\\u0120bo\": 1489, \"\\u0120vis\": 1490, \"ember\": 1491, \"\\u0120book\": 1492, \"ready\": 1493, \"\\u0120kill\": 1494, \"25\": 1495, \"pped\": 1496, \"\\u0120away\": 1497, \"\\u0120able\": 1498, \"\\u0120country\": 1499, \"\\u0120const\": 1500, \"arn\": 1501, \"\\u0120order\": 1502, \"AR\": 1503, \"ior\": 1504, \"ium\": 1505, \"orth\": 1506, \"18\": 1507, \"ailable\": 1508, \"\\u0120sw\": 1509, \"\\u0120million\": 1510, \"\\u012013\": 1511, \"atic\": 1512, \"ted\": 1513, \"\\u0120Go\": 1514, \"\\u0120oper\": 1515, \"eng\": 1516, \"\\u0120thing\": 1517, \"ajor\": 1518, \"conom\": 1519, \"\\u0120Comm\": 1520, \"\\u0120why\": 1521, \"ured\": 1522, \"ural\": 1523, \"\\u0120school\": 1524, \"by\": 1525, \"\\u0120Mar\": 1526, \"\\u0120aff\": 1527, \"\\u0120days\": 1528, \"\\u0120ann\": 1529, \"ush\": 1530, \"ane\": 1531, \"If\": 1532, \"eg\": 1533, \"\\u0120prof\": 1534, \"\\u0120health\": 1535, \"outh\": 1536, \"But\": 1537, \"ional\": 1538, \".,\": 1539, \"\\u0120sol\": 1540, \"\\u0120already\": 1541, \"\\u012030\": 1542, \"\\u0120charact\": 1543, \"He\": 1544, \"\\u0120friend\": 1545, \"ES\": 1546, \"ians\": 1547, \"icle\": 1548, \"'d\": 1549, \"\\u0120On\": 1550, \"\\u0120least\": 1551, \"\\u0120prom\": 1552, \"\\u0120dr\": 1553, \"\\u0120hist\": 1554, \"ither\": 1555, \"\\u0120est\": 1556, \"iqu\": 1557, \"17\": 1558, \"son\": 1559, \"\\u0120tell\": 1560, \"\\u0120talk\": 1561, \"ohn\": 1562, \"oint\": 1563, \"lection\": 1564, \"AN\": 1565, \"\\u0120until\": 1566, \"augh\": 1567, \"\\u0120later\": 1568, \"\\u0120ve\": 1569, \"\\u0120view\": 1570, \"ending\": 1571, \"ived\": 1572, \"\\u0120word\": 1573, \"ware\": 1574, \"\\u0120cost\": 1575, \"\\u0120enough\": 1576, \"\\u0120give\": 1577, \"\\u0120United\": 1578, \"\\u0120techn\": 1579, \"arent\": 1580, \"OR\": 1581, \"\\u0120par\": 1582, \"\\u0120Dr\": 1583, \"\\u01202016\": 1584, \"rist\": 1585, \"ering\": 1586, \"\\u0120\\u00c2\": 1587, \"\\u0120large\": 1588, \"side\": 1589, \"acy\": 1590, \"ccess\": 1591, \"\\u0120win\": 1592, \"\\u0120important\": 1593, \"\\u0120199\": 1594, \"\\u0120doesn\": 1595, \"\\u012017\": 1596, \"\\u0120business\": 1597, \"\\u0120clear\": 1598, \"\\u0120rese\": 1599, \"\\\",\": 1600, \"ury\": 1601, \"\\u0120equ\": 1602, \"aster\": 1603, \"alf\": 1604, \"\\u0120American\": 1605, \"nect\": 1606, \"\\u0120expect\": 1607, \"iversity\": 1608, \"\\u0120occ\": 1609, \"\\u0120Fl\": 1610, \"\\u0120kind\": 1611, \"\\u0120mean\": 1612, \"\\u0120past\": 1613, \"\\u0120dev\": 1614, \"\\u0120bas\": 1615, \"let\": 1616, \"raft\": 1617, \"\\u0120organ\": 1618, \"\\u0120del\": 1619, \"\\u0120perform\": 1620, \"\\u0120story\": 1621, \"\\u0120season\": 1622, \"\\u0120Col\": 1623, \"\\u0120claim\": 1624, \"\\u0120came\": 1625, \"\\u0120within\": 1626, \"\\u0120line\": 1627, \"\\u0120project\": 1628, \"\\u0120At\": 1629, \"\\u0120control\": 1630, \"ended\": 1631, \"\\u0120Sy\": 1632, \"\\u0120air\": 1633, \"ization\": 1634, \"\\u0120*\": 1635, \"ley\": 1636, \"\\u0120money\": 1637, \"idd\": 1638, \"You\": 1639, \"for\": 1640, \"\\u0120family\": 1641, \"\\u0120making\": 1642, \"\\u0120bit\": 1643, \"\\u0120police\": 1644, \"\\u0120happen\": 1645, \"\\u0120vers\": 1646, \"ony\": 1647, \"uff\": 1648, \"\\u0120When\": 1649, \"\\u0120sit\": 1650, \"ideo\": 1651, \"lf\": 1652, \"ison\": 1653, \"\\u0120sure\": 1654, \"gin\": 1655, \"\\u0120appear\": 1656, \"\\u0120light\": 1657, \"\\u0120es\": 1658, \"of\": 1659, \"\\u0120water\": 1660, \"\\u0120times\": 1661, \"not\": 1662, \"\\u0120grow\": 1663, \"\\u0120company\": 1664, \"\\u0120Te\": 1665, \"ows\": 1666, \"\\u0120mar\": 1667, \"ource\": 1668, \"iol\": 1669, \"arm\": 1670, \"br\": 1671, \"\\u0120example\": 1672, \"\\u0120conc\": 1673, \"\\u0120fore\": 1674, \"\\u0120To\": 1675, \"pro\": 1676, \"EN\": 1677, \"ries\": 1678, \"\\u012025\": 1679, \"\\u0120Can\": 1680, \"ney\": 1681, \"\\u0120actually\": 1682, \"\\u0120ever\": 1683, \"urity\": 1684, \"aken\": 1685, \"aps\": 1686, \"\\u0120tax\": 1687, \"\\u0120major\": 1688, \"ama\": 1689, \"\\u0120often\": 1690, \"eral\": 1691, \"\\u0120human\": 1692, \"\\u0120job\": 1693, \"ister\": 1694, \"\\u0120available\": 1695, \"ocr\": 1696, \"enn\": 1697, \"aid\": 1698, \"ivid\": 1699, \"\\u0120record\": 1700, \"?\\\"\": 1701, \"\\u0120sing\": 1702, \"\\u0120Am\": 1703, \"idence\": 1704, \"\\u0120news\": 1705, \"ster\": 1706, \"\\u0120econom\": 1707, \"\\u0120following\": 1708, \"\\u0120Br\": 1709, \"ising\": 1710, \"\\u0120hour\": 1711, \"most\": 1712, \"ument\": 1713, \"\\u0120sex\": 1714, \"\\u0120desc\": 1715, \"\\u0120become\": 1716, \"\\u0120Ed\": 1717, \"\\u0120took\": 1718, \"\\u0120having\": 1719, \"\\u0120product\": 1720, \"ault\": 1721, \"As\": 1722, \"aring\": 1723, \"\\u0120means\": 1724, \"\\u0120hop\": 1725, \"une\": 1726, \"\\u0120cho\": 1727, \"\\u0120certain\": 1728, \"\\u0120non\": 1729, \"\\u0120deal\": 1730, \"24\": 1731, \"lement\": 1732, \"oci\": 1733, \"ene\": 1734, \"\\u0120side\": 1735, \"\\u0120Pr\": 1736, \"\\u0120May\": 1737, \"\\u0120reason\": 1738, \"ued\": 1739, \"ched\": 1740, \"ulation\": 1741, \"\\u0120elect\": 1742, \"\\u0120official\": 1743, \"\\u0120possible\": 1744, \"\\u0120hold\": 1745, \"ands\": 1746, \"ots\": 1747, \"\\u0120city\": 1748, \"ories\": 1749, \"\\u0120sever\": 1750, \"\\u0120children\": 1751, \"\\u0120once\": 1752, \"\\u0120activ\": 1753, \"ler\": 1754, \"\\u0120night\": 1755, \"itions\": 1756, \"\\u0120John\": 1757, \"ape\": 1758, \"play\": 1759, \"\\u0120done\": 1760, \"\\u0120lim\": 1761, \"\\u0120working\": 1762, \"\\u0120Pres\": 1763, \"orld\": 1764, \"eb\": 1765, \"\\u0120Co\": 1766, \"\\u0120body\": 1767, \"ails\": 1768, \"utes\": 1769, \"\\u0120Mr\": 1770, \"\\u0120whether\": 1771, \"\\u0120author\": 1772, \"rop\": 1773, \"\\u0120proper\": 1774, \"\\u0120seen\": 1775, \");\": 1776, \"\\u0120fac\": 1777, \"\\u0120Su\": 1778, \"\\u0120cond\": 1779, \"iting\": 1780, \"\\u0120course\": 1781, \"\\u0120}\": 1782, \"----------------\": 1783, \"aign\": 1784, \"\\u0120event\": 1785, \"\\u0120eng\": 1786, \"\\u0120pot\": 1787, \"\\u0120intern\": 1788, \"iam\": 1789, \"\\u0120short\": 1790, \"empt\": 1791, \"\\u00e3\\u0124\": 1792, \"\\u0120God\": 1793, \"ilar\": 1794, \"80\": 1795, \"\\u0120orig\": 1796, \"IS\": 1797, \"ourn\": 1798, \"ability\": 1799, \"itive\": 1800, \"\\u0120dam\": 1801, \"\\u0120100\": 1802, \"\\u0120press\": 1803, \"\\u0120doing\": 1804, \"\\u0120protect\": 1805, \"ring\": 1806, \"\\u0120thought\": 1807, \"\\u0120question\": 1808, \"rew\": 1809, \"\\u0120War\": 1810, \"\\u0120several\": 1811, \"\\u0120State\": 1812, \"\\u0120given\": 1813, \"\\u0120fund\": 1814, \"\\u0120Tw\": 1815, \"\\u0120went\": 1816, \"ances\": 1817, \"work\": 1818, \"por\": 1819, \"my\": 1820, \"40\": 1821, \"\\u0120arg\": 1822, \"artment\": 1823, \"ustom\": 1824, \"\\u0120polic\": 1825, \"\\u0120meet\": 1826, \"\\u0120creat\": 1827, \"22\": 1828, \"\\u0120States\": 1829, \"\\u0120games\": 1830, \"raw\": 1831, \"uture\": 1832, \"\\u0120understand\": 1833, \"urs\": 1834, \"\\u0120Ob\": 1835, \"lish\": 1836, \"sy\": 1837, \"\\u0120makes\": 1838, \"\\u0120won\": 1839, \"agon\": 1840, \"\\u0120htt\": 1841, \"\\u0120love\": 1842, \"ential\": 1843, \"\\u0120complete\": 1844, \"par\": 1845, \"\\u0120Im\": 1846, \"AL\": 1847, \"\\u0120account\": 1848, \"\\u00c2\\u0142\": 1849, \"ored\": 1850, \"vert\": 1851, \"\\u0120ident\": 1852, \"\\u01202015\": 1853, \"\\u0120others\": 1854, \"\\u0120Min\": 1855, \"iber\": 1856, \"verage\": 1857, \"There\": 1858, \"itional\": 1859, \"dd\": 1860, \"\\u0120prob\": 1861, \"\\u0120young\": 1862, \"\\u0120along\": 1863, \"\\u0120according\": 1864, \"\\u0120yet\": 1865, \"\\u0120members\": 1866, \"\\u0120What\": 1867, \"oid\": 1868, \"\\u0120Man\": 1869, \"And\": 1870, \"\\u0120among\": 1871, \"ai\": 1872, \"\\u0120employ\": 1873, \"\\u0120Res\": 1874, \"\\u0120>\": 1875, \"\\u0120invol\": 1876, \"\\u0120low\": 1877, \"af\": 1878, \"\\u0120Car\": 1879, \"\\u0120hig\": 1880, \"\\u0120One\": 1881, \"\\u0120Sec\": 1882, \"ination\": 1883, \"\\u0120likely\": 1884, \"\\u0120ant\": 1885, \"aged\": 1886, \"\\u0120Russ\": 1887, \"\\u0120ben\": 1888, \"\\u0120rele\": 1889, \"For\": 1890, \"back\": 1891, \"\\u0120Not\": 1892, \"\\u0120president\": 1893, \"ball\": 1894, \"\\u0120access\": 1895, \"ividual\": 1896, \"\\u0120Dem\": 1897, \"\\u0120Euro\": 1898, \"60\": 1899, \"\\u0120known\": 1900, \"irl\": 1901, \"\\u0120Gr\": 1902, \"\\u0120early\": 1903, \"use\": 1904, \"iety\": 1905, \"\\u00e2\\u0122\\u0135\": 1906, \"\\u0120fight\": 1907, \"\\u0120sent\": 1908, \"\\u0120today\": 1909, \"\\u0120market\": 1910, \"\\\".\": 1911, \"\\u0120based\": 1912, \"\\u0120strong\": 1913, \"urther\": 1914, \"\\u0120deb\": 1915, \"mber\": 1916, \"\\u0120problem\": 1917, \"\\u0120death\": 1918, \"\\u0120social\": 1919, \"imate\": 1920, \"AS\": 1921, \"ortun\": 1922, \"\\u0120campaign\": 1923, \"ery\": 1924, \"Ch\": 1925, \"\\u0120ey\": 1926, \"ially\": 1927, \"\\u0120mus\": 1928, \"wh\": 1929, \"pos\": 1930, \"\\u0120er\": 1931, \"\\u0120saf\": 1932, \"\\u0120months\": 1933, \"iron\": 1934, \"\\u0120viol\": 1935, \"\\u0120five\": 1936, \"\\u0120stre\": 1937, \"\\u0120players\": 1938, \"inc\": 1939, \"ald\": 1940, \"year\": 1941, \"aun\": 1942, \"\\u0120success\": 1943, \"\\u0120present\": 1944, \"erence\": 1945, \"\\u01202014\": 1946, \"\\u0120sugg\": 1947, \"\\u0120particular\": 1948, \"\\u0120try\": 1949, \"\\u0120suggest\": 1950, \"\\u0120Christ\": 1951, \"ones\": 1952, \"\\u0120priv\": 1953, \"23\": 1954, \"\\u0120crit\": 1955, \"\\u0120land\": 1956, \"\\u0120local\": 1957, \"ify\": 1958, \"29\": 1959, \"\\u0120aut\": 1960, \"ED\": 1961, \"\\u0120Gu\": 1962, \"\\u0120mult\": 1963, \"\\u0120political\": 1964, \"\\u0120asked\": 1965, \"\\u0120former\": 1966, \"itter\": 1967, \"ript\": 1968, \"\\u0120close\": 1969, \"\\u0120pract\": 1970, \"\\u0120York\": 1971, \"\\u0120getting\": 1972, \"\\u0120across\": 1973, \"\\u0120comb\": 1974, \"\\u0120believe\": 1975, \"\\u0120z\": 1976, \"\\u0120toget\": 1977, \"\\u0120together\": 1978, \"\\u0120Cent\": 1979, \"irc\": 1980, \"\\u0120individual\": 1981, \"\\u0120Mc\": 1982, \"27\": 1983, \"isk\": 1984, \"\\u0120Eng\": 1985, \"\\u0120face\": 1986, \"\\u012024\": 1987, \"\\u0120value\": 1988, \"\\u0120area\": 1989, \"ev\": 1990, \"\\u0120writ\": 1991, \"\\u0120President\": 1992, \"\\u0120vot\": 1993, \"\\u0120key\": 1994, \"\\u0120mom\": 1995, \"put\": 1996, \"\\u0120anything\": 1997, \"\\u0120experience\": 1998, \"attle\": 1999, \"\\u0120mind\": 2000, \"aff\": 2001, \"omm\": 2002, \"\\u0120future\": 2003, \"ged\": 2004, \"\\u0120cut\": 2005, \"\\u0120tot\": 2006, \"itch\": 2007, \"\\u0120video\": 2008, \"\\u0120investig\": 2009, \"\\u0120net\": 2010, \"\\u0120My\": 2011, \"rict\": 2012, \"ien\": 2013, \".)\": 2014, \"\\u0120impro\": 2015, \"though\": 2016, \"wards\": 2017, \"\\u0120connect\": 2018, \"\\u0120Med\": 2019, \"selves\": 2020, \"ensive\": 2021, \"mb\": 2022, \"ober\": 2023, \"ators\": 2024, \"An\": 2025, \"\\u012050\": 2026, \"\\u0120redu\": 2027, \"resent\": 2028, \"\\u0120above\": 2029, \"\\u0120fre\": 2030, \"\\u0120Europe\": 2031, \"sw\": 2032, \"\\u0120amount\": 2033, \"\\u0120App\": 2034, \"\\u0120either\": 2035, \"\\u0120milit\": 2036, \"\\u0120anal\": 2037, \"\\u0120fail\": 2038, \"\\u0120En\": 2039, \"ales\": 2040, \"\\u0120special\": 2041, \"\\u0120black\": 2042, \"IT\": 2043, \"cher\": 2044, \"\\u0120looking\": 2045, \"\\u0120fire\": 2046, \"yn\": 2047, \"\\u0120almost\": 2048, \"oon\": 2049, \"\\u0120study\": 2050, \"\\u0120miss\": 2051, \"ches\": 2052, \"rown\": 2053, \"\\u0120tre\": 2054, \"\\u0120community\": 2055, \"\\u0120media\": 2056, \"\\u0120food\": 2057, \"\\u0120comes\": 2058, \"\\u0120University\": 2059, \"\\u0120single\": 2060, \"What\": 2061, \"uly\": 2062, \"\\u0120half\": 2063, \"ague\": 2064, \"hod\": 2065, \"\\u0120Republic\": 2066, \"\\u0120started\": 2067, \"\\u0120quick\": 2068, \"oto\": 2069, \"book\": 2070, \"\\u0120issue\": 2071, \"itor\": 2072, \"\\u0120else\": 2073, \"\\u0120consider\": 2074, \"26\": 2075, \"rodu\": 2076, \"\\u0120taken\": 2077, \"28\": 2078, \"99\": 2079, \"\\u0120With\": 2080, \"\\u0120true\": 2081, \"\\u0120wa\": 2082, \"\\u0120trad\": 2083, \"\\u0120ago\": 2084, \"\\u0120mess\": 2085, \"ief\": 2086, \"\\u0120added\": 2087, \"oke\": 2088, \"\\u0120bad\": 2089, \"\\u0120fav\": 2090, \"33\": 2091, \"\\u0120similar\": 2092, \"ask\": 2093, \"\\u0120Don\": 2094, \"\\u0120character\": 2095, \"orts\": 2096, \"\\u0120House\": 2097, \"\\u0120reported\": 2098, \"\\u0120type\": 2099, \"val\": 2100, \"iod\": 2101, \"\\u0120However\": 2102, \"\\u0120targ\": 2103, \"\\u0120entire\": 2104, \"pping\": 2105, \"\\u0120history\": 2106, \"\\u0120live\": 2107, \"ffic\": 2108, \"........\": 2109, \"ederal\": 2110, \"\\u0120trying\": 2111, \"\\u0120discuss\": 2112, \"\\u0120Har\": 2113, \"aces\": 2114, \"lished\": 2115, \"\\u0120self\": 2116, \"osp\": 2117, \"rest\": 2118, \"\\u0120room\": 2119, \"elt\": 2120, \"\\u0120fall\": 2121, \"olution\": 2122, \"\\u0120et\": 2123, \"\\u0120x\": 2124, \"\\u0120isn\": 2125, \"\\u0120idea\": 2126, \"bo\": 2127, \"\\u0120sound\": 2128, \"\\u0120Dep\": 2129, \"\\u0120someone\": 2130, \"cially\": 2131, \"ully\": 2132, \"\\u0120foc\": 2133, \"\\u0120object\": 2134, \"ift\": 2135, \"aper\": 2136, \"\\u0120player\": 2137, \"\\u0120rather\": 2138, \"\\u0120service\": 2139, \"ashing\": 2140, \"\\u0120Do\": 2141, \"\\u0120Part\": 2142, \"rug\": 2143, \"mon\": 2144, \"ply\": 2145, \"\\u0120mor\": 2146, \"\\u0120nothing\": 2147, \"\\u0120provide\": 2148, \"IC\": 2149, \"ung\": 2150, \"\\u0120party\": 2151, \"\\u0120exist\": 2152, \"\\u0120mag\": 2153, \"70\": 2154, \"\\u0120rul\": 2155, \"\\u0120house\": 2156, \"\\u0120behind\": 2157, \"\\u0120however\": 2158, \"\\u0120World\": 2159, \"\\u0120sum\": 2160, \"\\u0120applic\": 2161, \"\\u0120;\": 2162, \"\\u0120function\": 2163, \"gr\": 2164, \"\\u0120Pol\": 2165, \"\\u0120front\": 2166, \"200\": 2167, \"\\u0120series\": 2168, \"\\u0120tem\": 2169, \"\\u0120typ\": 2170, \"ills\": 2171, \"\\u0120opt\": 2172, \"\\u0120points\": 2173, \"\\u0120below\": 2174, \"itted\": 2175, \"\\u0120specific\": 2176, \"\\u01202017\": 2177, \"umb\": 2178, \"\\u0120ra\": 2179, \"\\u0120previous\": 2180, \"\\u0120pret\": 2181, \"reme\": 2182, \"\\u0120custom\": 2183, \"\\u0120court\": 2184, \"\\u0120Me\": 2185, \"\\u0120repl\": 2186, \"\\u0120whole\": 2187, \"go\": 2188, \"cer\": 2189, \"\\u0120treat\": 2190, \"\\u0120Act\": 2191, \"\\u0120probably\": 2192, \"\\u0120learn\": 2193, \"ender\": 2194, \"\\u0120Ass\": 2195, \"\\u0120version\": 2196, \"now\": 2197, \"\\u0120check\": 2198, \"\\u0120Cal\": 2199, \"RE\": 2200, \"minist\": 2201, \"On\": 2202, \"ources\": 2203, \"\\u0120benef\": 2204, \"\\u0120doc\": 2205, \"\\u0120deter\": 2206, \"\\u0120enc\": 2207, \"\\u0120super\": 2208, \"\\u0120address\": 2209, \"\\u0120vict\": 2210, \"\\u01202013\": 2211, \"\\u0120meas\": 2212, \"tr\": 2213, \"\\u0120field\": 2214, \"When\": 2215, \"\\u0120signific\": 2216, \"uge\": 2217, \"\\u0120feat\": 2218, \"\\u0120common\": 2219, \"load\": 2220, \"\\u0120begin\": 2221, \"\\u0120bring\": 2222, \"\\u0120action\": 2223, \"erman\": 2224, \"\\u0120describ\": 2225, \"\\u0120indust\": 2226, \"\\u0120wanted\": 2227, \"ried\": 2228, \"ming\": 2229, \"\\u0120attempt\": 2230, \"45\": 2231, \"fer\": 2232, \"\\u0120due\": 2233, \"ression\": 2234, \"##\": 2235, \"\\u0120shall\": 2236, \"\\u0120six\": 2237, \"oo\": 2238, \"\\u0120step\": 2239, \"\\u0120pub\": 2240, \"\\u0120himself\": 2241, \"\\u012023\": 2242, \"\\u0120cop\": 2243, \"\\u0120dest\": 2244, \"\\u0120stop\": 2245, \"AC\": 2246, \"ibility\": 2247, \"\\u0120lab\": 2248, \"icult\": 2249, \"\\u0120hours\": 2250, \"\\u0120create\": 2251, \"\\u0120further\": 2252, \"\\u0120America\": 2253, \"\\u0120City\": 2254, \"\\u0120dou\": 2255, \"head\": 2256, \"ST\": 2257, \"\\u0120North\": 2258, \"cing\": 2259, \"\\u0120national\": 2260, \"ule\": 2261, \"\\u0120Inst\": 2262, \"\\u0120taking\": 2263, \"\\u0120Qu\": 2264, \"irt\": 2265, \"\\u0120red\": 2266, \"\\u0120research\": 2267, \"viron\": 2268, \"\\u0120Ge\": 2269, \"\\u0120break\": 2270, \"ana\": 2271, \"\\u0120space\": 2272, \"aterial\": 2273, \"\\u0120recent\": 2274, \"\\u0120Ab\": 2275, \"\\u0120general\": 2276, \"\\u0120hit\": 2277, \"\\u0120period\": 2278, \"\\u0120everything\": 2279, \"ively\": 2280, \"\\u0120phys\": 2281, \"\\u0120saying\": 2282, \"anks\": 2283, \"\\u0120cou\": 2284, \"\\u0120cult\": 2285, \"aced\": 2286, \"eal\": 2287, \"uation\": 2288, \"\\u0120coun\": 2289, \"lu\": 2290, \"\\u0120include\": 2291, \"\\u0120position\": 2292, \"\\u0120After\": 2293, \"\\u0120Canad\": 2294, \"\\u0120Em\": 2295, \"\\u0120imm\": 2296, \"\\u0120Red\": 2297, \"\\u0120pick\": 2298, \"\\u0120compl\": 2299, \"\\u0120matter\": 2300, \"reg\": 2301, \"ext\": 2302, \"angu\": 2303, \"isc\": 2304, \"ole\": 2305, \"aut\": 2306, \"\\u0120compet\": 2307, \"eed\": 2308, \"fect\": 2309, \"\\u012021\": 2310, \"\\u0120Sen\": 2311, \"\\u0120These\": 2312, \"asing\": 2313, \"\\u0120cannot\": 2314, \"\\u0120init\": 2315, \"\\u0120relations\": 2316, \"ached\": 2317, \"\\u0120bar\": 2318, \"\\u012040\": 2319, \"\\u0120TH\": 2320, \"\\u01202012\": 2321, \"\\u0120vol\": 2322, \"\\u0120ground\": 2323, \"\\u0120security\": 2324, \"\\u0120upd\": 2325, \"ilt\": 2326, \"35\": 2327, \"\\u0120concern\": 2328, \"\\u0120Just\": 2329, \"\\u0120white\": 2330, \"\\u0120seems\": 2331, \"\\u0120Her\": 2332, \"pecially\": 2333, \"ients\": 2334, \"\\u0120announ\": 2335, \"\\u0120fig\": 2336, \"ights\": 2337, \"\\u0120stri\": 2338, \"like\": 2339, \"ids\": 2340, \"\\u0120sus\": 2341, \"\\u0120watch\": 2342, \"\\u0120\\u00e2\": 2343, \"\\u0120wind\": 2344, \"\\u0120Cont\": 2345, \"\\u0120itself\": 2346, \"\\u0120mass\": 2347, \"Al\": 2348, \"yle\": 2349, \"ique\": 2350, \"\\u0120National\": 2351, \"\\u0120abs\": 2352, \"\\u0120pack\": 2353, \"\\u0120outside\": 2354, \"\\u0120anim\": 2355, \"\\u0120pain\": 2356, \"eter\": 2357, \"\\u0120manag\": 2358, \"duct\": 2359, \"ogn\": 2360, \"\\u0120]\": 2361, \"\\u0120Sept\": 2362, \"sec\": 2363, \"off\": 2364, \"\\u0120Jan\": 2365, \"\\u0120foot\": 2366, \"ades\": 2367, \"\\u0120third\": 2368, \"\\u0120mot\": 2369, \"\\u0120evidence\": 2370, \"inton\": 2371, \"\\u0120threat\": 2372, \"apt\": 2373, \"ples\": 2374, \"cle\": 2375, \"\\u0120lo\": 2376, \"\\u0120decl\": 2377, \"\\u0120item\": 2378, \"medi\": 2379, \"\\u0120represent\": 2380, \"omb\": 2381, \"amer\": 2382, \"\\u0120significant\": 2383, \"ograph\": 2384, \"su\": 2385, \"\\u0120cal\": 2386, \"ires\": 2387, \"0000\": 2388, \"ID\": 2389, \"AM\": 2390, \"\\u0120simply\": 2391, \"\\u0120longer\": 2392, \"\\u0120file\": 2393, \"OT\": 2394, \"che\": 2395, \"So\": 2396, \"ateg\": 2397, \"org\": 2398, \"\\u0120His\": 2399, \"\\u0120ener\": 2400, \"\\u0120dom\": 2401, \"\\u0120upon\": 2402, \"ili\": 2403, \"\\\":\\\"\": 2404, \"\\u0120themselves\": 2405, \"\\u0120coming\": 2406, \"\\u0120quite\": 2407, \"\\u0120difficult\": 2408, \"\\u0120Bar\": 2409, \"ilities\": 2410, \"rel\": 2411, \"ends\": 2412, \"cial\": 2413, \"64\": 2414, \"\\u0120woman\": 2415, \"rap\": 2416, \"yr\": 2417, \"\\u0120necess\": 2418, \"ips\": 2419, \"\\u0120text\": 2420, \"\\u0120require\": 2421, \"\\u0120military\": 2422, \"\\u0120review\": 2423, \"\\u0120respons\": 2424, \"75\": 2425, \"\\u0120subject\": 2426, \"\\u0120instead\": 2427, \"\\u0120issues\": 2428, \"\\u0120gen\": 2429, \"\\\",\\\"\": 2430, \"\\u0120minutes\": 2431, \"\\u0120weap\": 2432, \"ray\": 2433, \"amed\": 2434, \"time\": 2435, \"bl\": 2436, \"How\": 2437, \"\\u0120code\": 2438, \"\\u0120Sm\": 2439, \"\\u0120higher\": 2440, \"\\u0120Ste\": 2441, \"ris\": 2442, \"\\u0120page\": 2443, \"\\u0120students\": 2444, \"\\u0120Intern\": 2445, \"\\u0120method\": 2446, \"\\u0120Aug\": 2447, \"\\u0120Per\": 2448, \"\\u0120Ag\": 2449, \"\\u0120policy\": 2450, \"\\u0120Sw\": 2451, \"\\u0120exec\": 2452, \"\\u0120accept\": 2453, \"ume\": 2454, \"ribut\": 2455, \"\\u0120words\": 2456, \"\\u0120final\": 2457, \"\\u0120changes\": 2458, \"\\u0120Democr\": 2459, \"\\u0120friends\": 2460, \"\\u0120respect\": 2461, \"\\u0120ep\": 2462, \"\\u0120compan\": 2463, \"ivil\": 2464, \"\\u0120damage\": 2465, \"****\": 2466, \"ogle\": 2467, \"vironment\": 2468, \"\\u0120neg\": 2469, \"ental\": 2470, \"\\u0120ap\": 2471, \"\\u0120total\": 2472, \"ival\": 2473, \"!\\\"\": 2474, \"lim\": 2475, \"\\u0120needs\": 2476, \"\\u0120agre\": 2477, \"\\u0120development\": 2478, \"\\u0120age\": 2479, \"iple\": 2480, \"21\": 2481, \"\\u0120results\": 2482, \"\\u0120Af\": 2483, \"Sh\": 2484, \"\\u0120gun\": 2485, \"\\u0120Obama\": 2486, \"roll\": 2487, \"\\u0120@\": 2488, \"\\u0120rights\": 2489, \"\\u0120Brit\": 2490, \"\\u0120running\": 2491, \"\\u0120wasn\": 2492, \"\\u0120port\": 2493, \"\\u0120rate\": 2494, \"\\u0120pretty\": 2495, \"\\u0120target\": 2496, \"\\u0120saw\": 2497, \"\\u0120circ\": 2498, \"\\u0120works\": 2499, \"icro\": 2500, \"alt\": 2501, \"over\": 2502, \"www\": 2503, \"That\": 2504, \"lier\": 2505, \"\\u0120everyone\": 2506, \"ude\": 2507, \"\\u0120pie\": 2508, \"iddle\": 2509, \"rael\": 2510, \"\\u0120rad\": 2511, \"\\u0120block\": 2512, \"\\u0120walk\": 2513, \"To\": 2514, \"\\u00e3\\u0123\": 2515, \"nes\": 2516, \"\\u0120Aust\": 2517, \"aul\": 2518, \"rote\": 2519, \"\\u0120South\": 2520, \"ession\": 2521, \"oph\": 2522, \"\\u0120shows\": 2523, \"\\u0120site\": 2524, \"\\u0120jo\": 2525, \"\\u0120risk\": 2526, \"clus\": 2527, \"lt\": 2528, \"\\u0120inj\": 2529, \"iding\": 2530, \"\\u0120Spe\": 2531, \"\\u0120chall\": 2532, \"irm\": 2533, \"\\u012022\": 2534, \"itting\": 2535, \"str\": 2536, \"\\u0120hy\": 2537, \"LE\": 2538, \"key\": 2539, \"\\u0120began\": 2540, \"atur\": 2541, \"ashington\": 2542, \"lam\": 2543, \"\\u0120Dav\": 2544, \"bit\": 2545, \"\\u0120size\": 2546, \"\\u0120Par\": 2547, \"38\": 2548, \"ournal\": 2549, \"face\": 2550, \"\\u0120decision\": 2551, \"\\u0120larg\": 2552, \"\\u0120jud\": 2553, \"rect\": 2554, \"\\u0120continue\": 2555, \"\\u0120Oct\": 2556, \"overed\": 2557, \"\\u0120Int\": 2558, \"========\": 2559, \"\\u0120parent\": 2560, \"\\u0120Will\": 2561, \"\\u0120easy\": 2562, \"\\u0120drug\": 2563, \"anger\": 2564, \"\\u0120sense\": 2565, \"\\u0120di\": 2566, \"iday\": 2567, \"\\u0120energy\": 2568, \"istic\": 2569, \"\\u0120associ\": 2570, \"arter\": 2571, \"obal\": 2572, \"eks\": 2573, \"\\u0120El\": 2574, \"urch\": 2575, \"\\u0120girl\": 2576, \"oe\": 2577, \"itle\": 2578, \"\\u012028\": 2579, \"\\u0120Che\": 2580, \"\\u0120request\": 2581, \"\\u0120soon\": 2582, \"\\u0120host\": 2583, \"ky\": 2584, \"\\u0120states\": 2585, \"omes\": 2586, \"\\u0120material\": 2587, \"lex\": 2588, \"\\u0120moment\": 2589, \"\\u0120answ\": 2590, \"onse\": 2591, \"\\u0120especially\": 2592, \"\\u0120norm\": 2593, \"\\u0120services\": 2594, \"pite\": 2595, \"ran\": 2596, \"\\u0120role\": 2597, \"44\": 2598, \"):\": 2599, \"\\u0120cred\": 2600, \"Cl\": 2601, \"________\": 2602, \"\\u0120mat\": 2603, \"\\u0120log\": 2604, \"\\u0120Clinton\": 2605, \"OU\": 2606, \"\\u0120office\": 2607, \"\\u012026\": 2608, \"\\u0120charg\": 2609, \"\\u0120track\": 2610, \"ma\": 2611, \"\\u0120heart\": 2612, \"\\u0120ball\": 2613, \"\\u0120personal\": 2614, \"\\u0120building\": 2615, \"na\": 2616, \"set\": 2617, \"body\": 2618, \"\\u0120Black\": 2619, \"\\u0120increase\": 2620, \"itten\": 2621, \"\\u0120needed\": 2622, \"36\": 2623, \"32\": 2624, \"=\\\"\": 2625, \"\\u0120lost\": 2626, \"\\u0120became\": 2627, \"\\u0120groups\": 2628, \"\\u0120Mus\": 2629, \"\\u0120wrote\": 2630, \"\\u0120Pe\": 2631, \"\\u0120prop\": 2632, \"joy\": 2633, \"\\u00c3\\u00a9\": 2634, \"\\u0120White\": 2635, \"\\u0120dead\": 2636, \".'\": 2637, \"\\u0120http\": 2638, \"\\u0120webs\": 2639, \"OS\": 2640, \"\\u0120inside\": 2641, \"\\u0120wrong\": 2642, \"\\u0120statement\": 2643, \"\\u0120...\": 2644, \"yl\": 2645, \"\\u0120film\": 2646, \"\\u0120music\": 2647, \"\\u0120share\": 2648, \"ification\": 2649, \"\\u0120release\": 2650, \"\\u0120forward\": 2651, \"\\u0120stay\": 2652, \"\\u0120comput\": 2653, \"itte\": 2654, \"ser\": 2655, \"\\u0120original\": 2656, \"\\u0120card\": 2657, \"\\u0120cand\": 2658, \"\\u0120div\": 2659, \"atural\": 2660, \"\\u0120favor\": 2661, \"OM\": 2662, \"\\u0120cases\": 2663, \"uses\": 2664, \"\\u0120section\": 2665, \"\\u0120leave\": 2666, \"ging\": 2667, \"oved\": 2668, \"\\u0120Washington\": 2669, \"39\": 2670, \"\\u0120Gl\": 2671, \"\\u0120required\": 2672, \"action\": 2673, \"apan\": 2674, \"oor\": 2675, \"iter\": 2676, \"\\u0120King\": 2677, \"\\u0120countries\": 2678, \"\\u0120German\": 2679, \"lling\": 2680, \"\\u012027\": 2681, \"34\": 2682, \"\\u0120questions\": 2683, \"\\u0120prim\": 2684, \"\\u0120cell\": 2685, \"\\u0120shoot\": 2686, \"\\u0120anyone\": 2687, \"\\u0120West\": 2688, \"\\u0120affect\": 2689, \"epend\": 2690, \"\\u0120online\": 2691, \"\\u0120Israel\": 2692, \"\\u0120September\": 2693, \"\\u0120ability\": 2694, \"\\u0120content\": 2695, \"ises\": 2696, \"\\u0120reve\": 2697, \"\\u0120laun\": 2698, \"\\u0120indic\": 2699, \"\\u0120force\": 2700, \"cast\": 2701, \"\\u0120sold\": 2702, \"aving\": 2703, \"fl\": 2704, \"\\u0120soft\": 2705, \"\\u0120companies\": 2706, \"ceed\": 2707, \"\\u0120article\": 2708, \"\\u0120aud\": 2709, \"\\u0120rev\": 2710, \"\\u0120educ\": 2711, \"\\u0120playing\": 2712, \"05\": 2713, \"\\u0120held\": 2714, \"ctor\": 2715, \"\\u0120released\": 2716, \"\\u0120federal\": 2717, \"37\": 2718, \"\\u0120administ\": 2719, \"\\u0120interview\": 2720, \"\\u0120install\": 2721, \"\\u0120received\": 2722, \"\\u0120source\": 2723, \"uk\": 2724, \"Ph\": 2725, \"\\u0120serious\": 2726, \"\\u0120created\": 2727, \"\\u0120cause\": 2728, \"\\u0120immedi\": 2729, \"\\u0120defin\": 2730, \"uel\": 2731, \"\\u0120Department\": 2732, \"ctions\": 2733, \"\\u0120Cour\": 2734, \"\\u0120Now\": 2735, \"ze\": 2736, \"ites\": 2737, \"itution\": 2738, \"\\u0120late\": 2739, \"\\u0120speak\": 2740, \"ners\": 2741, \"\\u0120legal\": 2742, \"ari\": 2743, \"\\u0120Cor\": 2744, \"\\u0120weeks\": 2745, \"\\u0120model\": 2746, \"\\u0120pred\": 2747, \"\\u0120exact\": 2748, \"BC\": 2749, \"\\u0120By\": 2750, \"ING\": 2751, \"osing\": 2752, \"\\u0120takes\": 2753, \"\\u0120regard\": 2754, \"\\u0120opportun\": 2755, \"\\u0120price\": 2756, \"\\u0120198\": 2757, \"\\u0120Apr\": 2758, \"fully\": 2759, \"\\u0120ord\": 2760, \"\\u0120problems\": 2761, \"ruction\": 2762, \"ham\": 2763, \"\\u0120Count\": 2764, \"lege\": 2765, \"\\u0120leaders\": 2766, \"ET\": 2767, \"lev\": 2768, \"\\u0120deep\": 2769, \"ological\": 2770, \"ese\": 2771, \"haps\": 2772, \"\\u0120Some\": 2773, \"\\u0120pers\": 2774, \"\\u0120contract\": 2775, \"\\u0120relationship\": 2776, \"sp\": 2777, \"oud\": 2778, \"\\u0120base\": 2779, \"48\": 2780, \"mit\": 2781, \"Ad\": 2782, \"ancial\": 2783, \"\\u0120consum\": 2784, \"\\u0120potential\": 2785, \"\\u0120langu\": 2786, \"rem\": 2787, \"eth\": 2788, \"\\u0120relig\": 2789, \"ressed\": 2790, \"66\": 2791, \"\\u0120link\": 2792, \"\\u0120lower\": 2793, \"ayer\": 2794, \"\\u0120June\": 2795, \"\\u0120fem\": 2796, \"unt\": 2797, \"erc\": 2798, \"urd\": 2799, \"\\u0120contact\": 2800, \"\\u0120ill\": 2801, \"\\u0120mother\": 2802, \"\\u0120estab\": 2803, \"htt\": 2804, \"\\u0120March\": 2805, \"\\u0120Bro\": 2806, \"\\u0120China\": 2807, \"\\u012029\": 2808, \"\\u0120squ\": 2809, \"\\u0120provided\": 2810, \"\\u0120average\": 2811, \"asons\": 2812, \"\\u01202011\": 2813, \"\\u0120exam\": 2814, \"lin\": 2815, \"55\": 2816, \"ned\": 2817, \"\\u0120perfect\": 2818, \"\\u0120tou\": 2819, \"alse\": 2820, \"ux\": 2821, \"\\u0120buy\": 2822, \"\\u0120shot\": 2823, \"\\u0120collect\": 2824, \"\\u0120phot\": 2825, \"\\u0120played\": 2826, \"\\u0120surpr\": 2827, \"\\u0120officials\": 2828, \"\\u0120simple\": 2829, \"avy\": 2830, \"\\u0120industry\": 2831, \"\\u0120hands\": 2832, \"ground\": 2833, \"\\u0120pull\": 2834, \"\\u0120round\": 2835, \"\\u0120user\": 2836, \"\\u0120range\": 2837, \"uary\": 2838, \"\\u0120private\": 2839, \"ops\": 2840, \"ees\": 2841, \"\\u0120ways\": 2842, \"\\u0120Mich\": 2843, \"\\u0120veh\": 2844, \"\\u0120except\": 2845, \"\\u0120terms\": 2846, \"imum\": 2847, \"pper\": 2848, \"ION\": 2849, \"ores\": 2850, \"\\u0120Dragon\": 2851, \"oul\": 2852, \"\\u0120den\": 2853, \"\\u0120performance\": 2854, \"\\u0120bill\": 2855, \"cil\": 2856, \"47\": 2857, \"\\u0120environment\": 2858, \"\\u0120exc\": 2859, \"add\": 2860, \"\\u0120worth\": 2861, \"\\u0120pict\": 2862, \"\\u0120chance\": 2863, \"\\u01202018\": 2864, \"bor\": 2865, \"\\u0120speed\": 2866, \"iction\": 2867, \"\\u0120alleg\": 2868, \"\\u0120Japan\": 2869, \"atory\": 2870, \"reet\": 2871, \"\\u0120match\": 2872, \"\\u0120II\": 2873, \"\\u0120stru\": 2874, \"order\": 2875, \"\\u0120ste\": 2876, \"\\u0120living\": 2877, \"\\u0120struct\": 2878, \"ino\": 2879, \"\\u0120separ\": 2880, \"hern\": 2881, \"\\u0120response\": 2882, \"\\u0120enjoy\": 2883, \"\\u0120via\": 2884, \"AD\": 2885, \"uments\": 2886, \"acebook\": 2887, \"\\u0120member\": 2888, \"ibr\": 2889, \"izing\": 2890, \"\\u0120tool\": 2891, \"\\u0120Mon\": 2892, \"\\u0120While\": 2893, \"hood\": 2894, \"\\u0120Ang\": 2895, \"\\u0120Def\": 2896, \"\\u0120offer\": 2897, \"Tr\": 2898, \"aur\": 2899, \"\\u0120turned\": 2900, \"\\u0120July\": 2901, \"down\": 2902, \"anced\": 2903, \"\\u0120recently\": 2904, \"\\u0120Ear\": 2905, \"\\u0120ce\": 2906, \"\\u0120Star\": 2907, \"\\u0120Cong\": 2908, \"rought\": 2909, \"\\u0120blood\": 2910, \"\\u0120hope\": 2911, \"\\u0120comment\": 2912, \"aint\": 2913, \"\\u0120arri\": 2914, \"iles\": 2915, \"\\u0120particip\": 2916, \"ought\": 2917, \"ription\": 2918, \"08\": 2919, \"49\": 2920, \"\\u0120gave\": 2921, \"\\u0120select\": 2922, \"\\u0120killed\": 2923, \"sych\": 2924, \"\\u0120goes\": 2925, \"ij\": 2926, \"\\u0120coll\": 2927, \"\\u0120impact\": 2928, \"atives\": 2929, \"\\u0120Ser\": 2930, \"09\": 2931, \"\\u0120August\": 2932, \"\\u0120boy\": 2933, \"de\": 2934, \"\\u0120Des\": 2935, \"\\u0120felt\": 2936, \"US\": 2937, \"\\u0120expected\": 2938, \"\\u0120image\": 2939, \"\\u0120Mark\": 2940, \"ccording\": 2941, \"oice\": 2942, \"EC\": 2943, \"\\u0120Mag\": 2944, \"ened\": 2945, \"hold\": 2946, \"\\u0120Post\": 2947, \"\\u0120prevent\": 2948, \"No\": 2949, \"\\u0120involved\": 2950, \"\\u0120eyes\": 2951, \"\\u0120quickly\": 2952, \"At\": 2953, \"unk\": 2954, \"\\u0120behav\": 2955, \"\\u0120ur\": 2956, \"\\u0120led\": 2957, \"come\": 2958, \"ey\": 2959, \"\\u0120candid\": 2960, \"\\u0120earlier\": 2961, \"\\u0120focus\": 2962, \"ety\": 2963, \"Pro\": 2964, \"ledge\": 2965, \"ixed\": 2966, \"illed\": 2967, \"\\u0120popular\": 2968, \"AP\": 2969, \"\\u0120sett\": 2970, \"light\": 2971, \"\\u0120various\": 2972, \"inks\": 2973, \"\\u0120levels\": 2974, \"\\u0120road\": 2975, \"ellig\": 2976, \"ables\": 2977, \"hel\": 2978, \"ittee\": 2979, \"\\u0120Gener\": 2980, \"ype\": 2981, \"\\u0120heard\": 2982, \"icles\": 2983, \"\\u0120mis\": 2984, \"\\u0120users\": 2985, \"\\u0120San\": 2986, \"\\u0120improve\": 2987, \"\\u0120father\": 2988, \"\\u0120search\": 2989, \"They\": 2990, \"vil\": 2991, \"\\u0120profess\": 2992, \"\\u0120knew\": 2993, \"\\u0120loss\": 2994, \"\\u0120events\": 2995, \"65\": 2996, \"\\u0120billion\": 2997, \"07\": 2998, \"02\": 2999, \"\\u0120News\": 3000, \"\\u0120AM\": 3001, \"\\u0120cover\": 3002, \"where\": 3003, \"ension\": 3004, \"\\u0120bott\": 3005, \"\\u0120areas\": 3006, \"ences\": 3007, \"ope\": 3008, \"\\u0120Twitter\": 3009, \"ael\": 3010, \"\\u0120gets\": 3011, \"\\u0120Google\": 3012, \"\\u0120sn\": 3013, \"iant\": 3014, \"\\u0120vote\": 3015, \"\\u0120nearly\": 3016, \"\\u0120included\": 3017, \"\\u0120recogn\": 3018, \"zz\": 3019, \"mm\": 3020, \"aled\": 3021, \"\\u0120happened\": 3022, \"04\": 3023, \"\\u0120hot\": 3024, \"\\u0120whose\": 3025, \"\\u0120civil\": 3026, \"\\u0120suff\": 3027, \"oes\": 3028, \"itiz\": 3029, \"\\u0120Syri\": 3030, \"\\u0120respond\": 3031, \"\\u0120hon\": 3032, \"\\u0120features\": 3033, \"\\u0120economic\": 3034, \"\\u0120April\": 3035, \"rim\": 3036, \"\\u0120technology\": 3037, \"\\u0120option\": 3038, \"aging\": 3039, \"\\u0120purch\": 3040, \"Re\": 3041, \"\\u0120lat\": 3042, \"chie\": 3043, \"isl\": 3044, \"\\u0120recomm\": 3045, \"uf\": 3046, \"\\u0120training\": 3047, \"\\u0120effects\": 3048, \"\\u0120fast\": 3049, \"\\u01202010\": 3050, \"\\u0120occur\": 3051, \"\\u0120website\": 3052, \"\\u0120email\": 3053, \"\\u0120sens\": 3054, \"ech\": 3055, \"\\u0120oil\": 3056, \"\\u0120influ\": 3057, \"\\u0120currently\": 3058, \"\\u0120Sch\": 3059, \"\\u0120Add\": 3060, \"\\u0120goal\": 3061, \"\\u0120scient\": 3062, \"\\u0120conv\": 3063, \"100\": 3064, \"emy\": 3065, \"\\u0120decided\": 3066, \"\\u0120travel\": 3067, \"\\u0120mention\": 3068, \"LL\": 3069, \"03\": 3070, \"\\u0120election\": 3071, \"\\u0120phone\": 3072, \"\\u0120looks\": 3073, \"\\u0120situation\": 3074, \"\\u0120cy\": 3075, \"\\u0120hor\": 3076, \"bed\": 3077, \"\\u0120Court\": 3078, \"aily\": 3079, \"aves\": 3080, \"\\u0120quality\": 3081, \"\\u0120Comp\": 3082, \"wise\": 3083, \"\\u0120table\": 3084, \"\\u0120staff\": 3085, \"\\u0120Wind\": 3086, \"ett\": 3087, \"\\u0120tried\": 3088, \"idered\": 3089, \"\\u0120addition\": 3090, \"\\u0120box\": 3091, \"\\u0120lack\": 3092, \"arily\": 3093, \"\\u0120wide\": 3094, \"\\u0120mid\": 3095, \"\\u0120board\": 3096, \"ysis\": 3097, \"\\u0120anti\": 3098, \"ha\": 3099, \"\\u0120dig\": 3100, \"ening\": 3101, \"\\u0120dro\": 3102, \"Con\": 3103, \"68\": 3104, \"\\u0120slow\": 3105, \"based\": 3106, \"sequ\": 3107, \"\\u0120path\": 3108, \"Ex\": 3109, \"aker\": 3110, \"\\u0120worked\": 3111, \"\\u0120pen\": 3112, \"\\u0120engine\": 3113, \"\\u0120looked\": 3114, \"\\u0120Super\": 3115, \"\\u0120Serv\": 3116, \"\\u0120victim\": 3117, \"Un\": 3118, \"\\u0120property\": 3119, \"\\u0120introdu\": 3120, \"\\u0120execut\": 3121, \"\\u0120PM\": 3122, \"Le\": 3123, \"\\u0120color\": 3124, \"\\u0120More\": 3125, \"\\u012060\": 3126, \"\\u0120network\": 3127, \"\\u0120date\": 3128, \"cul\": 3129, \"idge\": 3130, \"\\u0120extra\": 3131, \"31\": 3132, \"\\u0120sle\": 3133, \"67\": 3134, \"\\u0120wond\": 3135, \"\\u0120reports\": 3136, \"just\": 3137, \"\\u0120Austral\": 3138, \"\\u0120capital\": 3139, \"\\u0120ens\": 3140, \"\\u0120command\": 3141, \"\\u0120allowed\": 3142, \"\\u0120prep\": 3143, \"\\u0120capt\": 3144, \"hib\": 3145, \"\\u0120numbers\": 3146, \"chan\": 3147, \"\\u0120fair\": 3148, \"mp\": 3149, \"oms\": 3150, \"\\u0120reach\": 3151, \"With\": 3152, \"tain\": 3153, \"\\u0120broad\": 3154, \"\\u0120couple\": 3155, \"ecause\": 3156, \"lying\": 3157, \"\\u0120Feb\": 3158, \"\\u0120screen\": 3159, \"\\u0120lives\": 3160, \"\\u0120prior\": 3161, \"\\u0120Congress\": 3162, \"Ar\": 3163, \"\\u0120approach\": 3164, \"\\u0120emer\": 3165, \"aries\": 3166, \"\\u0120Dis\": 3167, \"serv\": 3168, \"\\u0120Ne\": 3169, \"\\u0120built\": 3170, \"cies\": 3171, \"\\u0120repe\": 3172, \"\\u0120rules\": 3173, \"force\": 3174, \"\\u0120Pal\": 3175, \"\\u0120financial\": 3176, \"\\u0120considered\": 3177, \"\\u0120Char\": 3178, \"nces\": 3179, \"\\u0120IS\": 3180, \"\\u0120brought\": 3181, \"\\u0120bi\": 3182, \"iers\": 3183, \"\\u0120Sim\": 3184, \"OP\": 3185, \"\\u0120products\": 3186, \"\\u0120visit\": 3187, \"\\u0120document\": 3188, \"\\u0120conduct\": 3189, \"\\u0120completely\": 3190, \"ining\": 3191, \"\\u0120Calif\": 3192, \"ibly\": 3193, \"\\u0120written\": 3194, \"\\u0120TV\": 3195, \"ements\": 3196, \"\\u0120draw\": 3197, \"One\": 3198, \"\\u0120published\": 3199, \"\\u0120secret\": 3200, \"rain\": 3201, \"het\": 3202, \"\\u0120Facebook\": 3203, \"onday\": 3204, \"\\u0120Up\": 3205, \"\\u0120sexual\": 3206, \"\\u0120thous\": 3207, \"\\u0120Pat\": 3208, \"\\u0120ess\": 3209, \"\\u0120standard\": 3210, \"\\u0120arm\": 3211, \"ges\": 3212, \"ection\": 3213, \"\\u0120fell\": 3214, \"\\u0120foreign\": 3215, \"ani\": 3216, \"\\u0120Friday\": 3217, \"\\u0120regular\": 3218, \"inary\": 3219, \"\\u0120increased\": 3220, \"\\u0120usually\": 3221, \"\\u0120demon\": 3222, \"\\u0120dark\": 3223, \"\\u0120additional\": 3224, \"rol\": 3225, \"\\u0120Of\": 3226, \"\\u0120production\": 3227, \"!!\": 3228, \"undred\": 3229, \"\\u0120international\": 3230, \"idents\": 3231, \"\\u0120Free\": 3232, \"roup\": 3233, \"\\u0120race\": 3234, \"\\u0120mach\": 3235, \"\\u0120huge\": 3236, \"All\": 3237, \"lear\": 3238, \"ovember\": 3239, \"\\u0120town\": 3240, \"\\u0120attention\": 3241, \"\\u0120Off\": 3242, \"yond\": 3243, \"\\u0120Then\": 3244, \"field\": 3245, \"\\u0120terror\": 3246, \"raz\": 3247, \"\\u0120Bo\": 3248, \"\\u0120meeting\": 3249, \"\\u0120Park\": 3250, \"\\u0120arrest\": 3251, \"\\u0120fear\": 3252, \"\\u0120aw\": 3253, \"\\u0120Val\": 3254, \"oring\": 3255, \"',\": 3256, \"\\u0120extreme\": 3257, \"arr\": 3258, \"\\u0120workers\": 3259, \"After\": 3260, \"\\u012031\": 3261, \"net\": 3262, \"ament\": 3263, \"\\u0120directly\": 3264, \"\\u0120population\": 3265, \"ube\": 3266, \"\\u0120October\": 3267, \"\\u0120IN\": 3268, \"\\u0120January\": 3269, \"59\": 3270, \"\\u0120David\": 3271, \"\\u0120cross\": 3272, \"cember\": 3273, \"\\u0120First\": 3274, \"\\u0120message\": 3275, \"irit\": 3276, \"\\u0120nation\": 3277, \"\\u0120poll\": 3278, \"isions\": 3279, \"\\u0120answer\": 3280, \"ny\": 3281, \"isode\": 3282, \"\\u0120carry\": 3283, \"\\u0120Russia\": 3284, \"\\u0120hear\": 3285, \"ength\": 3286, \"roy\": 3287, \"\\u0120natural\": 3288, \"inally\": 3289, \"\\u0120dog\": 3290, \"mitted\": 3291, \"\\u0120trade\": 3292, \"\\u0120subst\": 3293, \"\\u0120multiple\": 3294, \"\\u0120Afric\": 3295, \"\\u0120fans\": 3296, \"\\u0120sort\": 3297, \"\\u0120global\": 3298, \"ication\": 3299, \"\\u0120Wed\": 3300, \"ara\": 3301, \"\\u0120achie\": 3302, \"\\u0120language\": 3303, \"vey\": 3304, \"\\u0120tal\": 3305, \"\\u0120necessary\": 3306, \"\\u0120details\": 3307, \"\\u0120sen\": 3308, \"\\u0120Sund\": 3309, \"\\u0120Reg\": 3310, \"\\u0120Rec\": 3311, \"06\": 3312, \"\\u0120sil\": 3313, \"ressive\": 3314, \"\\u0120medical\": 3315, \"unch\": 3316, \"ornia\": 3317, \"\\u0120und\": 3318, \"fort\": 3319, \"ocks\": 3320, \"\\u0120Monday\": 3321, \"uesday\": 3322, \"craft\": 3323, \"77\": 3324, \"urt\": 3325, \"\\u0120ver\": 3326, \"\\u0120Hill\": 3327, \"\\u0120receive\": 3328, \"\\u0120morning\": 3329, \"estern\": 3330, \"\\u0120bank\": 3331, \"\\u0120sat\": 3332, \"irth\": 3333, \"\\u0120High\": 3334, \"\\u0120device\": 3335, \"\\u0120THE\": 3336, \"\\u0120Center\": 3337, \"\\u0120safe\": 3338, \"\\u0120ple\": 3339, \"\\u0120Canada\": 3340, \"\\u0120systems\": 3341, \"\\u0120assist\": 3342, \"\\u0120surv\": 3343, \"\\u0120battle\": 3344, \"\\u0120Soc\": 3345, \"vertis\": 3346, \"She\": 3347, \"\\u0120paper\": 3348, \"\\u0120growth\": 3349, \"\\u0120cast\": 3350, \"Sc\": 3351, \"\\u0120plans\": 3352, \"lled\": 3353, \"\\u0120parts\": 3354, \"\\u0120wall\": 3355, \"\\u0120movement\": 3356, \"\\u0120practice\": 3357, \"imately\": 3358, \"\\u0120display\": 3359, \"\\u0120sometimes\": 3360, \"omp\": 3361, \"\\u0120Paul\": 3362, \"\\u0120Yes\": 3363, \"king\": 3364, \"58\": 3365, \"oly\": 3366, \"\\u0120son\": 3367, \"\\u0120avoid\": 3368, \"okes\": 3369, \"\\u0120Jew\": 3370, \"\\u0120towards\": 3371, \"asc\": 3372, \"\\u0120//\": 3373, \"\\u0120Kore\": 3374, \"\\u0120talking\": 3375, \"\\u0120correct\": 3376, \"\\u0120spent\": 3377, \"icks\": 3378, \"iable\": 3379, \"eared\": 3380, \"\\u0120term\": 3381, \"\\u0120wants\": 3382, \"oming\": 3383, \"\\u0120ut\": 3384, \"\\u0120doub\": 3385, \"\\u0120forces\": 3386, \"\\u0120please\": 3387, \"69\": 3388, \"\\u0120November\": 3389, \"atform\": 3390, \"ondon\": 3391, \"\\u0120ones\": 3392, \"\\u0120immediately\": 3393, \"\\u0120Russian\": 3394, \"\\u0120Met\": 3395, \"\\u0120deg\": 3396, \"\\u0120parents\": 3397, \"CH\": 3398, \"\\u0120Americans\": 3399, \"aly\": 3400, \"\\u0120Mod\": 3401, \"\\u0120shown\": 3402, \"\\u0120conditions\": 3403, \"\\u0120stuff\": 3404, \"\\u0120reb\": 3405, \"\\u0120Your\": 3406, \"\\u0120includes\": 3407, \"nown\": 3408, \"\\u0120Sam\": 3409, \"\\u0120experien\": 3410, \"mission\": 3411, \"\\u0120Even\": 3412, \"aught\": 3413, \"\\u0120announced\": 3414, \"\\u0120Republican\": 3415, \"\\u0120determin\": 3416, \"\\u0120described\": 3417, \"\\u0120County\": 3418, \"()\": 3419, \"\\u0120door\": 3420, \"\\u0120changed\": 3421, \"\\u0120neigh\": 3422, \"\\u0120Here\": 3423, \"\\u0120clean\": 3424, \"\\u0120pan\": 3425, \"\\u0120December\": 3426, \"\\u0120European\": 3427, \"iring\": 3428, \"apter\": 3429, \"\\u0120club\": 3430, \"\\u0120Tuesday\": 3431, \"\\u0120paid\": 3432, \"\\u0120Net\": 3433, \"\\u0120attacks\": 3434, \"\\u0120characters\": 3435, \"\\u0120alone\": 3436, \"\\u0120director\": 3437, \"dom\": 3438, \"\\u012035\": 3439, \"\\u0120load\": 3440, \"\\u0120rout\": 3441, \"\\u0120California\": 3442, \"\\u0120finally\": 3443, \"\\u0120rac\": 3444, \"\\u0120contr\": 3445, \"\\u0120exactly\": 3446, \"resh\": 3447, \"pri\": 3448, \"\\u0120Islam\": 3449, \"\\u0120nature\": 3450, \"\\u0120career\": 3451, \"\\u0120latest\": 3452, \"\\u0120convers\": 3453, \"\\u0120Sl\": 3454, \"pose\": 3455, \"cient\": 3456, \"\\u0120Inc\": 3457, \"ivity\": 3458, \"88\": 3459, \"\\u0120Att\": 3460, \"\\u0120Mor\": 3461, \"nesday\": 3462, \"\\u0120weight\": 3463, \"ken\": 3464, \"\\u0120note\": 3465, \"\\u0120teams\": 3466, \"\\u0120\\\\\": 3467, \"airs\": 3468, \"\\u0120Green\": 3469, \"\\u0120hundred\": 3470, \"onent\": 3471, \"\\u0120streng\": 3472, \"\\u0120consist\": 3473, \"icated\": 3474, \"\\u0120regul\": 3475, \"\\u0120lic\": 3476, \"astic\": 3477, \"\\u0120ten\": 3478, \"ursday\": 3479, \"elligence\": 3480, \"ously\": 3481, \"\\u0120UK\": 3482, \"BI\": 3483, \"\\u0120costs\": 3484, \"\\u0120independ\": 3485, \"\\u0120AP\": 3486, \"\\u0120normal\": 3487, \"\\u0120hom\": 3488, \"\\u0120obvious\": 3489, \"\\u0120swe\": 3490, \"\\u0120star\": 3491, \"\\u0120ready\": 3492, \"acher\": 3493, \"\\u0120implement\": 3494, \"gest\": 3495, \"\\u0120song\": 3496, \"\\u0120Get\": 3497, \"\\u0120Lab\": 3498, \"\\u0120interesting\": 3499, \"using\": 3500, \"\\u0120giving\": 3501, \"\\u0120Sunday\": 3502, \"\\u0120etc\": 3503, \"\\u0120middle\": 3504, \"\\u0120remember\": 3505, \"right\": 3506, \"osition\": 3507, \"utions\": 3508, \"\\u0120max\": 3509, \"46\": 3510, \"\\u0120yourself\": 3511, \"\\u0120demand\": 3512, \"\\u0120treatment\": 3513, \"\\u0120danger\": 3514, \"\\u0120Cons\": 3515, \"\\u0120guy\": 3516, \"\\u0120British\": 3517, \"\\u0120physical\": 3518, \"\\u0120related\": 3519, \"\\u0120remain\": 3520, \"\\u0120couldn\": 3521, \"\\u0120refer\": 3522, \"\\u0120citiz\": 3523, \"box\": 3524, \"ENT\": 3525, \"board\": 3526, \"\\u0120inn\": 3527, \"IG\": 3528, \"ero\": 3529, \"\\u0120Street\": 3530, \"ospital\": 3531, \"rench\": 3532, \"chers\": 3533, \"\\u0120stra\": 3534, \"OL\": 3535, \"ager\": 3536, \"\\u0120AN\": 3537, \"\\u0120easily\": 3538, \"IA\": 3539, \"enge\": 3540, \"iny\": 3541, \"\\u0120clos\": 3542, \"ocked\": 3543, \"\\u0120uses\": 3544, \"\\u0120Coun\": 3545, \"Im\": 3546, \"uild\": 3547, \"??\": 3548, \"more\": 3549, \"\\u0120ang\": 3550, \"\\u0120write\": 3551, \"olute\": 3552, \"57\": 3553, \"\\u0120leader\": 3554, \"\\u0120reading\": 3555, \"</\": 3556, \"\\u0120autom\": 3557, \"ests\": 3558, \"43\": 3559, \"\\u0120legisl\": 3560, \"\\u0120Gold\": 3561, \"\\u0120designed\": 3562, \"\\u0120ST\": 3563, \"\\u0120Leg\": 3564, \"ares\": 3565, \"\\u0120beaut\": 3566, \"\\u0120Tex\": 3567, \"\\u0120appears\": 3568, \"\\u0120strugg\": 3569, \"\\u0120Rom\": 3570, \"\\u012000\": 3571, \"\\u0120choice\": 3572, \"\\u0120particularly\": 3573, \"\\u0120From\": 3574, \"oper\": 3575, \"\\u0120London\": 3576, \"anned\": 3577, \"\\u0120allows\": 3578, \"obile\": 3579, \"\\u0120difference\": 3580, \"\\u00e2\\u0122\\u00a2\": 3581, \"\\u0120View\": 3582, \"\\u0120Wednesday\": 3583, \"\\u0120although\": 3584, \"\\u0120relative\": 3585, \"\\u0120application\": 3586, \"atever\": 3587, \"\\u0120aren\": 3588, \"\\u0120myself\": 3589, \"\\u0120imag\": 3590, \"\\u0120dise\": 3591, \"\\u0120society\": 3592, \"\\u0120frequ\": 3593, \"\\u0120English\": 3594, \"\\u0120poor\": 3595, \"\\u0120Day\": 3596, \"\\u0120writing\": 3597, \"\\u0120seven\": 3598, \"\\u0120starting\": 3599, \"\\u0120bud\": 3600, \"\\u0120print\": 3601, \"\\u0120Trans\": 3602, \"ufact\": 3603, \"\\u0120Stud\": 3604, \"new\": 3605, \"\\u0120crim\": 3606, \"\\u0120gives\": 3607, \"\\u0120cool\": 3608, \"ae\": 3609, \"iance\": 3610, \"\\u0120General\": 3611, \"\\u0120thinking\": 3612, \"\\u0120save\": 3613, \"\\u0120limited\": 3614, \"\\u0120Party\": 3615, \"\\u0120meaning\": 3616, \"pen\": 3617, \"owers\": 3618, \"\\u0120Jack\": 3619, \"EM\": 3620, \"\\u0120nice\": 3621, \"rupt\": 3622, \"\\u0120gas\": 3623, \"\\u0120eight\": 3624, \"\\u0120feet\": 3625, \"\\u0120effort\": 3626, \"\\u0120ign\": 3627, \"icit\": 3628, \"Bl\": 3629, \"coin\": 3630, \"\\u0120opin\": 3631, \"\\u0120brain\": 3632, \"While\": 3633, \"hest\": 3634, \"\\u0120Thursday\": 3635, \"\\u0120wouldn\": 3636, \"aughter\": 3637, \"\\u0120touch\": 3638, \"lements\": 3639, \"\\u0120studies\": 3640, \"\\u0120center\": 3641, \"cont\": 3642, \"orge\": 3643, \"\\u0120computer\": 3644, \"\\u0120investigation\": 3645, \"Pl\": 3646, \"orks\": 3647, \"\\u01202008\": 3648, \"\\u0120increasing\": 3649, \"\\u0120store\": 3650, \"\\u0120comments\": 3651, \"\\u0120bal\": 3652, \"men\": 3653, \"\\u0120doll\": 3654, \"\\u0120liber\": 3655, \"\\u0120wife\": 3656, \"\\u0120laws\": 3657, \"aturday\": 3658, \"itness\": 3659, \"\\u0120modern\": 3660, \"\\u0120Sk\": 3661, \"\\u0120administration\": 3662, \"\\u0120opportunity\": 3663, \"\\u0120sal\": 3664, \"\\u0120powerful\": 3665, \"My\": 3666, \"\\u0120claims\": 3667, \"\\u0120Earth\": 3668, \"ords\": 3669, \"\\u0120title\": 3670, \"\\u0120esc\": 3671, \"name\": 3672, \"Not\": 3673, \"omen\": 3674, \"\\u0120beyond\": 3675, \"\\u0120camer\": 3676, \"\\u0120sell\": 3677, \"itute\": 3678, \"earch\": 3679, \"\\u0120appl\": 3680, \"iment\": 3681, \"42\": 3682, \"\\u0120Art\": 3683, \"\\u0120unf\": 3684, \"\\u0120violence\": 3685, \"urg\": 3686, \"\\u0120East\": 3687, \"\\u0120compared\": 3688, \"\\u0120options\": 3689, \"\\u0120throughout\": 3690, \"\\u0120vs\": 3691, \"igr\": 3692, \".[\": 3693, \"aches\": 3694, \"78\": 3695, \"\\u0120files\": 3696, \"FL\": 3697, \"EL\": 3698, \"arian\": 3699, \"\\u0120James\": 3700, \"\\u0120Air\": 3701, \"anch\": 3702, \"\\u0120detail\": 3703, \"\\u0120piece\": 3704, \"PS\": 3705, \"\\u0120named\": 3706, \"\\u0120education\": 3707, \"\\u0120drive\": 3708, \"\\u0120items\": 3709, \"\\u0120student\": 3710, \"iced\": 3711, \"::\": 3712, \"ico\": 3713, \"\\u0120throw\": 3714, \"\\u0120scene\": 3715, \"\\u0120complex\": 3716, \"\\u01202009\": 3717, \"\\u0120prec\": 3718, \"\\u0120Bre\": 3719, \"79\": 3720, \"\\u0120concept\": 3721, \"\\u0120status\": 3722, \"aming\": 3723, \"\\u0120died\": 3724, \"\\u0120knowledge\": 3725, \"\\u0120beginning\": 3726, \"OD\": 3727, \"ruary\": 3728, \"\\u0120certainly\": 3729, \"\\u0120guys\": 3730, \"\\u0120slight\": 3731, \"inn\": 3732, \"ounds\": 3733, \"\\u0120fine\": 3734, \"\\u0120fat\": 3735, \"ications\": 3736, \"\\u0120perhaps\": 3737, \"\\u0120Ant\": 3738, \"\\u0120income\": 3739, \"\\u0120https\": 3740, \"\\u0120majority\": 3741, \"ports\": 3742, \"ston\": 3743, \"\\u0120greater\": 3744, \"\\u0120feed\": 3745, \"entially\": 3746, \"\\u0120safety\": 3747, \"\\u0120unique\": 3748, \"andom\": 3749, \"\\u0120gone\": 3750, \"\\u0120showed\": 3751, \"\\u0120histor\": 3752, \"\\u0120counter\": 3753, \"ius\": 3754, \"ida\": 3755, \"\\u0120leading\": 3756, \"ipe\": 3757, \"\\u0120send\": 3758, \"\\u0120Donald\": 3759, \"erve\": 3760, \"\\u0120defense\": 3761, \"inese\": 3762, \"\\u0120yes\": 3763, \"\\u0120Fire\": 3764, \"\\u0120Muslim\": 3765, \"raq\": 3766, \"\\u0120continued\": 3767, \"osh\": 3768, \"\\u0120provides\": 3769, \"\\u0120prison\": 3770, \"\\u0120Pre\": 3771, \"\\u0120happy\": 3772, \"\\u0120economy\": 3773, \"\\u0120trust\": 3774, \"ags\": 3775, \"\\u0120Game\": 3776, \"\\u0120weapons\": 3777, \"uman\": 3778, \"\\u0120Cle\": 3779, \"itation\": 3780, \"\\u0120analysis\": 3781, \"\\u0120Times\": 3782, \"\\u0120science\": 3783, \"->\": 3784, \"\\u0120figure\": 3785, \"\\u0120disapp\": 3786, \"enty\": 3787, \"\\u0120software\": 3788, \"\\u0120ult\": 3789, \"\\u0120officers\": 3790, \"New\": 3791, \"Is\": 3792, \"\\u0120remains\": 3793, \"\\u0120India\": 3794, \"\\u0120psych\": 3795, \"rief\": 3796, \"\\u0120cat\": 3797, \"esc\": 3798, \"\\u0120observ\": 3799, \"\\u0120stage\": 3800, \"\\u0120Dark\": 3801, \"\\u0120enter\": 3802, \"change\": 3803, \"\\u0120passed\": 3804, \"\\u0120despite\": 3805, \"\\u0120Out\": 3806, \"\\u0120movie\": 3807, \"rs\": 3808, \"\\u0120voice\": 3809, \"mine\": 3810, \"\\u0120Play\": 3811, \"\\u0120toward\": 3812, \"\\u0120Ter\": 3813, \"\\u0120region\": 3814, \"\\u0120values\": 3815, \"orters\": 3816, \"\\u0120mount\": 3817, \"\\u0120officer\": 3818, \"\\u0120Other\": 3819, \"ban\": 3820, \"\\u0120hous\": 3821, \"wood\": 3822, \"room\": 3823, \"IV\": 3824, \"\\u0120Sun\": 3825, \"see\": 3826, \"\\u0120Over\": 3827, \"rog\": 3828, \"90\": 3829, \"\\u0120lay\": 3830, \"\\u0120Tur\": 3831, \"awn\": 3832, \"\\u0120pressure\": 3833, \"\\u0120Sub\": 3834, \"\\u0120books\": 3835, \"edom\": 3836, \"\\u0120Sand\": 3837, \"AA\": 3838, \"ago\": 3839, \"\\u0120reasons\": 3840, \"ford\": 3841, \"\\u0120activity\": 3842, \"UT\": 3843, \"Now\": 3844, \"\\u0120Senate\": 3845, \"cell\": 3846, \"night\": 3847, \"\\u0120calls\": 3848, \"inter\": 3849, \"\\u0120letter\": 3850, \"\\u0120Rob\": 3851, \"\\u0120Je\": 3852, \"\\u0120choose\": 3853, \"\\u0120Law\": 3854, \"Get\": 3855, \"Be\": 3856, \"\\u0120rob\": 3857, \"\\u0120types\": 3858, \"\\u0120platform\": 3859, \"\\u0120quarter\": 3860, \"RA\": 3861, \"\\u0120Time\": 3862, \"\\u0120maybe\": 3863, \"\\u0120Cr\": 3864, \"95\": 3865, \"pre\": 3866, \"\\u0120moving\": 3867, \"\\u0120lif\": 3868, \"\\u0120gold\": 3869, \"\\u0120som\": 3870, \"\\u0120patients\": 3871, \"\\u0120truth\": 3872, \"\\u0120Ke\": 3873, \"urance\": 3874, \"antly\": 3875, \"mar\": 3876, \"\\u0120charge\": 3877, \"\\u0120Great\": 3878, \"\\u0120cele\": 3879, \"--------------------------------\": 3880, \"\\u0120rock\": 3881, \"roid\": 3882, \"ancy\": 3883, \"\\u0120credit\": 3884, \"aud\": 3885, \"By\": 3886, \"\\u0120Every\": 3887, \"\\u0120moved\": 3888, \"inger\": 3889, \"ribution\": 3890, \"\\u0120names\": 3891, \"\\u0120straight\": 3892, \"\\u0120Health\": 3893, \"\\u0120Well\": 3894, \"\\u0120feature\": 3895, \"\\u0120rule\": 3896, \"\\u0120sche\": 3897, \"inated\": 3898, \"\\u0120Michael\": 3899, \"berg\": 3900, \"41\": 3901, \"iled\": 3902, \"band\": 3903, \"\\u0120click\": 3904, \"\\u0120Angel\": 3905, \"onents\": 3906, \"\\u00c2\\u0143\": 3907, \"\\u0120Iraq\": 3908, \"\\u0120Saturday\": 3909, \"\\u0120aware\": 3910, \"part\": 3911, \"\\u0120pattern\": 3912, \"OW\": 3913, \"\\u0120Let\": 3914, \"\\u0120grad\": 3915, \"igned\": 3916, \"\\u0120associated\": 3917, \"\\u0120style\": 3918, \"no\": 3919, \"iation\": 3920, \"aith\": 3921, \"ilies\": 3922, \"\\u0120stories\": 3923, \"uration\": 3924, \"\\u0120individuals\": 3925, \"\\u0120\\u00e2\\u0122\\u00a6\": 3926, \"miss\": 3927, \"\\u0120Associ\": 3928, \"ishing\": 3929, \"aby\": 3930, \"\\u0120summer\": 3931, \"\\u0120Ben\": 3932, \"\\u012032\": 3933, \"\\u0120arch\": 3934, \"uty\": 3935, \"\\u0120Texas\": 3936, \"hol\": 3937, \"\\u0120fully\": 3938, \"\\u0120mill\": 3939, \"\\u0120followed\": 3940, \"\\u0120Bill\": 3941, \"\\u0120Indian\": 3942, \"\\u0120Secret\": 3943, \"\\u0120Bel\": 3944, \"\\u0120February\": 3945, \"\\u0120jobs\": 3946, \"\\u0120seemed\": 3947, \"\\u0120Govern\": 3948, \"ipped\": 3949, \"\\u0120reality\": 3950, \"\\u0120lines\": 3951, \"\\u0120park\": 3952, \"\\u0120measure\": 3953, \"\\u0120Our\": 3954, \"IM\": 3955, \"\\u0120brother\": 3956, \"\\u0120growing\": 3957, \"\\u0120ban\": 3958, \"\\u0120estim\": 3959, \"\\u0120cry\": 3960, \"\\u0120School\": 3961, \"\\u0120mechan\": 3962, \"\\u0120OF\": 3963, \"\\u0120Windows\": 3964, \"\\u0120rates\": 3965, \"\\u0120Oh\": 3966, \"\\u0120positive\": 3967, \"\\u0120culture\": 3968, \"istics\": 3969, \"ica\": 3970, \"\\u0120har\": 3971, \"ya\": 3972, \"itely\": 3973, \"ipp\": 3974, \"\\u0120map\": 3975, \"encies\": 3976, \"\\u0120William\": 3977, \"II\": 3978, \"akers\": 3979, \"56\": 3980, \"\\u0120Mart\": 3981, \"\\u0120Rem\": 3982, \"\\u0120altern\": 3983, \"itude\": 3984, \"\\u0120coach\": 3985, \"rowd\": 3986, \"Don\": 3987, \"\\u0120kids\": 3988, \"\\u0120journal\": 3989, \"\\u0120corpor\": 3990, \"\\u0120false\": 3991, \"\\u0120web\": 3992, \"\\u0120sleep\": 3993, \"\\u0120contain\": 3994, \"\\u0120sto\": 3995, \"\\u0120bed\": 3996, \"iverse\": 3997, \"\\u0120Rich\": 3998, \"\\u0120Chinese\": 3999, \"\\u0120pun\": 4000, \"\\u0120meant\": 4001, \"known\": 4002, \"\\u0120notice\": 4003, \"\\u0120favorite\": 4004, \"aven\": 4005, \"\\u0120condition\": 4006, \"\\u0120purpose\": 4007, \"))\": 4008, \"\\u0120organization\": 4009, \"\\u0120challeng\": 4010, \"\\u0120manufact\": 4011, \"\\u0120susp\": 4012, \"\\u0120Ac\": 4013, \"\\u0120critic\": 4014, \"unes\": 4015, \"uclear\": 4016, \"\\u0120mer\": 4017, \"vention\": 4018, \"\\u012080\": 4019, \"\\u0120mist\": 4020, \"\\u0120Us\": 4021, \"\\u0120Tor\": 4022, \"http\": 4023, \"olf\": 4024, \"\\u0120larger\": 4025, \"\\u0120advant\": 4026, \"\\u0120resear\": 4027, \"\\u0120actions\": 4028, \"ml\": 4029, \"\\u0120kept\": 4030, \"\\u0120aim\": 4031, \",'\": 4032, \"col\": 4033, \"\\u0120benefits\": 4034, \"ifying\": 4035, \"\\u0120actual\": 4036, \"\\u0120International\": 4037, \"\\u0120vehicle\": 4038, \"\\u0120chief\": 4039, \"\\u0120efforts\": 4040, \"\\u0120League\": 4041, \"\\u0120Most\": 4042, \"\\u0120wait\": 4043, \"\\u0120adult\": 4044, \"\\u0120overall\": 4045, \"\\u0120speech\": 4046, \"\\u0120highly\": 4047, \"\\u0120female\": 4048, \"\\u0120error\": 4049, \"\\u0120effective\": 4050, \"54\": 4051, \"\\u0120encour\": 4052, \"well\": 4053, \"\\u0120failed\": 4054, \"\\u0120conserv\": 4055, \"\\u0120programs\": 4056, \"\\u0120trou\": 4057, \"\\u0120ahead\": 4058, \"500\": 4059, \"vertisement\": 4060, \"IP\": 4061, \"\\u0120Found\": 4062, \"pir\": 4063, \"\\u0120%\": 4064, \"\\u0120crime\": 4065, \"ander\": 4066, \"\\u0120location\": 4067, \"\\u0120Iran\": 4068, \"\\u0120behavior\": 4069, \"azing\": 4070, \"\\u0120rare\": 4071, \"\\u0120emb\": 4072, \"\\u0120caused\": 4073, \"\\u0120ship\": 4074, \"\\u0120active\": 4075, \"\\u0120contribut\": 4076, \"\\u0120green\": 4077, \"\\u0120acqu\": 4078, \"\\u0120reflect\": 4079, \"venue\": 4080, \"\\u0120firm\": 4081, \"\\u0120birth\": 4082, \"].\": 4083, \"\\u0120clearly\": 4084, \"\\u0120emot\": 4085, \"\\u0120agency\": 4086, \"riage\": 4087, \"\\u0120memory\": 4088, \"98\": 4089, \"SA\": 4090, \"\\u0120See\": 4091, \"acing\": 4092, \"CC\": 4093, \"\\u0120biggest\": 4094, \"\\u0120rap\": 4095, \"\\u0120basic\": 4096, \"\\u0120band\": 4097, \"eat\": 4098, \"\\u0120suspect\": 4099, \"\\u0120Mac\": 4100, \"\\u012090\": 4101, \"mark\": 4102, \"istan\": 4103, \"\\u0120spread\": 4104, \"ams\": 4105, \"ki\": 4106, \"asy\": 4107, \"rav\": 4108, \"\\u0120Rober\": 4109, \"\\u0120demonstr\": 4110, \"rated\": 4111, \"\\u0120absolute\": 4112, \"\\u0120places\": 4113, \"\\u0120impl\": 4114, \"ibrary\": 4115, \"\\u0120cards\": 4116, \"\\u0120destroy\": 4117, \"\\u0120virt\": 4118, \"vere\": 4119, \"\\u0120appeared\": 4120, \"yan\": 4121, \"point\": 4122, \"\\u0120beg\": 4123, \"\\u0120temper\": 4124, \"spe\": 4125, \"anted\": 4126, \"ears\": 4127, \"\\u0120Direct\": 4128, \"\\u0120length\": 4129, \"\\u0120blog\": 4130, \"amb\": 4131, \"\\u0120integ\": 4132, \"\\u0120resources\": 4133, \"acc\": 4134, \"iful\": 4135, \"\\u0120spot\": 4136, \"\\u0120forced\": 4137, \"\\u0120thousands\": 4138, \"\\u0120Minister\": 4139, \"\\u0120qual\": 4140, \"\\u0120French\": 4141, \"atically\": 4142, \"\\u0120generally\": 4143, \"\\u0120drink\": 4144, \"\\u0120thus\": 4145, \"IL\": 4146, \"odes\": 4147, \"\\u0120appropri\": 4148, \"\\u0120Read\": 4149, \"\\u0120whom\": 4150, \"\\u0120eye\": 4151, \"\\u0120college\": 4152, \"\\u012045\": 4153, \"irection\": 4154, \"\\u0120ensure\": 4155, \"\\u0120apparent\": 4156, \"iders\": 4157, \"\\u0120religious\": 4158, \"\\u0120minor\": 4159, \"olic\": 4160, \"\\u0120tro\": 4161, \"\\u0120Why\": 4162, \"ribute\": 4163, \"met\": 4164, \"\\u0120primary\": 4165, \"\\u0120developed\": 4166, \"\\u0120peace\": 4167, \"\\u0120skin\": 4168, \"ste\": 4169, \"ava\": 4170, \"\\u0120blue\": 4171, \"\\u0120families\": 4172, \"\\u0120ir\": 4173, \"\\u0120apply\": 4174, \"\\u0120inform\": 4175, \"\\u0120Smith\": 4176, \"CT\": 4177, \"ii\": 4178, \"\\u0120limit\": 4179, \"\\u0120resist\": 4180, \"................\": 4181, \"umn\": 4182, \"\\u0120conflic\": 4183, \"\\u0120twe\": 4184, \"udd\": 4185, \"\\u0120Tom\": 4186, \"\\u0120liter\": 4187, \"que\": 4188, \"bon\": 4189, \"\\u0120hair\": 4190, \"\\u0120eventually\": 4191, \"\\u0120pus\": 4192, \"\\u0120helped\": 4193, \"\\u0120agg\": 4194, \"orney\": 4195, \"\\u0120Apple\": 4196, \"\\u0120fit\": 4197, \"\\u0120Sur\": 4198, \"\\u0120prem\": 4199, \"\\u0120sales\": 4200, \"\\u0120seconds\": 4201, \"\\u0120strength\": 4202, \"\\u0120feeling\": 4203, \"\\u00bf\\u00bd\": 4204, \"\\u0120tour\": 4205, \"\\u0120knows\": 4206, \"oom\": 4207, \"\\u0120exerc\": 4208, \"\\u0120somew\": 4209, \"\\u00ef\\u00bf\\u00bd\": 4210, \">>\": 4211, \"\\u0120spokes\": 4212, \"\\u0120ideas\": 4213, \"\\u0120regist\": 4214, \"soft\": 4215, \"\\u0120Del\": 4216, \"\\u0120PC\": 4217, \"\\u0120propos\": 4218, \"\\u0120launch\": 4219, \"\\u0120bottom\": 4220, \"TH\": 4221, \"\\u0120Please\": 4222, \"vest\": 4223, \"itz\": 4224, \"\\u0120Inter\": 4225, \"\\u0120script\": 4226, \"\\u0120rat\": 4227, \"arning\": 4228, \"\\u0120il\": 4229, \"\\u0120Jer\": 4230, \"\\u0120Are\": 4231, \"\\u0120whatever\": 4232, \"oken\": 4233, \"cience\": 4234, \"\\u0120mode\": 4235, \"\\u0120agree\": 4236, \"\\u0120sources\": 4237, \"\\u0120initial\": 4238, \"\\u0120restrict\": 4239, \"\\u0120wonder\": 4240, \"usion\": 4241, \"####\": 4242, \"\\u0120Sil\": 4243, \"ville\": 4244, \"\\u0120burn\": 4245, \"tw\": 4246, \"asion\": 4247, \"\\u0120\\u00c2\\u00a3\": 4248, \"\\u0120nor\": 4249, \"uing\": 4250, \"\\u0120reached\": 4251, \"\\u0120sun\": 4252, \"\\u0120categ\": 4253, \"igration\": 4254, \"\\u0120cook\": 4255, \"\\u0120promot\": 4256, \"\\u0120male\": 4257, \"\\u0120climate\": 4258, \"\\u0120fix\": 4259, \"\\u0120alleged\": 4260, \"UR\": 4261, \"alled\": 4262, \"\\u0120images\": 4263, \"Cont\": 4264, \"ota\": 4265, \"\\u0120schools\": 4266, \"ios\": 4267, \"\\u0120drop\": 4268, \"\\u0120stream\": 4269, \"\\u0120Mo\": 4270, \"\\u0120previously\": 4271, \"aling\": 4272, \"\\u0120pet\": 4273, \"\\u0120double\": 4274, \"\\u0120(@\": 4275, \"annel\": 4276, \"\\u0120default\": 4277, \"ties\": 4278, \"\\u0120rank\": 4279, \"\\u0120Dec\": 4280, \"\\u0120Council\": 4281, \"\\u0120weapon\": 4282, \"\\u0120stock\": 4283, \"\\u0120analy\": 4284, \"\\u0120Str\": 4285, \"\\u0120picture\": 4286, \"\\u0120Police\": 4287, \"ference\": 4288, \"\\u0120century\": 4289, \"\\u0120citizens\": 4290, \"\\u0120onto\": 4291, \"\\u0120expand\": 4292, \"\\u0120hero\": 4293, \"\\u0120Sol\": 4294, \"\\u0120wild\": 4295, \"\\u0120update\": 4296, \"\\u0120customers\": 4297, \"ront\": 4298, \"def\": 4299, \"\\u0120lik\": 4300, \"\\u0120criminal\": 4301, \"\\u0120Christian\": 4302, \"SP\": 4303, \"76\": 4304, \"\\u0120leaving\": 4305, \"\\u0120otherwise\": 4306, \"\\u0120Dist\": 4307, \"\\u0120basis\": 4308, \"52\": 4309, \"53\": 4310, \"icip\": 4311, \"\\u0120Ber\": 4312, \"\\u0120recommend\": 4313, \"\\u0120floor\": 4314, \"\\u0120crowd\": 4315, \"oles\": 4316, \"\\u012070\": 4317, \"\\u0120central\": 4318, \"\\u0120Ev\": 4319, \"\\u0120dream\": 4320, \"\\u0120download\": 4321, \"\\u0120confir\": 4322, \"\\u0120Thom\": 4323, \"\\u0120window\": 4324, \"\\u0120happens\": 4325, \"\\u0120unit\": 4326, \"\\u0120tend\": 4327, \"\\u0120spl\": 4328, \"\\u0120becomes\": 4329, \"\\u0120fighting\": 4330, \"\\u0120predict\": 4331, \"\\u0120Press\": 4332, \"\\u0120Power\": 4333, \"\\u0120heavy\": 4334, \"aked\": 4335, \"\\u0120fan\": 4336, \"orter\": 4337, \"ategy\": 4338, \"BA\": 4339, \"izes\": 4340, \"\\u0120spend\": 4341, \"Here\": 4342, \"\\u01202007\": 4343, \"\\u0120adop\": 4344, \"\\u0120Ham\": 4345, \"\\u0120football\": 4346, \"\\u0120Port\": 4347, \"oday\": 4348, \"51\": 4349, \"ampions\": 4350, \"\\u0120transfer\": 4351, \"ht\": 4352, \"\\u012038\": 4353, \"term\": 4354, \"acity\": 4355, \"\\u0120bur\": 4356, \"],\": 4357, \"ternal\": 4358, \"rig\": 4359, \"but\": 4360, \"\\u0120therefore\": 4361, \"\\u0120Because\": 4362, \"resp\": 4363, \"rey\": 4364, \"\\u0120mission\": 4365, \"Some\": 4366, \"\\u0120noted\": 4367, \"\\u0120assum\": 4368, \"\\u0120disease\": 4369, \"\\u0120edit\": 4370, \"\\u0120progress\": 4371, \"rd\": 4372, \"\\u0120Brown\": 4373, \"ocal\": 4374, \"\\u0120adding\": 4375, \"\\u0120raised\": 4376, \"\\u0120Any\": 4377, \"\\u0120tick\": 4378, \"\\u0120seeing\": 4379, \"\\u0120People\": 4380, \"\\u0120agreement\": 4381, \"\\u0120server\": 4382, \"\\u0120wat\": 4383, \"\\u0120debate\": 4384, \"\\u0120supposed\": 4385, \"iling\": 4386, \"\\u0120largest\": 4387, \"\\u0120successful\": 4388, \"\\u0120Pri\": 4389, \"\\u0120Democratic\": 4390, \"\\u0120jump\": 4391, \"\\u0120Syria\": 4392, \"\\u0120owners\": 4393, \"\\u0120offers\": 4394, \"\\u0120shooting\": 4395, \"\\u0120effic\": 4396, \"sey\": 4397, \"\\u0120haven\": 4398, \"verse\": 4399, \"tered\": 4400, \"\\u0120Light\": 4401, \"imal\": 4402, \"\\u0120Big\": 4403, \"\\u0120defend\": 4404, \"\\u0120beat\": 4405, \"\\u0120records\": 4406, \"%)\": 4407, \"\\u0120scen\": 4408, \"\\u0120employees\": 4409, \"\\u0120devices\": 4410, \"hem\": 4411, \"\\u0120commer\": 4412, \"\\u0120Mex\": 4413, \"\\u0120benefit\": 4414, \"\\u0120Prof\": 4415, \"\\u0120illeg\": 4416, \"\\u0120surface\": 4417, \"\\u0120Also\": 4418, \"\\u0120harm\": 4419, \"ingly\": 4420, \"wide\": 4421, \"\\u0120Alex\": 4422, \"\\u0120shut\": 4423, \"\\u0120Cur\": 4424, \"\\u0120lose\": 4425, \"pm\": 4426, \"\\u0120challenge\": 4427, \"semb\": 4428, \"\\u0120station\": 4429, \"\\u0120intelligence\": 4430, \"\\u0120accur\": 4431, \"\\u0120Flor\": 4432, \"\\u0120requires\": 4433, \"\\u0120Mal\": 4434, \"bum\": 4435, \"\\u0120hospital\": 4436, \"\\u0120spirit\": 4437, \"\\u0120offered\": 4438, \"\\u0120produce\": 4439, \"\\u0120Commun\": 4440, \"\\u0120creating\": 4441, \"\\u0120cris\": 4442, \"spect\": 4443, \"\\u0120ended\": 4444, \"\\u0120daily\": 4445, \"\\u0120voters\": 4446, \"lands\": 4447, \"ias\": 4448, \"ih\": 4449, \"ona\": 4450, \"\\u0120smart\": 4451, \"\\u0120Office\": 4452, \"\\u0120Lord\": 4453, \"rial\": 4454, \"\\u0120Internet\": 4455, \"\\u0120circum\": 4456, \"\\u0120extremely\": 4457, \"'.\": 4458, \"\\u0120opinion\": 4459, \"\\u0120Mil\": 4460, \"\\u0120gain\": 4461, \"BS\": 4462, \"\\u0120Fin\": 4463, \"yp\": 4464, \"\\u0120useful\": 4465, \"\\u0120budget\": 4466, \"\\u0120comfort\": 4467, \"isf\": 4468, \"\\u0120background\": 4469, \"eline\": 4470, \"\\u0120episode\": 4471, \"\\u0120enemy\": 4472, \"\\u0120trial\": 4473, \"\\u0120establish\": 4474, \"date\": 4475, \"\\u0120Cap\": 4476, \"\\u0120continues\": 4477, \"\\u0120showing\": 4478, \"\\u0120Union\": 4479, \"with\": 4480, \"\\u0120posted\": 4481, \"\\u0120System\": 4482, \"\\u0120eat\": 4483, \"rian\": 4484, \"\\u0120rise\": 4485, \"\\u0120Germany\": 4486, \"ils\": 4487, \"\\u0120signed\": 4488, \"\\u0120vill\": 4489, \"\\u0120grand\": 4490, \"mor\": 4491, \"\\u0120England\": 4492, \"\\u0120projects\": 4493, \"umber\": 4494, \"\\u0120conference\": 4495, \"za\": 4496, \"\\u0120responsible\": 4497, \"\\u0120Arab\": 4498, \"\\u0120learned\": 4499, \"\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\": 4500, \"ipping\": 4501, \"\\u0120George\": 4502, \"OC\": 4503, \"\\u0120returned\": 4504, \"\\u0120Australia\": 4505, \"\\u0120brief\": 4506, \"Qu\": 4507, \"\\u0120brand\": 4508, \"illing\": 4509, \"abled\": 4510, \"\\u0120highest\": 4511, \"\\u0120train\": 4512, \"\\u0120Commission\": 4513, \"while\": 4514, \"\\u0120nom\": 4515, \"ception\": 4516, \"\\u0120mut\": 4517, \"\\u0120Blue\": 4518, \"\\u0120incident\": 4519, \"vant\": 4520, \"86\": 4521, \"\\u0120ID\": 4522, \"\\u0120nuclear\": 4523, \"74\": 4524, \"\\u0120Like\": 4525, \"\\u0120RE\": 4526, \"\\u0120Micro\": 4527, \"li\": 4528, \"mail\": 4529, \"\\u0120charges\": 4530, \"89\": 4531, \"\\u0120adjust\": 4532, \"ado\": 4533, \"\\u0120earth\": 4534, \"NA\": 4535, \"\\u0120prices\": 4536, \"PA\": 4537, \"\\u0120draft\": 4538, \"\\u0120runs\": 4539, \"\\u0120candidate\": 4540, \"enses\": 4541, \"\\u0120management\": 4542, \"\\u0120Phil\": 4543, \"\\u0120Miss\": 4544, \"\\u0120teach\": 4545, \"gram\": 4546, \"\\u0120understanding\": 4547, \"ait\": 4548, \"icago\": 4549, \"Add\": 4550, \"\\u0120Ep\": 4551, \"secut\": 4552, \"\\u0120separate\": 4553, \"\\u0120instance\": 4554, \"\\u0120eth\": 4555, \"\\u0120unless\": 4556, \"********\": 4557, \"\\u0120Fore\": 4558, \"inate\": 4559, \"\\u0120operations\": 4560, \"Sp\": 4561, \"\\u0120faith\": 4562, \"gar\": 4563, \"\\u0120Church\": 4564, \"ronic\": 4565, \"\\u0120config\": 4566, \"osure\": 4567, \"\\u0120activities\": 4568, \"\\u0120traditional\": 4569, \"\\u012036\": 4570, \"\\u0120direction\": 4571, \"\\u0120machine\": 4572, \"\\u0120surround\": 4573, \"\\u0120push\": 4574, \"unction\": 4575, \"\\u0120EU\": 4576, \"\\u0120easier\": 4577, \"\\u0120argument\": 4578, \"GB\": 4579, \"\\u0120micro\": 4580, \"\\u0120spending\": 4581, \"izations\": 4582, \"\\u0120theory\": 4583, \"adow\": 4584, \"\\u0120calling\": 4585, \"\\u0120Last\": 4586, \"\\u0120der\": 4587, \"\\u0120influence\": 4588, \"\\u0120commit\": 4589, \"\\u0120photo\": 4590, \"\\u0120unc\": 4591, \"istry\": 4592, \"gn\": 4593, \"aste\": 4594, \"acks\": 4595, \"\\u0120disp\": 4596, \"ady\": 4597, \"do\": 4598, \"\\u0120Good\": 4599, \"\\u0120`\": 4600, \"\\u0120wish\": 4601, \"\\u0120revealed\": 4602, \"\\u00c2\\u0142\\u00c2\\u0142\": 4603, \"lig\": 4604, \"\\u0120enforce\": 4605, \"\\u0120Committee\": 4606, \"\\u0120chem\": 4607, \"\\u0120miles\": 4608, \"\\u0120interested\": 4609, \"\\u0120solution\": 4610, \"icy\": 4611, \"inct\": 4612, \"\\u0120->\": 4613, \"\\u0120Det\": 4614, \"\\u0120removed\": 4615, \"\\u0120compar\": 4616, \"eah\": 4617, \"\\u0120plant\": 4618, \"\\u0120Since\": 4619, \"\\u0120achieve\": 4620, \"\\u0120advantage\": 4621, \"\\u0120slightly\": 4622, \"bing\": 4623, \"\\u0120placed\": 4624, \"under\": 4625, \"2015\": 4626, \"\\u0120Mad\": 4627, \"\\u0120tim\": 4628, \"oses\": 4629, \"\\u0120cru\": 4630, \"\\u0120Rock\": 4631, \"\\u0120mostly\": 4632, \"\\u0120negative\": 4633, \"\\u0120setting\": 4634, \"\\u0120produced\": 4635, \"\\u0120mur\": 4636, \"\\u0120connection\": 4637, \"\\u0120Mer\": 4638, \"\\u0120driver\": 4639, \"\\u0120executive\": 4640, \"\\u0120assault\": 4641, \"\\u0120born\": 4642, \"\\u0120Ver\": 4643, \"tained\": 4644, \"\\u0120structure\": 4645, \"\\u0120reduce\": 4646, \"\\u0120decades\": 4647, \"\\u0120ded\": 4648, \"uke\": 4649, \"\\u0120Many\": 4650, \"idden\": 4651, \"\\u0120league\": 4652, \"Se\": 4653, \"\\u0120join\": 4654, \"\\u0120disco\": 4655, \"\\u0120die\": 4656, \"cks\": 4657, \"actions\": 4658, \"\\u0120assess\": 4659, \"agn\": 4660, \"\\u0120goals\": 4661, \"ours\": 4662, \"IR\": 4663, \"\\u0120senior\": 4664, \"iller\": 4665, \"mod\": 4666, \"ipment\": 4667, \"ocol\": 4668, \"uy\": 4669, \"\\u0120Que\": 4670, \"\\u0120parties\": 4671, \"irgin\": 4672, \"\\u0120learning\": 4673, \"itable\": 4674, \"\\u0120street\": 4675, \"\\u0120camera\": 4676, \"App\": 4677, \"\\u0120skills\": 4678, \"bre\": 4679, \"cious\": 4680, \"\\u0120celebr\": 4681, \"\\u0120Franc\": 4682, \"\\u0120existing\": 4683, \"\\u0120willing\": 4684, \"lor\": 4685, \"\\u0120id\": 4686, \"\\u0120Space\": 4687, \"\\u0120critical\": 4688, \"\\u0120La\": 4689, \"ortunately\": 4690, \"\\u0120serve\": 4691, \"\\u0120cold\": 4692, \"\\u0120species\": 4693, \"TS\": 4694, \"\\u0120animals\": 4695, \"\\u0120Bay\": 4696, \"\\u0120older\": 4697, \"\\u0120Under\": 4698, \"estic\": 4699, \"\\u0120Tre\": 4700, \"\\u0120teacher\": 4701, \"\\u0120prefer\": 4702, \"vis\": 4703, \"\\u0120thread\": 4704, \"\\u0120Matt\": 4705, \"\\u0120manager\": 4706, \"\\u00e3\\u0125\\u00bb\": 4707, \"\\u0120professional\": 4708, \"\\u0120Vol\": 4709, \"\\u0120notes\": 4710, \"These\": 4711, \"ula\": 4712, \"\\u0120fresh\": 4713, \"ented\": 4714, \"uzz\": 4715, \"edy\": 4716, \"clusion\": 4717, \"\\u0120Rel\": 4718, \"\\u0120doubt\": 4719, \"EO\": 4720, \"\\u0120opened\": 4721, \"\\u0120Bit\": 4722, \"Advertisement\": 4723, \"\\u0120guess\": 4724, \"\\u0120UN\": 4725, \"\\u0120sequ\": 4726, \"\\u0120explain\": 4727, \"otten\": 4728, \"\\u0120attract\": 4729, \"aks\": 4730, \"\\u0120string\": 4731, \"\\u0120context\": 4732, \"ossible\": 4733, \"\\u0120Republicans\": 4734, \"\\u0120solid\": 4735, \"\\u0120cities\": 4736, \"\\u0120asking\": 4737, \"\\u0120random\": 4738, \"ups\": 4739, \"uries\": 4740, \"arant\": 4741, \"dden\": 4742, \"gl\": 4743, \"\\u0120Florida\": 4744, \"\\u0120depend\": 4745, \"\\u0120Scott\": 4746, \"\\u012033\": 4747, \"\\u0120iT\": 4748, \"icon\": 4749, \"\\u0120mentioned\": 4750, \"\\u01202000\": 4751, \"\\u0120claimed\": 4752, \"\\u0120definitely\": 4753, \"ulf\": 4754, \"\\u0120core\": 4755, \"\\u0120opening\": 4756, \"\\u0120Const\": 4757, \"which\": 4758, \"\\u0120Tra\": 4759, \"AG\": 4760, \"72\": 4761, \"\\u0120believed\": 4762, \"ada\": 4763, \"\\u012048\": 4764, \"\\u0120Security\": 4765, \"yright\": 4766, \"\\u0120Pet\": 4767, \"\\u0120Lou\": 4768, \"\\u0120holding\": 4769, \"================\": 4770, \"\\u0120ice\": 4771, \"\\u0120brow\": 4772, \"\\u0120authorities\": 4773, \"host\": 4774, \"word\": 4775, \"\\u0120score\": 4776, \"\\u0120Div\": 4777, \"\\u0120cells\": 4778, \"\\u0120transl\": 4779, \"\\u0120neighbor\": 4780, \"\\u0120remove\": 4781, \"uct\": 4782, \"\\u0120district\": 4783, \"\\u0120According\": 4784, \"\\u0120worse\": 4785, \"\\u0120concerns\": 4786, \"\\u0120presidential\": 4787, \"\\u0120policies\": 4788, \"\\u0120Hall\": 4789, \"73\": 4790, \"\\u0120hus\": 4791, \"AY\": 4792, \"\\u01202006\": 4793, \"\\u0120Jud\": 4794, \"\\u0120independent\": 4795, \"\\u0120Justice\": 4796, \"iliar\": 4797, \"print\": 4798, \"ighter\": 4799, \"\\u0120protection\": 4800, \"zen\": 4801, \"\\u0120sudden\": 4802, \"house\": 4803, \"\\u0120Jes\": 4804, \"PR\": 4805, \"\\u0120Inf\": 4806, \"\\u0120bul\": 4807, \"\\u0120_\": 4808, \"\\u0120Service\": 4809, \"\\u0120PR\": 4810, \"\\u0120strategy\": 4811, \"ffect\": 4812, \"\\u0120girls\": 4813, \"\\u0120missing\": 4814, \"oyal\": 4815, \"\\u0120Team\": 4816, \"ulated\": 4817, \"\\u0120dat\": 4818, \"\\u0120politics\": 4819, \"abor\": 4820, \"According\": 4821, \"\\u0120spell\": 4822, \"\\u0120graph\": 4823, \"orthern\": 4824, \"TC\": 4825, \"Ab\": 4826, \"\\u0120labor\": 4827, \"isher\": 4828, \"\\u0120kick\": 4829, \"\\u0120iTunes\": 4830, \"\\u0120steps\": 4831, \"poses\": 4832, \"\\u0120smaller\": 4833, \"En\": 4834, \"bert\": 4835, \"\\u0120roll\": 4836, \"\\u0120researchers\": 4837, \"\\u0120closed\": 4838, \"\\u0120transport\": 4839, \"\\u0120lawy\": 4840, \"________________\": 4841, \"\\u0120Chicago\": 4842, \"\\u0120aspect\": 4843, \"\\u0120none\": 4844, \"\\u0120marriage\": 4845, \"96\": 4846, \"\\u0120elements\": 4847, \"\\u0120Fre\": 4848, \"\\u0120Sal\": 4849, \"\\u0120dram\": 4850, \"FC\": 4851, \"top\": 4852, \"equ\": 4853, \"\\u0120hearing\": 4854, \"\\u0120supported\": 4855, \"\\u0120testing\": 4856, \"cohol\": 4857, \"\\u0120massive\": 4858, \"\\u0120stick\": 4859, \"\\u0120guard\": 4860, \"isco\": 4861, \"phone\": 4862, \"From\": 4863, \"However\": 4864, \"\\u0120border\": 4865, \"\\u0120copy\": 4866, \"ography\": 4867, \"list\": 4868, \"71\": 4869, \"\\u0120owner\": 4870, \"class\": 4871, \"ruit\": 4872, \"rate\": 4873, \"\\u0120Once\": 4874, \"\\u0120digital\": 4875, \"\\u0120task\": 4876, \"ERS\": 4877, \"\\u0120incred\": 4878, \"tes\": 4879, \"++\": 4880, \"\\u0120France\": 4881, \"\\u0120breat\": 4882, \"owl\": 4883, \"\\u0120issued\": 4884, \"\\u0120Western\": 4885, \"\\u0120detect\": 4886, \"\\u0120partners\": 4887, \"\\u0120shared\": 4888, \"\\u0120Call\": 4889, \"\\u0120cancer\": 4890, \"ache\": 4891, \"ribe\": 4892, \"\\u0120explained\": 4893, \"\\u0120heat\": 4894, \"{\\\"\": 4895, \"\\u0120investment\": 4896, \"\\u0120Book\": 4897, \"\\u0120wood\": 4898, \"\\u0120tools\": 4899, \"\\u0120Although\": 4900, \"\\u0120belief\": 4901, \"\\u0120crisis\": 4902, \"\\u0120ge\": 4903, \"\\u0120MP\": 4904, \"\\u0120operation\": 4905, \"type\": 4906, \"~~\": 4907, \"ga\": 4908, \"\\u0120contains\": 4909, \"anta\": 4910, \"\\u0120express\": 4911, \"\\u0120Group\": 4912, \"\\u0120Journal\": 4913, \"ka\": 4914, \"\\u0120amb\": 4915, \"\\u0120USA\": 4916, \"\\u0120finding\": 4917, \"\\u0120funding\": 4918, \"how\": 4919, \"\\u0120established\": 4920, \"ideos\": 4921, \"\\u0120degree\": 4922, \"\\u0120dangerous\": 4923, \"anging\": 4924, \"\\u0120freedom\": 4925, \"pport\": 4926, \"outhern\": 4927, \"\\u0120church\": 4928, \"\\u0120catch\": 4929, \"\\u0120Two\": 4930, \"\\u0120presence\": 4931, \"\\u0120Guard\": 4932, \"Up\": 4933, \"\\u0120authority\": 4934, \"\\u0120Project\": 4935, \"\\u0120button\": 4936, \"\\u0120consequ\": 4937, \"\\u0120valid\": 4938, \"\\u0120weak\": 4939, \"\\u0120starts\": 4940, \"\\u0120reference\": 4941, \"\\u0120Mem\": 4942, \"\\\")\": 4943, \"UN\": 4944, \"orage\": 4945, \"\\u0120Open\": 4946, \"\\u0120collection\": 4947, \"ym\": 4948, \"gency\": 4949, \"\\u0120beautiful\": 4950, \"ros\": 4951, \"\\u0120tells\": 4952, \"\\u0120waiting\": 4953, \"nel\": 4954, \"\\u0120providing\": 4955, \"\\u0120Democrats\": 4956, \"\\u0120daughter\": 4957, \"\\u0120master\": 4958, \"\\u0120purposes\": 4959, \"\\u0120Japanese\": 4960, \"\\u0120equal\": 4961, \"\\u0120turns\": 4962, \"\\u0120documents\": 4963, \"\\u0120watching\": 4964, \"Res\": 4965, \"\\u0120ran\": 4966, \"2014\": 4967, \"\\u0120reject\": 4968, \"\\u0120Korea\": 4969, \"\\u0120victims\": 4970, \"Level\": 4971, \"erences\": 4972, \"\\u0120witness\": 4973, \"\\u012034\": 4974, \"\\u0120reform\": 4975, \"coming\": 4976, \"\\u0120occup\": 4977, \"\\u0120caught\": 4978, \"\\u0120traffic\": 4979, \"ading\": 4980, \"\\u0120models\": 4981, \"ario\": 4982, \"\\u0120served\": 4983, \"\\u0120batter\": 4984, \"uate\": 4985, \"\\u0120Secretary\": 4986, \"\\u0120agreed\": 4987, \"\\u0120truly\": 4988, \"ynam\": 4989, \"\\u0120Ret\": 4990, \"\\u0120units\": 4991, \"\\u0120Research\": 4992, \"hand\": 4993, \"azine\": 4994, \"\\u0120Mike\": 4995, \"\\u0120variety\": 4996, \"otal\": 4997, \"\\u0120amazing\": 4998, \"\\u0120confirmed\": 4999, \"\\u0120entirely\": 5000, \"\\u0120purchase\": 5001, \"\\u0120element\": 5002, \"\\u0120cash\": 5003, \"\\u0120determine\": 5004, \"De\": 5005, \"\\u0120cars\": 5006, \"\\u0120Wall\": 5007, \"\\u00e2\\u0138\": 5008, \"\\u0120views\": 5009, \"\\u0120drugs\": 5010, \"\\u0120department\": 5011, \"\\u0120Step\": 5012, \"uit\": 5013, \"\\u012039\": 5014, \"asure\": 5015, \"\\u0120Class\": 5016, \"\\u0120covered\": 5017, \"\\u0120Bank\": 5018, \"\\u0120mere\": 5019, \"uana\": 5020, \"\\u0120multi\": 5021, \"\\u0120mix\": 5022, \"\\u0120unlike\": 5023, \"levision\": 5024, \"\\u0120stopped\": 5025, \"\\u0120sem\": 5026, \"\\u0120Gal\": 5027, \"ules\": 5028, \"\\u0120wel\": 5029, \"\\u0120Johnson\": 5030, \"la\": 5031, \"\\u0120skill\": 5032, \"\\u0120becoming\": 5033, \"rie\": 5034, \"\\u0120appropriate\": 5035, \"fe\": 5036, \"ellow\": 5037, \"\\u0120Prot\": 5038, \"ulate\": 5039, \"ocation\": 5040, \"\\u0120weekend\": 5041, \"odies\": 5042, \"\\u0120sites\": 5043, \"\\u0120animal\": 5044, \"\\u0120Tim\": 5045, \"\\u0120scale\": 5046, \"\\u0120charged\": 5047, \"\\u0120instruct\": 5048, \"illa\": 5049, \"\\u0120methods\": 5050, \"\\u0120cert\": 5051, \"\\u0120judge\": 5052, \"\\u0120Hel\": 5053, \"\\u0120dollars\": 5054, \"\\u0120standing\": 5055, \"\\u0120Squ\": 5056, \"\\u0120debt\": 5057, \"liam\": 5058, \"\\u0120driving\": 5059, \"\\u0120Sum\": 5060, \"\\u0120Edition\": 5061, \"\\u0120album\": 5062, \"andon\": 5063, \"IF\": 5064, \"\\u0120Uk\": 5065, \"63\": 5066, \"ader\": 5067, \"\\u0120commercial\": 5068, \"esh\": 5069, \"\\u0120Government\": 5070, \"\\u0120discovered\": 5071, \"\\u0120output\": 5072, \"\\u0120Hillary\": 5073, \"\\u0120Carol\": 5074, \"\\u01202005\": 5075, \"\\u0120abuse\": 5076, \"ancing\": 5077, \"\\u0120switch\": 5078, \"\\u0120annual\": 5079, \"Tw\": 5080, \"\\u0120stated\": 5081, \"agement\": 5082, \"inner\": 5083, \"\\u0120democr\": 5084, \"\\u0120residents\": 5085, \"\\u0120allowing\": 5086, \"\\u0120factors\": 5087, \"odd\": 5088, \"\\u0120fuck\": 5089, \"emies\": 5090, \"\\u0120occurred\": 5091, \"oti\": 5092, \"\\u0120north\": 5093, \"\\u0120Public\": 5094, \"\\u0120injury\": 5095, \"\\u0120insurance\": 5096, \"CL\": 5097, \"olly\": 5098, \"\\u00e3\\u0122\": 5099, \"\\u0120repeated\": 5100, \"\\u0120arms\": 5101, \"anged\": 5102, \"\\u0120construction\": 5103, \"\\u0120fle\": 5104, \"PU\": 5105, \"icians\": 5106, \"\\u0120forms\": 5107, \"\\u0120McC\": 5108, \"antic\": 5109, \"\\u0120mental\": 5110, \"pire\": 5111, \"\\u0120equipment\": 5112, \"\\u0120fant\": 5113, \"\\u0120discussion\": 5114, \"\\u0120regarding\": 5115, \"kin\": 5116, \"arp\": 5117, \"\\u0120chair\": 5118, \"ogue\": 5119, \"\\u0120proceed\": 5120, \"\\u0120Id\": 5121, \"Our\": 5122, \"\\u0120murder\": 5123, \"Man\": 5124, \"\\u012049\": 5125, \"asp\": 5126, \"\\u0120supply\": 5127, \"\\u0120input\": 5128, \"\\u0120wealth\": 5129, \"liament\": 5130, \"\\u0120proced\": 5131, \"orial\": 5132, \"\\u0120Stat\": 5133, \"\\u0120NFL\": 5134, \"hens\": 5135, \"\\u0120Institute\": 5136, \"\\u0120putting\": 5137, \"ournament\": 5138, \"etic\": 5139, \"\\u0120located\": 5140, \"\\u0120kid\": 5141, \"eria\": 5142, \"run\": 5143, \"\\u0120princ\": 5144, \"\\u0120!\": 5145, \"going\": 5146, \"\\u0120Bet\": 5147, \"\\u0120clot\": 5148, \"\\u0120telling\": 5149, \"\\u0120proposed\": 5150, \"iot\": 5151, \"orry\": 5152, \"\\u0120funds\": 5153, \"gment\": 5154, \"\\u0120Life\": 5155, \"\\u0120baby\": 5156, \"\\u0120Back\": 5157, \"\\u0120spoke\": 5158, \"Image\": 5159, \"\\u0120earn\": 5160, \"\\u0120AT\": 5161, \"gu\": 5162, \"\\u0120exchange\": 5163, \"\\u0120Lin\": 5164, \"oving\": 5165, \"\\u0120pair\": 5166, \"More\": 5167, \"azon\": 5168, \"\\u0120arrested\": 5169, \"\\u0120killing\": 5170, \"can\": 5171, \"\\u0120Card\": 5172, \"yd\": 5173, \"\\u0120identified\": 5174, \"\\u0120mobile\": 5175, \"\\u0120thanks\": 5176, \"onym\": 5177, \"\\u0120Form\": 5178, \"\\u0120hundreds\": 5179, \"\\u0120Chris\": 5180, \"\\u0120Cat\": 5181, \"\\u0120trend\": 5182, \"hat\": 5183, \"\\u0120Av\": 5184, \"oman\": 5185, \"\\u0120electric\": 5186, \"\\u0120Wil\": 5187, \"SE\": 5188, \"Of\": 5189, \"\\u0120restaur\": 5190, \"oted\": 5191, \"\\u0120trig\": 5192, \"\\u0120nine\": 5193, \"\\u0120bomb\": 5194, \"Why\": 5195, \"\\u00c2\\u00af\": 5196, \"\\u0120coverage\": 5197, \"\\u0120appeal\": 5198, \"\\u0120Robert\": 5199, \"\\u0120Sup\": 5200, \"\\u0120finished\": 5201, \"\\u0120flow\": 5202, \"\\u0120deliver\": 5203, \"\\u0120calcul\": 5204, \"\\u0120photos\": 5205, \"\\u0120phil\": 5206, \"\\u0120pieces\": 5207, \"\\u0120appre\": 5208, \"kes\": 5209, \"\\u0120rough\": 5210, \"Do\": 5211, \"\\u0120partner\": 5212, \"\\u0120concerned\": 5213, \"\\u012037\": 5214, \"\\u0120Gen\": 5215, \"Col\": 5216, \"ctors\": 5217, \"\\u0120=>\": 5218, \"state\": 5219, \"\\u0120suggested\": 5220, \"\\u0120Force\": 5221, \"CE\": 5222, \"\\u0120herself\": 5223, \"\\u0120Plan\": 5224, \"works\": 5225, \"ooth\": 5226, \"rency\": 5227, \"\\u0120corner\": 5228, \"\\u0120husband\": 5229, \"\\u0120internet\": 5230, \"\\u0120Aut\": 5231, \"ems\": 5232, \"osen\": 5233, \"\\u0120Atl\": 5234, \"gen\": 5235, \"\\u0120balance\": 5236, \"62\": 5237, \"\\u0120sounds\": 5238, \"text\": 5239, \"\\u0120arr\": 5240, \"oves\": 5241, \"\\u0120millions\": 5242, \"\\u0120radio\": 5243, \"\\u0120satisf\": 5244, \"\\u0120Dam\": 5245, \"Mr\": 5246, \"Go\": 5247, \"Spe\": 5248, \"\\u0120combat\": 5249, \"rant\": 5250, \"\\u0120Gree\": 5251, \"\\u0120fuel\": 5252, \"\\u0120distance\": 5253, \"\\u0120tests\": 5254, \"\\u0120decre\": 5255, \"\\u0120Er\": 5256, \"\\u0120managed\": 5257, \"DS\": 5258, \"\\u0120tit\": 5259, \"\\u0120measures\": 5260, \"\\u0120Liber\": 5261, \"\\u0120attend\": 5262, \"ashed\": 5263, \"\\u0120Jose\": 5264, \"\\u0120Night\": 5265, \"dit\": 5266, \"\\u0120Nov\": 5267, \"\\u0120End\": 5268, \"outs\": 5269, \"\\u0120generation\": 5270, \"\\u0120advoc\": 5271, \"yth\": 5272, \"\\u0120conversation\": 5273, \"\\u0120Sky\": 5274, \"active\": 5275, \"cel\": 5276, \"rier\": 5277, \"\\u0120Frank\": 5278, \"\\u0120gender\": 5279, \"\\u0120concent\": 5280, \"\\u0120carried\": 5281, \"anda\": 5282, \"\\u0120Virgin\": 5283, \"\\u0120arrived\": 5284, \"icide\": 5285, \"aded\": 5286, \"\\u0120failure\": 5287, \"\\u0120minimum\": 5288, \"lets\": 5289, \"\\u0120worst\": 5290, \"\\u0120keeping\": 5291, \"\\u0120intended\": 5292, \"\\u0120illegal\": 5293, \"\\u0120subsc\": 5294, \"\\u0120determined\": 5295, \"\\u0120trip\": 5296, \"Yes\": 5297, \"\\u0120raise\": 5298, \"\\u0120~\": 5299, \"\\u0120feels\": 5300, \"\\u0120package\": 5301, \"\\u0120Jo\": 5302, \"hi\": 5303, \"2016\": 5304, \"real\": 5305, \"\\u0120fra\": 5306, \"\\u0120symb\": 5307, \"Me\": 5308, \"ucky\": 5309, \"pret\": 5310, \"\\u0120Kh\": 5311, \"\\u0120Edit\": 5312, \"\\u0120Web\": 5313, \"emic\": 5314, \"\\u0120Color\": 5315, \"\\u0120justice\": 5316, \"Int\": 5317, \"\\u0120farm\": 5318, \"cknow\": 5319, \"\\\">\": 5320, \"eless\": 5321, \"\\u0120reduced\": 5322, \"\\u0120500\": 5323, \"xx\": 5324, \"\\u0120Rad\": 5325, \"\\u0120Wood\": 5326, \"\\u0120clin\": 5327, \"\\u0120hyp\": 5328, \"iler\": 5329, \"ura\": 5330, \"kins\": 5331, \"85\": 5332, \"61\": 5333, \"\\u0120Their\": 5334, \"\\u0120Mary\": 5335, \"\\u0120san\": 5336, \"\\u0120novel\": 5337, \"\\u0120Who\": 5338, \"\\u0120capacity\": 5339, \"\\u0120impossible\": 5340, \"\\u0120plays\": 5341, \"\\u0120minister\": 5342, \"ijuana\": 5343, \"icate\": 5344, \"\\u0120Set\": 5345, \"\\u0120fram\": 5346, \"\\u0120ing\": 5347, \"\\u0120communities\": 5348, \"\\u0120FBI\": 5349, \"ita\": 5350, \"\\u0120bon\": 5351, \"\\u0120strateg\": 5352, \"\\u0120interests\": 5353, \"lock\": 5354, \"gers\": 5355, \"mas\": 5356, \"\\u0120AND\": 5357, \"\\u0120conflict\": 5358, \"\\u0120requirements\": 5359, \"\\u0120sac\": 5360, \"\\u0120operating\": 5361, \"ini\": 5362, \"related\": 5363, \"\\u0120committed\": 5364, \"\\u0120relatively\": 5365, \"\\u0120south\": 5366, \"\\u00c2\\u00af\\u00c2\\u00af\": 5367, \"\\u0120afford\": 5368, \"\\u0120identity\": 5369, \"\\u0120decisions\": 5370, \"\\u0120accused\": 5371, \"place\": 5372, \"\\u0120victory\": 5373, \"och\": 5374, \"iat\": 5375, \"Name\": 5376, \"Com\": 5377, \"tion\": 5378, \"eds\": 5379, \"\\u0120seek\": 5380, \"\\u0120tight\": 5381, \"\\u0120Images\": 5382, \"\\u0120initi\": 5383, \"\\u0120humans\": 5384, \"\\u0120familiar\": 5385, \"\\u0120audience\": 5386, \"\\u0120internal\": 5387, \"venture\": 5388, \"\\u0120sides\": 5389, \"\\u0120TO\": 5390, \"\\u0120dim\": 5391, \"\\u0120conclud\": 5392, \"\\u0120appoint\": 5393, \"\\u0120enforcement\": 5394, \"\\u0120Jim\": 5395, \"\\u0120Association\": 5396, \"\\u0120circumst\": 5397, \"\\u0120Canadian\": 5398, \"\\u0120joined\": 5399, \"\\u0120differences\": 5400, \"\\u0120Los\": 5401, \"\\u0120protest\": 5402, \"\\u0120twice\": 5403, \"win\": 5404, \"\\u0120glass\": 5405, \"arsh\": 5406, \"\\u0120Army\": 5407, \"\\u0120expression\": 5408, \"\\u0120decide\": 5409, \"\\u0120planning\": 5410, \"ania\": 5411, \"\\u0120handle\": 5412, \"\\u0120Microsoft\": 5413, \"\\u0120Nor\": 5414, \"\\u0120maximum\": 5415, \"\\u0120Rev\": 5416, \"\\u0120sea\": 5417, \"\\u0120eval\": 5418, \"\\u0120helps\": 5419, \"ref\": 5420, \"\\u0120bound\": 5421, \"\\u0120mouth\": 5422, \"\\u0120standards\": 5423, \"\\u0120clim\": 5424, \"\\u0120Camp\": 5425, \"\\u0120Fox\": 5426, \"cles\": 5427, \"\\u0120army\": 5428, \"\\u0120Techn\": 5429, \"acking\": 5430, \"xy\": 5431, \"SS\": 5432, \"\\u012042\": 5433, \"\\u0120bug\": 5434, \"\\u0120Ukrain\": 5435, \"\\u0120Max\": 5436, \"\\u0120Jones\": 5437, \"\\u0120Show\": 5438, \"lo\": 5439, \"\\u0120planet\": 5440, \"\\u012075\": 5441, \"\\u0120winning\": 5442, \"\\u0120faster\": 5443, \"\\u0120spect\": 5444, \"\\u0120broken\": 5445, \"TR\": 5446, \"\\u0120defined\": 5447, \"\\u0120healthy\": 5448, \"\\u0120competition\": 5449, \"https\": 5450, \"\\u0120Island\": 5451, \"\\u0120Fe\": 5452, \"\\u0120announce\": 5453, \"\\u0120Cup\": 5454, \"\\u0120Instead\": 5455, \"\\u0120client\": 5456, \"\\u0120possibly\": 5457, \"section\": 5458, \"ocket\": 5459, \"look\": 5460, \"\\u0120finish\": 5461, \"\\u0120crew\": 5462, \"\\u0120reserv\": 5463, \"\\u0120editor\": 5464, \"\\u0120hate\": 5465, \"\\u0120sale\": 5466, \"\\u0120controvers\": 5467, \"\\u0120pages\": 5468, \"wing\": 5469, \"\\u0120numer\": 5470, \"\\u0120opposition\": 5471, \"\\u01202004\": 5472, \"\\u0120refuge\": 5473, \"\\u0120flight\": 5474, \"\\u0120apart\": 5475, \"\\u0120Lat\": 5476, \"Americ\": 5477, \"\\u0120Africa\": 5478, \"\\u0120applications\": 5479, \"\\u0120Palest\": 5480, \"\\u0120Bur\": 5481, \"\\u0120gar\": 5482, \"\\u0120Social\": 5483, \"\\u0120upgr\": 5484, \"\\u0120shape\": 5485, \"\\u0120speaking\": 5486, \"ansion\": 5487, \"ao\": 5488, \"\\u0120Sn\": 5489, \"\\u0120worry\": 5490, \"\\u0120Britain\": 5491, \"Please\": 5492, \"roud\": 5493, \"\\u0120hun\": 5494, \"\\u0120introduced\": 5495, \"\\u0120diet\": 5496, \"Ind\": 5497, \"\\u0120Second\": 5498, \"\\u0120functions\": 5499, \"uts\": 5500, \"\\u0120Each\": 5501, \"\\u0120Jeff\": 5502, \"\\u0120stress\": 5503, \"\\u0120accounts\": 5504, \"\\u0120guarant\": 5505, \"\\u0120Ann\": 5506, \"edia\": 5507, \"\\u0120honest\": 5508, \"\\u0120tree\": 5509, \"\\u0120African\": 5510, \"\\u0120Bush\": 5511, \"},\": 5512, \"\\u0120sch\": 5513, \"\\u0120Only\": 5514, \"\\u0120fif\": 5515, \"igan\": 5516, \"\\u0120exercise\": 5517, \"\\u0120Exp\": 5518, \"\\u0120scientists\": 5519, \"\\u0120legislation\": 5520, \"\\u0120Work\": 5521, \"\\u0120Spr\": 5522, \"\\u00c3\\u0124\": 5523, \"\\u0120Human\": 5524, \"\\u0120\\u00e8\": 5525, \"\\u0120survey\": 5526, \"\\u0120rich\": 5527, \"rip\": 5528, \"\\u0120maintain\": 5529, \"\\u0120flo\": 5530, \"\\u0120leadership\": 5531, \"stream\": 5532, \"\\u0120Islamic\": 5533, \"\\u012001\": 5534, \"\\u0120College\": 5535, \"\\u0120magic\": 5536, \"\\u0120Prime\": 5537, \"\\u0120figures\": 5538, \"2017\": 5539, \"inder\": 5540, \"xual\": 5541, \"\\u0120Dead\": 5542, \"\\u0120absolutely\": 5543, \"\\u0120fourth\": 5544, \"\\u0120presented\": 5545, \"respond\": 5546, \"rible\": 5547, \"\\u0120alcohol\": 5548, \"ato\": 5549, \"\\u0120DE\": 5550, \"porary\": 5551, \"\\u0120grab\": 5552, \"\\u0120vari\": 5553, \"\\u0120quant\": 5554, \"\\u0120Photo\": 5555, \"\\u0120plus\": 5556, \"rick\": 5557, \"arks\": 5558, \"\\u0120alternative\": 5559, \"\\u0120pil\": 5560, \"\\u0120approx\": 5561, \"that\": 5562, \"\\u0120objects\": 5563, \"\\u0120Ro\": 5564, \"\\u0120Android\": 5565, \"\\u0120significantly\": 5566, \"\\u0120Road\": 5567, \"kay\": 5568, \"Read\": 5569, \"avor\": 5570, \"\\u0120acknow\": 5571, \"\\u0120HD\": 5572, \"\\u0120Sing\": 5573, \"Or\": 5574, \"\\u0120Mont\": 5575, \"\\u0120uns\": 5576, \"prof\": 5577, \"\\u0120negoti\": 5578, \"\\u0120Arch\": 5579, \"iki\": 5580, \"\\u0120television\": 5581, \"\\u0120Jewish\": 5582, \"\\u0120committee\": 5583, \"\\u0120motor\": 5584, \"\\u0120appearance\": 5585, \"\\u0120sitting\": 5586, \"\\u0120strike\": 5587, \"\\u0120Down\": 5588, \"comp\": 5589, \"\\u0120Hist\": 5590, \"\\u0120fold\": 5591, \"acement\": 5592, \"\\u0120Louis\": 5593, \"\\u0120belong\": 5594, \"\\u0120\\u00e2\\u0122\\u00a2\": 5595, \"\\u0120mort\": 5596, \"\\u0120prepared\": 5597, \"\\u012064\": 5598, \"\\u0120Master\": 5599, \"\\u0120indeed\": 5600, \"\\u0120Den\": 5601, \"\\u0120rent\": 5602, \"TA\": 5603, \"ourney\": 5604, \"arc\": 5605, \"Su\": 5606, \"97\": 5607, \"\\u0120advice\": 5608, \"\\u0120changing\": 5609, \"\\u0120listed\": 5610, \"\\u0120launched\": 5611, \"isation\": 5612, \"\\u0120Peter\": 5613, \"ishes\": 5614, \"\\u0120lived\": 5615, \"\\u0120Mel\": 5616, \"\\u0120Supreme\": 5617, \"\\u0120Federal\": 5618, \"\\u0120);\": 5619, \"ructure\": 5620, \"\\u0120sets\": 5621, \"\\u0120philos\": 5622, \"uous\": 5623, \"\\u0120\\u00c2\\u0142\": 5624, \"\\u0120applied\": 5625, \"\\u0120NOT\": 5626, \"\\u0120housing\": 5627, \"\\u0120Mount\": 5628, \"\\u0120odd\": 5629, \"\\u0120sust\": 5630, \"DA\": 5631, \"fficient\": 5632, \"\\u0120?\": 5633, \"olved\": 5634, \"\\u0120powers\": 5635, \"\\u0120thr\": 5636, \"\\u0120remaining\": 5637, \"\\u0120Water\": 5638, \"LC\": 5639, \"\\u0120causes\": 5640, \"\\u00e3\\u0123\\u00ae\": 5641, \"\\u0120manner\": 5642, \"ads\": 5643, \"\\u0120suggests\": 5644, \"\\u0120ends\": 5645, \"standing\": 5646, \"fig\": 5647, \"\\u0120Dun\": 5648, \"idth\": 5649, \"\\u0120gay\": 5650, \"\\u0120termin\": 5651, \"\\u0120Angeles\": 5652, \"MS\": 5653, \"\\u0120scientific\": 5654, \"\\u0120coal\": 5655, \"apers\": 5656, \"bar\": 5657, \"\\u0120Thomas\": 5658, \"\\u0120sym\": 5659, \"\\u0120Run\": 5660, \"this\": 5661, \"PC\": 5662, \"igrants\": 5663, \"\\u0120minute\": 5664, \"\\u0120District\": 5665, \"cellent\": 5666, \"\\u0120leaves\": 5667, \"\\u0120completed\": 5668, \"amin\": 5669, \"\\u0120focused\": 5670, \"\\u0120monitor\": 5671, \"\\u0120vehicles\": 5672, \"MA\": 5673, \"\\u0120Mass\": 5674, \"\\u0120Grand\": 5675, \"\\u0120affected\": 5676, \"itutional\": 5677, \"\\u0120construct\": 5678, \"\\u0120follows\": 5679, \"\\u0120ton\": 5680, \"reens\": 5681, \"\\u0120homes\": 5682, \"\\u0120Ext\": 5683, \"\\u0120Level\": 5684, \"rast\": 5685, \"\\u0120Ir\": 5686, \"\\u0120elim\": 5687, \"\\u0120largely\": 5688, \"\\u0120Joe\": 5689, \"\\u0120votes\": 5690, \"alls\": 5691, \"\\u0120businesses\": 5692, \"\\u0120Foundation\": 5693, \"\\u0120Central\": 5694, \"\\u0120yards\": 5695, \"\\u0120materials\": 5696, \"ulner\": 5697, \"\\u0120guide\": 5698, \"\\u0120closer\": 5699, \"ums\": 5700, \"\\u0120sports\": 5701, \"eder\": 5702, \"Just\": 5703, \"\\u0120taxes\": 5704, \"84\": 5705, \"\\u0120Old\": 5706, \"\\u0120decade\": 5707, \"ola\": 5708, \"\\u0120vir\": 5709, \"\\u0120dropped\": 5710, \"\\u0120delay\": 5711, \"itect\": 5712, \"\\u0120secure\": 5713, \"stein\": 5714, \"level\": 5715, \"\\u0120treated\": 5716, \"\\u0120filed\": 5717, \"aine\": 5718, \"\\u0120van\": 5719, \"\\u0120mir\": 5720, \"\\u0120column\": 5721, \"icted\": 5722, \"eper\": 5723, \"\\u0120rot\": 5724, \"\\u0120consult\": 5725, \"\\u0120entry\": 5726, \"\\u0120marijuana\": 5727, \"\\u0120Dou\": 5728, \"\\u0120apparently\": 5729, \"oking\": 5730, \"clusive\": 5731, \"\\u0120increases\": 5732, \"ano\": 5733, \"\\u0120specifically\": 5734, \"\\u0120tele\": 5735, \"ensions\": 5736, \"\\u0120religion\": 5737, \"abilities\": 5738, \"\\u0120frame\": 5739, \"\\u0120Note\": 5740, \"\\u0120Lee\": 5741, \"\\u0120helping\": 5742, \"\\u0120edge\": 5743, \"oston\": 5744, \"\\u0120organizations\": 5745, \"\\u00c3\\u0125\": 5746, \"\\u0120Both\": 5747, \"hips\": 5748, \"\\u0120bigger\": 5749, \"\\u0120boost\": 5750, \"\\u0120Stand\": 5751, \"\\u0120row\": 5752, \"uls\": 5753, \"abase\": 5754, \"\\u0120rid\": 5755, \"Let\": 5756, \"aren\": 5757, \"rave\": 5758, \"\\u0120stret\": 5759, \"PD\": 5760, \"\\u0120vision\": 5761, \"\\u0120wearing\": 5762, \"\\u0120appreci\": 5763, \"\\u0120award\": 5764, \"\\u0120Use\": 5765, \"\\u0120factor\": 5766, \"war\": 5767, \"ulations\": 5768, \")(\": 5769, \"\\u0120god\": 5770, \"\\u0120territ\": 5771, \"\\u0120param\": 5772, \"asts\": 5773, \"87\": 5774, \"\\u0120enemies\": 5775, \"\\u0120Games\": 5776, \"FF\": 5777, \"\\u0120accident\": 5778, \"Well\": 5779, \"\\u0120Martin\": 5780, \"TER\": 5781, \"\\u0120ath\": 5782, \"\\u0120Hell\": 5783, \"\\u0120forg\": 5784, \"\\u0120veter\": 5785, \"\\u0120Medic\": 5786, \"free\": 5787, \"\\u0120stars\": 5788, \"\\u0120expensive\": 5789, \"\\u0120acad\": 5790, \"rawn\": 5791, \"\\u0120Whe\": 5792, \"\\u0120lock\": 5793, \"\\u0120format\": 5794, \"\\u0120soldiers\": 5795, \"sm\": 5796, \"\\u0120agent\": 5797, \"\\u0120responsibility\": 5798, \"ora\": 5799, \"\\u0120Science\": 5800, \"\\u0120rapid\": 5801, \"\\u0120tough\": 5802, \"\\u0120Jesus\": 5803, \"\\u0120believes\": 5804, \"ML\": 5805, \"\\u0120wear\": 5806, \"lete\": 5807, \"\\u00c3\\u0125\\u00c3\\u0124\": 5808, \"\\u0120Dri\": 5809, \"\\u0120commission\": 5810, \"\\u0120Bob\": 5811, \"Oh\": 5812, \"aped\": 5813, \"\\u0120warm\": 5814, \"\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\": 5815, \"\\u01202003\": 5816, \"ortion\": 5817, \"\\u0120hasn\": 5818, \"uster\": 5819, \"\\u0120univers\": 5820, \"\\u0120Ill\": 5821, \"\\u0120king\": 5822, \"ologies\": 5823, \"94\": 5824, \"\\u0120Tem\": 5825, \"\\u0120Mos\": 5826, \"\\u0120patient\": 5827, \"\\u0120Mexico\": 5828, \"cean\": 5829, \"\\u0120Death\": 5830, \"\\u0120Sanders\": 5831, \"you\": 5832, \"\\u0120Cast\": 5833, \"\\u0120Company\": 5834, \"pty\": 5835, \"\\u0120happening\": 5836, \"FP\": 5837, \"\\u0120Battle\": 5838, \"\\u0120bought\": 5839, \"Am\": 5840, \"Mod\": 5841, \"Us\": 5842, \"uters\": 5843, \"\\u0120Cre\": 5844, \"\\u0120Those\": 5845, \"\\u012044\": 5846, \"iser\": 5847, \"\\u0120soul\": 5848, \"\\u0120Top\": 5849, \"\\u0120Harry\": 5850, \"\\u0120Aw\": 5851, \"\\u0120seat\": 5852, \"ffee\": 5853, \"\\u0120revolution\": 5854, \"\\u0120(\\\"\": 5855, \"\\u0120During\": 5856, \"ette\": 5857, \"\\u0120ring\": 5858, \"\\u0120offensive\": 5859, \"\\u0120returns\": 5860, \"\\u0120videos\": 5861, \"\\u0120discl\": 5862, \"\\u0120famous\": 5863, \"enced\": 5864, \"\\u0120Sign\": 5865, \"\\u0120River\": 5866, \"\\u0120300\": 5867, \"PM\": 5868, \"\\u0120Bus\": 5869, \"\\u0120CH\": 5870, \"\\u0120candidates\": 5871, \"arden\": 5872, \"\\u0120percentage\": 5873, \"\\u0120visual\": 5874, \"\\u0120thank\": 5875, \"\\u0120trouble\": 5876, \"nergy\": 5877, \"\\u01202001\": 5878, \"\\u0120prove\": 5879, \"ashion\": 5880, \"\\u0120enh\": 5881, \"\\u0120Long\": 5882, \"UM\": 5883, \"\\u0120connected\": 5884, \"\\u0120possibility\": 5885, \"Over\": 5886, \"\\u0120expert\": 5887, \"\\u0120library\": 5888, \"arts\": 5889, \"\\u0120Director\": 5890, \"\\u0120fellow\": 5891, \"92\": 5892, \"irty\": 5893, \"\\u0120dry\": 5894, \"\\u0120signs\": 5895, \"\\u0120Love\": 5896, \"\\u0120quiet\": 5897, \"foot\": 5898, \"\\u0120pure\": 5899, \"\\u0120Hun\": 5900, \"\\u0120filled\": 5901, \"phas\": 5902, \"\\u0120Elect\": 5903, \"endment\": 5904, \"\\u0120Expl\": 5905, \"\\u0120unable\": 5906, \"ns\": 5907, \"mo\": 5908, \"\\u0120vast\": 5909, \"obe\": 5910, \"\\u0120identify\": 5911, \"apping\": 5912, \"\\u0120Carolina\": 5913, \"gress\": 5914, \"\\u0120prote\": 5915, \"\\u0120fish\": 5916, \"\\u0120circumstances\": 5917, \"razy\": 5918, \"\\u0120Phot\": 5919, \"\\u0120bodies\": 5920, \"\\u0120Mur\": 5921, \"\\u0120developing\": 5922, \"\\u0120AR\": 5923, \"\\u0120experienced\": 5924, \"\\u0120substant\": 5925, \"\\u0120Board\": 5926, \"esome\": 5927, \"\\u0120domestic\": 5928, \"\\u0120combined\": 5929, \"\\u0120Put\": 5930, \"\\u0120chemical\": 5931, \"\\u0120Child\": 5932, \"\\u0120pool\": 5933, \"\\u0120Cy\": 5934, \"\\u0120egg\": 5935, \"cons\": 5936, \"sters\": 5937, \"\\u0120hurt\": 5938, \"\\u0120markets\": 5939, \"\\u0120conservative\": 5940, \"\\u0120supporters\": 5941, \"\\u0120agencies\": 5942, \"idel\": 5943, \"Ob\": 5944, \"urb\": 5945, \"\\u012043\": 5946, \"\\u0120Defense\": 5947, \"ye\": 5948, \"\\u0120Ap\": 5949, \"dule\": 5950, \"\\u0120temperature\": 5951, \"\\u0120conducted\": 5952, \"\\u0120Chief\": 5953, \"\\u0120pulled\": 5954, \"\\u0120fol\": 5955, \"Last\": 5956, \"onto\": 5957, \"osis\": 5958, \"VER\": 5959, \"Des\": 5960, \"\\u0120Pan\": 5961, \"First\": 5962, \"\\u0120advance\": 5963, \"\\u0120license\": 5964, \"rors\": 5965, \"\\u0120Jon\": 5966, \"\\u0120imagine\": 5967, \"\\u0120hell\": 5968, \"\\u0120fixed\": 5969, \"\\u0120incor\": 5970, \"osite\": 5971, \"\\u0120Log\": 5972, \"icken\": 5973, \"]:\": 5974, \"\\u0120surprise\": 5975, \"hab\": 5976, \"\\u0120craft\": 5977, \"olt\": 5978, \"\\u0120Jul\": 5979, \"\\u0120dial\": 5980, \"\\u0120relevant\": 5981, \"\\u0120entered\": 5982, \"\\u0120leads\": 5983, \"\\u0120AD\": 5984, \"\\u0120Clean\": 5985, \"\\u0120pictures\": 5986, \"essor\": 5987, \"\\u0120alt\": 5988, \"\\u0120paying\": 5989, \"Per\": 5990, \"\\u0120Market\": 5991, \"\\u0120updates\": 5992, \"amily\": 5993, \"\\u0120Type\": 5994, \"\\u0120Home\": 5995, \"\\u012055\": 5996, \"sembly\": 5997, \"rome\": 5998, \"83\": 5999, \"\\u0120greatest\": 6000, \"\\u0120height\": 6001, \"\\u0120heav\": 6002, \"aints\": 6003, \"\\u0120listen\": 6004, \"aser\": 6005, \"\\u0120SH\": 6006, \"\\u0120capable\": 6007, \"acle\": 6008, \"\\u0120perspect\": 6009, \"inating\": 6010, \"\\u0120offering\": 6011, \"rypt\": 6012, \"\\u0120Develop\": 6013, \"abin\": 6014, \"rc\": 6015, \"\\u0120bright\": 6016, \"alty\": 6017, \"arrow\": 6018, \"\\u0120suppl\": 6019, \"inding\": 6020, \"acked\": 6021, \"gypt\": 6022, \"\\u0120Another\": 6023, \"pg\": 6024, \"\\u0120Virginia\": 6025, \"\\u0120Lu\": 6026, \"\\u0120planned\": 6027, \"\\u0120pit\": 6028, \"\\u0120sweet\": 6029, \"Type\": 6030, \"\\u0120Di\": 6031, \"\\u0120typically\": 6032, \"\\u0120Francisco\": 6033, \"\\u0120prospect\": 6034, \"\\u0120Dan\": 6035, \"\\u0120teen\": 6036, \"rees\": 6037, \"\\u0120sched\": 6038, \"\\u0120hol\": 6039, \"\\u0120scr\": 6040, \"\\u0120lots\": 6041, \"life\": 6042, \"\\u0120newsp\": 6043, \"\\u0120forget\": 6044, \"\\u0120None\": 6045, \"\\u0120Middle\": 6046, \"\\u0120Ryan\": 6047, \"edd\": 6048, \"\\u0120severe\": 6049, \"\\u0120suit\": 6050, \"ller\": 6051, \"93\": 6052, \"\\u0120correspond\": 6053, \"\\u0120explos\": 6054, \"uations\": 6055, \"\\u0120flag\": 6056, \"game\": 6057, \"rid\": 6058, \"\\u0120prin\": 6059, \"\\u0120Data\": 6060, \"\\u0120deploy\": 6061, \"\\u0120Enter\": 6062, \"suit\": 6063, \"ghan\": 6064, \"\\u0120Men\": 6065, \"\\u0120thoughts\": 6066, \"\\u0120matters\": 6067, \"\\u0120adapt\": 6068, \"\\u0120Ari\": 6069, \"\\u0120fill\": 6070, \"\\u0120forth\": 6071, \"\\u0120sam\": 6072, \"\\u012041\": 6073, \"\\u0120payment\": 6074, \"\\u0120Hor\": 6075, \"\\u0120spring\": 6076, \"duc\": 6077, \"\\u0120losing\": 6078, \"\\u0120bringing\": 6079, \"FO\": 6080, \"ala\": 6081, \"\\u0120distribution\": 6082, \"hered\": 6083, \"bour\": 6084, \"\\u0120Israeli\": 6085, \"oma\": 6086, \"\\u0120combination\": 6087, \"\\u0120plenty\": 6088, \"VE\": 6089, \"Can\": 6090, \"\\u0120Haw\": 6091, \"\\u0120perman\": 6092, \"\\u0120Special\": 6093, \"\\u0120tow\": 6094, \"\\u0120seeking\": 6095, \"\\u0120examples\": 6096, \"\\u0120classes\": 6097, \"cr\": 6098, \"\\u0120beer\": 6099, \"\\u0120moves\": 6100, \"\\u0120IP\": 6101, \"\\u0120Kn\": 6102, \"\\u0120panel\": 6103, \"Even\": 6104, \"\\u0120properly\": 6105, \"\\u0120ris\": 6106, \"\\u0120plug\": 6107, \"\\u0120estimated\": 6108, \"Every\": 6109, \"\\u0120defensive\": 6110, \"agraph\": 6111, \"\\u0120pregn\": 6112, \"\\u0120instit\": 6113, \"\\u0120Vict\": 6114, \"\\u0120volume\": 6115, \"\\u0120positions\": 6116, \"\\u0120links\": 6117, \"\\u0120Program\": 6118, \"\\u0120Week\": 6119, \"agues\": 6120, \"\\u0120transform\": 6121, \"ker\": 6122, \"\\u0120CEO\": 6123, \"\\u0120cas\": 6124, \"\\u0120opponent\": 6125, \"\\u0120tweet\": 6126, \"\\u0120Code\": 6127, \"\\u0120shop\": 6128, \"\\u0120fly\": 6129, \"\\u0120talks\": 6130, \"\\u0120bag\": 6131, \"Phone\": 6132, \"\\u0120aid\": 6133, \"\\u0120plants\": 6134, \"\\u012065\": 6135, \"\\u0120attorney\": 6136, \"arters\": 6137, \"quest\": 6138, \"\\u0120Magic\": 6139, \"\\u0120begins\": 6140, \"\\u0120myster\": 6141, \"\\u0120environmental\": 6142, \"\\u0120storage\": 6143, \"NN\": 6144, \"\\u0120marg\": 6145, \"\\u0120ske\": 6146, \"\\u0120metal\": 6147, \"elly\": 6148, \"\\u0120ordered\": 6149, \"\\u0120remained\": 6150, \"\\u0120loved\": 6151, \"\\u0120prompt\": 6152, \"\\u0120updated\": 6153, \"\\u0120experts\": 6154, \"\\u0120walking\": 6155, \"\\u0120ancient\": 6156, \"\\u0120performed\": 6157, \"ATE\": 6158, \"\\u0120neither\": 6159, \"iency\": 6160, \"\\u0120manufacture\": 6161, \"\\u0120Pak\": 6162, \"\\u0120selected\": 6163, \"\\u0120mine\": 6164, \"\\u0120ultimately\": 6165, \"\\u0120explan\": 6166, \"\\u0120label\": 6167, \"\\u0120Services\": 6168, \"ributed\": 6169, \"Trump\": 6170, \"\\u0120syn\": 6171, \"\\u0120Ult\": 6172, \"SC\": 6173, \"\\u0120meat\": 6174, \"\\u0120giant\": 6175, \"\\u0120Wars\": 6176, \"\\u0120ON\": 6177, \"\\u0120adm\": 6178, \"\\u0120interpret\": 6179, \"\\u0120evening\": 6180, \"\\u0120evil\": 6181, \"\\u0120Boston\": 6182, \"\\u0120Wild\": 6183, \"\\u0120\\u00c3\": 6184, \"\\u0120Bitcoin\": 6185, \"\\u0120Amazon\": 6186, \"Dr\": 6187, \"\\u0120Information\": 6188, \"\\u0120obviously\": 6189, \"\\u0120advanced\": 6190, \"Photo\": 6191, \"olar\": 6192, \"\\u0120weather\": 6193, \"\\u0120symbol\": 6194, \"\\u0120sole\": 6195, \"\\u0120potentially\": 6196, \"oster\": 6197, \"\\u0120originally\": 6198, \"mun\": 6199, \"300\": 6200, \"aze\": 6201, \"essions\": 6202, \"\\u0120deck\": 6203, \"\\u0120stood\": 6204, \"\\u0120youth\": 6205, \"\\u0120Bern\": 6206, \"Rep\": 6207, \"\\u0120Test\": 6208, \"\\u0120basically\": 6209, \"otic\": 6210, \"\\u0120involve\": 6211, \"olit\": 6212, \"lyn\": 6213, \"See\": 6214, \"\\u0120aircraft\": 6215, \"\\u0120confirm\": 6216, \"EW\": 6217, \"\\u0120messages\": 6218, \"\\u0120Richard\": 6219, \"\\u0120kit\": 6220, \"\\u0120prohib\": 6221, \"\\u0120vulner\": 6222, \"isters\": 6223, \"\\u0120existence\": 6224, \"\\u0120turning\": 6225, \"\\u0120SP\": 6226, \"\\u0120desire\": 6227, \"\\u0120flat\": 6228, \"\\u0120ment\": 6229, \"season\": 6230, \"anges\": 6231, \"\\u0120neighborhood\": 6232, \"\\u0120Lake\": 6233, \"ATION\": 6234, \"\\u0120pointed\": 6235, \"bur\": 6236, \"\\u0120innov\": 6237, \"ucks\": 6238, \"UL\": 6239, \"\\u0120professor\": 6240, \"\\u0120expressed\": 6241, \"AB\": 6242, \"icious\": 6243, \"\\u01202002\": 6244, \"\\u0120Dev\": 6245, \"\\u0120session\": 6246, \"\\u0120bare\": 6247, \"sen\": 6248, \"\\u0120diss\": 6249, \"\\u0120Cath\": 6250, \"\\u0120Pass\": 6251, \"\\u0120Point\": 6252, \"\\u0120doctor\": 6253, \"orrow\": 6254, \"ailed\": 6255, \"\\u0120Rub\": 6256, \"\\u0120DC\": 6257, \"\\u0120Charl\": 6258, \"person\": 6259, \"\\u0120writer\": 6260, \"ighters\": 6261, \"ureau\": 6262, \"\\u0120oblig\": 6263, \"\\u0120recorded\": 6264, \"\\u0120broke\": 6265, \"\\u0120orders\": 6266, \"ilty\": 6267, \"\\u0120motion\": 6268, \"inity\": 6269, \"law\": 6270, \"adium\": 6271, \"\\u0120immigration\": 6272, \"\\u0120contrast\": 6273, \"\\u0120batt\": 6274, \"\\u0120excellent\": 6275, \"\\u0120technical\": 6276, \"ami\": 6277, \"\\u0120tun\": 6278, \"\\u0120cloud\": 6279, \"\\u0120Year\": 6280, \"geon\": 6281, \"\\u0120creation\": 6282, \"\\u0120strange\": 6283, \"\\u0120auth\": 6284, \"\\u0120fort\": 6285, \"born\": 6286, \"\\u0120extent\": 6287, \"\\u0120Today\": 6288, \"\\u0120Club\": 6289, \"\\u0120rain\": 6290, \"\\u0120sample\": 6291, \"\\u0120accepted\": 6292, \"\\u0120tact\": 6293, \"\\u0120fired\": 6294, \"\\u0120Son\": 6295, \"\\u0120stands\": 6296, \"\\u0120boot\": 6297, \"\\u012047\": 6298, \"\\u0120statements\": 6299, \"\\u0120versions\": 6300, \"\\u0120selling\": 6301, \"ounded\": 6302, \"\\u01201990\": 6303, \"\\u0120weren\": 6304, \"\\u0120Watch\": 6305, \"\\u0120experiment\": 6306, \"Post\": 6307, \"\\u0120retail\": 6308, \"uled\": 6309, \"Inst\": 6310, \"unte\": 6311, \"\\u00e3\\u0125\\u00bc\": 6312, \"\\u0120depart\": 6313, \"\\u0120bond\": 6314, \"ivery\": 6315, \"ompl\": 6316, \"\\u0120reaction\": 6317, \"\\u0120Syrian\": 6318, \"\\u0120Pac\": 6319, \"apped\": 6320, \"aniel\": 6321, \"DP\": 6322, \"\\u0120resolution\": 6323, \"\\u0120react\": 6324, \"\\u0120approved\": 6325, \"onom\": 6326, \"mond\": 6327, \"\\u0120Offic\": 6328, \"---\": 6329, \"\\u0120replace\": 6330, \"\\u0120tack\": 6331, \"\\u0120sport\": 6332, \"\\u0120chain\": 6333, \"\\u0120emergency\": 6334, \"rad\": 6335, \"\\u0120Palestin\": 6336, \"\\u012046\": 6337, \"\\u0120automatically\": 6338, \"\\u0120route\": 6339, \"\\u0120pal\": 6340, \"\\u0120banks\": 6341, \"\\u0120Paris\": 6342, \"\\u0120Media\": 6343, \"road\": 6344, \"icing\": 6345, \"ixt\": 6346, \"isted\": 6347, \"\\u0120grew\": 6348, \"\\u0120coord\": 6349, \"\\u0120Where\": 6350, \"omin\": 6351, \"\\u0120subs\": 6352, \"\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\": 6353, \"\\u0120\\u00c2\\u00b1\": 6354, \"\\u0120corporate\": 6355, \"\\u0120selection\": 6356, \"noon\": 6357, \"\\u0120Report\": 6358, \"cs\": 6359, \"cluding\": 6360, \"orders\": 6361, \"anche\": 6362, \"\\u0120Its\": 6363, \"\\u0120slowly\": 6364, \"\\u0120Egypt\": 6365, \"\\u0120Acc\": 6366, \"\\u0120colle\": 6367, \"iques\": 6368, \"EX\": 6369, \"\\u0120attempts\": 6370, \"url\": 6371, \"\\u0120Cross\": 6372, \"\\u0120findings\": 6373, \"\\u0120SC\": 6374, \"\\u0120OR\": 6375, \"\\u0120index\": 6376, \"ensity\": 6377, \"\\u0120Way\": 6378, \"\\u0120Land\": 6379, \"\\u0120shock\": 6380, \"dis\": 6381, \"\\u0120dynam\": 6382, \"\\u0120cart\": 6383, \"mosp\": 6384, \"Since\": 6385, \"iest\": 6386, \"\\u0120Boy\": 6387, \"\\u0120storm\": 6388, \"\\u0120Contin\": 6389, \"2013\": 6390, \"hew\": 6391, \"ilit\": 6392, \"\\u0120essential\": 6393, \"iquid\": 6394, \"Other\": 6395, \"ivered\": 6396, \"\\u0120reasonable\": 6397, \"Act\": 6398, \"\\u0120subsequ\": 6399, \"\\u0120Pack\": 6400, \"\\u0120Fort\": 6401, \"\\u0120considering\": 6402, \"\\u0120university\": 6403, \"log\": 6404, \"\\u0120married\": 6405, \"\\u0120illust\": 6406, \"\\u0120True\": 6407, \"\\u00a3\\u0131\": 6408, \"\\u0120numerous\": 6409, \"rastructure\": 6410, \"\\u0120seriously\": 6411, \"\\u0120referred\": 6412, \"ua\": 6413, \"\\u0120consistent\": 6414, \"onna\": 6415, \"\\u0120Real\": 6416, \"ruption\": 6417, \"ciples\": 6418, \"\\u0120facts\": 6419, \"91\": 6420, \"otes\": 6421, \"erg\": 6422, \"Then\": 6423, \"\\u0120accompl\": 6424, \"Note\": 6425, \"\\u0120revenue\": 6426, \"\\u0120passing\": 6427, \"\\u0120mal\": 6428, \"een\": 6429, \"\\u0120Yet\": 6430, \"\\u0120gather\": 6431, \"terday\": 6432, \"ework\": 6433, \"\\u0120Author\": 6434, \"Pe\": 6435, \"\\u0120optim\": 6436, \"\\u0120rub\": 6437, \"\\u0120\\u00e8\\u00a3\\u0131\": 6438, \"\\u0120unknown\": 6439, \"stone\": 6440, \"\\u0120union\": 6441, \"olve\": 6442, \"\\u0120opportunities\": 6443, \"\\u0120browser\": 6444, \"\\u0120Wal\": 6445, \"\\u0120Cost\": 6446, \"\\u0120reporting\": 6447, \"sts\": 6448, \"pet\": 6449, \"\\u0120sand\": 6450, \"\\u0120suddenly\": 6451, \"\\u0120surprising\": 6452, \"\\u0120VR\": 6453, \"\\u0120somewhat\": 6454, \"\\u0120Bas\": 6455, \"ulture\": 6456, \"izz\": 6457, \"\\u0120CD\": 6458, \"\\u0120challenges\": 6459, \"\\u0120settings\": 6460, \"\\u0120experiences\": 6461, \"\\u0120Full\": 6462, \"\\u0120cann\": 6463, \"\\u0120receiving\": 6464, \"EST\": 6465, \"\\u0120joint\": 6466, \"\\u0120cultural\": 6467, \"\\u0120ast\": 6468, \"82\": 6469, \"astern\": 6470, \"ceived\": 6471, \"\\u0120Cru\": 6472, \"\\u0120bull\": 6473, \"pired\": 6474, \"amm\": 6475, \"\\u0120facing\": 6476, \"power\": 6477, \"\\u0120boss\": 6478, \"\\u0120Hol\": 6479, \"\\u0120instr\": 6480, \"\\u0120increasingly\": 6481, \"\\u0120shift\": 6482, \"\\u0120streets\": 6483, \"\\u0120Williams\": 6484, \"abb\": 6485, \"\\u0120lie\": 6486, \"\\u0120laugh\": 6487, \"\\u0120Ca\": 6488, \"PL\": 6489, \"\\u0120adults\": 6490, \"\\u0120customer\": 6491, \"\\u0120obtained\": 6492, \"\\u0120supporting\": 6493, \"html\": 6494, \"fire\": 6495, \"\\u0120detailed\": 6496, \"\\u0120picked\": 6497, \"\\u0120Right\": 6498, \"lder\": 6499, \"EE\": 6500, \"stood\": 6501, \"\\u0120Kim\": 6502, \"\\u0120wire\": 6503, \"\\u0120sight\": 6504, \"\\u0120developers\": 6505, \"\\u0120persons\": 6506, \"\\u0120sad\": 6507, \"\\u0120cup\": 6508, \"\\u0120warning\": 6509, \"\\u0120boys\": 6510, \"long\": 6511, \"\\u0120bird\": 6512, \"fo\": 6513, \"\\u0120wal\": 6514, \"\\u0120observed\": 6515, \"\\u0120zone\": 6516, \"iveness\": 6517, \"\\u0120channel\": 6518, \"cript\": 6519, \"\\u0120refused\": 6520, \"\\u0120Again\": 6521, \"\\u0120suc\": 6522, \"\\u0120spokesman\": 6523, \"\\u0120Ref\": 6524, \"rite\": 6525, \"ouston\": 6526, \"\\u00e3\\u0125\\u00b3\": 6527, \"\\u0120Sher\": 6528, \"\\u0120acts\": 6529, \"\\u0120Name\": 6530, \"\\u0120struggle\": 6531, \"arry\": 6532, \"ometimes\": 6533, \"\\u0120discrim\": 6534, \"HT\": 6535, \"\\u0120category\": 6536, \"\\u0120realize\": 6537, \"\\u0120employee\": 6538, \"\\u0120Afghan\": 6539, \"enger\": 6540, \"\\u0120guns\": 6541, \"\\u0120Steve\": 6542, \"\\u0120Mot\": 6543, \"\\u0120Ol\": 6544, \"oked\": 6545, \"\\u0120thick\": 6546, \"\\u0120fairly\": 6547, \"illy\": 6548, \"\\u0120surve\": 6549, \"\\u0120Mat\": 6550, \"weight\": 6551, \"\\u00e2\\u0136\": 6552, \"\\u0120troops\": 6553, \"\\u0120agents\": 6554, \"\\u0120battery\": 6555, \"\\u0120motiv\": 6556, \"\\u00c3\\u00a1\": 6557, \"Sec\": 6558, \"den\": 6559, \"overy\": 6560, \"LS\": 6561, \"\\u0120flu\": 6562, \"\\u0120confident\": 6563, \"\\u0120Oper\": 6564, \"\\u0120empty\": 6565, \"\\u0120phen\": 6566, \"\\u0120sector\": 6567, \"\\u0120excited\": 6568, \"\\u0120remote\": 6569, \"aph\": 6570, \"oen\": 6571, \"\\u0120destroyed\": 6572, \"\\u0120moral\": 6573, \"\\u0120HP\": 6574, \"\\u0120Ron\": 6575, \"\\u0120dress\": 6576, \"\\u0120Bat\": 6577, \"\\u0120lit\": 6578, \"\\u0120MS\": 6579, \"\\u0120af\": 6580, \"HL\": 6581, \"rum\": 6582, \"isms\": 6583, \"\\u0120shouldn\": 6584, \"\\u0120sympt\": 6585, \"\\u0120Toronto\": 6586, \"hetic\": 6587, \"\\u0120carbon\": 6588, \"\\u0120installed\": 6589, \"\\u0120violent\": 6590, \"\\u0120solar\": 6591, \"ja\": 6592, \"\\u0120practices\": 6593, \"\\u0120ride\": 6594, \"\\u0120Penn\": 6595, \"\\u0120improved\": 6596, \"\\u0120audio\": 6597, \"\\u0120behavi\": 6598, \"\\u0120PS\": 6599, \"\\u0120eating\": 6600, \"Data\": 6601, \"\\u0120Review\": 6602, \"pass\": 6603, \"claim\": 6604, \"uated\": 6605, \"angers\": 6606, \"chen\": 6607, \"\\u0120properties\": 6608, \"\\u0120anywhere\": 6609, \"Another\": 6610, \"\\u0120blow\": 6611, \"\\u0120Jackson\": 6612, \"\\u0120proud\": 6613, \"\\u0120plane\": 6614, \"lines\": 6615, \"\\u0120square\": 6616, \"\\u0120proof\": 6617, \"ansas\": 6618, \"\\u0120talked\": 6619, \"makers\": 6620, \"\\u0120sister\": 6621, \"\\u0120holds\": 6622, \"\\u0120resident\": 6623, \"\\u0120==\": 6624, \"\\u0120resistance\": 6625, \"\\u0120split\": 6626, \"\\u0120prosecut\": 6627, \"\\u0120confidence\": 6628, \"resents\": 6629, \"\\u0120cuts\": 6630, \"\\u0120exception\": 6631, \"\\u0120zero\": 6632, \"Getty\": 6633, \"\\u0120copyright\": 6634, \"\\u0120totally\": 6635, \"ormal\": 6636, \"ifications\": 6637, \"\\u0120Australian\": 6638, \"\\u0120sick\": 6639, \"\\u0120150\": 6640, \"\\u0120household\": 6641, \"\\u0120fees\": 6642, \"\\u0120drivers\": 6643, \"ogen\": 6644, \"\\u0120NY\": 6645, \"\\u0120necessarily\": 6646, \"\\u0120regulations\": 6647, \"earing\": 6648, \"sl\": 6649, \"\\u0120perspective\": 6650, \"care\": 6651, \"icial\": 6652, \"His\": 6653, \"\\u0120escape\": 6654, \"\\u0120surprised\": 6655, \"\\u0120Van\": 6656, \"urrent\": 6657, \"\\u0120vac\": 6658, \"81\": 6659, \"\\u0120Thus\": 6660, \"\\u0120emphas\": 6661, \"\\u0120Champions\": 6662, \"\\u0120Ice\": 6663, \"\\u0120narr\": 6664, \"\\u0120heads\": 6665, \"\\u0120causing\": 6666, \"bel\": 6667, \"fortunately\": 6668, \"\\u0120Ma\": 6669, \"\\u0120targets\": 6670, \"cipl\": 6671, \"\\u0120afternoon\": 6672, \"\\u0120adds\": 6673, \"\\u0120Maybe\": 6674, \"\\u0120Four\": 6675, \"essed\": 6676, \"plete\": 6677, \"\\u0120usual\": 6678, \"cho\": 6679, \"ingu\": 6680, \"\\u0120withd\": 6681, \"\\u0120Energy\": 6682, \"\\u0120Econom\": 6683, \"OO\": 6684, \"\\u0120articles\": 6685, \"\\u0120injured\": 6686, \"\\u0120manage\": 6687, \"\\u0120explains\": 6688, \"\\u0120diagn\": 6689, \"Rec\": 6690, \"atures\": 6691, \"\\u0120linked\": 6692, \"\\u0120discussed\": 6693, \"\\u0120explo\": 6694, \"\\u0120occasion\": 6695, \"athan\": 6696, \"\\u0120opposite\": 6697, \"\\u0120faces\": 6698, \"\\u0120denied\": 6699, \"\\u0120Knight\": 6700, \"\\u0120nut\": 6701, \"\\u0120approximately\": 6702, \"\\u0120disappoint\": 6703, \"onymous\": 6704, \"\\u0120Best\": 6705, \"\\u0120Lo\": 6706, \"\\u0120Hy\": 6707, \"\\u0120Aff\": 6708, \"\\u0120voting\": 6709, \"anwhile\": 6710, \"\\u0120III\": 6711, \"\\u0120institutions\": 6712, \"agram\": 6713, \"\\u0120Daily\": 6714, \"\\u0120drag\": 6715, \"\\u0120nearby\": 6716, \"\\u0120guilty\": 6717, \"\\u0120conver\": 6718, \"Pre\": 6719, \"ship\": 6720, \"\\u0120reward\": 6721, \"\\u0120philosoph\": 6722, \"\\u0120SS\": 6723, \"ugh\": 6724, \"\\u0120apps\": 6725, \"friend\": 6726, \"\\u0120upper\": 6727, \"\\u0120advert\": 6728, \"\\u0120snow\": 6729, \"\\u0120frust\": 6730, \"\\u0120ourselves\": 6731, \"Fr\": 6732, \"\\u0120Die\": 6733, \"ampion\": 6734, \"\\u0120dismiss\": 6735, \"\\u0120cere\": 6736, \"\\u0120signal\": 6737, \"from\": 6738, \"\\u0120).\": 6739, \"\\u012052\": 6740, \"\\u0120crimes\": 6741, \"itors\": 6742, \"estival\": 6743, \"useum\": 6744, \"\\u0120council\": 6745, \"\\u0120Saud\": 6746, \"May\": 6747, \"\\u0120Gun\": 6748, \"ician\": 6749, \"ether\": 6750, \"\\u0120sufficient\": 6751, \"\\u0120Hen\": 6752, \"sole\": 6753, \"\\u0120historical\": 6754, \"\\u0120Far\": 6755, \"\\u0120Turn\": 6756, \"\\u0120pin\": 6757, \"\\u0120succeed\": 6758, \"mat\": 6759, \"lymp\": 6760, \"\\u0120tradition\": 6761, \"\\u0120Ok\": 6762, \"\\u0120cro\": 6763, \"\\u0120description\": 6764, \"alle\": 6765, \"\\u0120sky\": 6766, \"Te\": 6767, \"\\u0120widely\": 6768, \"\\u0120wave\": 6769, \"\\u0120definition\": 6770, \"\\u0120Jews\": 6771, \"\\u0120cycle\": 6772, \"\\u0120refere\": 6773, \"\\u0120brings\": 6774, \"usal\": 6775, \"\\u0120alive\": 6776, \"\\u0120frequently\": 6777, \"\\u0120intention\": 6778, \"\\u0120Control\": 6779, \"lv\": 6780, \"ystem\": 6781, \"\\u0120privacy\": 6782, \"gent\": 6783, \"rence\": 6784, \"\\u0120Quest\": 6785, \"\\u0120Christmas\": 6786, \"\\u0120rail\": 6787, \"\\u0120cooper\": 6788, \"\\u0120tested\": 6789, \"\\u0120Capt\": 6790, \"asks\": 6791, \"\\u0120comfortable\": 6792, \"\\u0120delivered\": 6793, \"scape\": 6794, \"\\u0120depth\": 6795, \"\\u0120GOP\": 6796, \"\\u0120writes\": 6797, \"\\u0120assets\": 6798, \"\\u0120sav\": 6799, \"iments\": 6800, \"\\u0120transition\": 6801, \"\\u0120artist\": 6802, \"\\u0120Look\": 6803, \"\\u0120lob\": 6804, \"\\u0120components\": 6805, \"arity\": 6806, \"\\u0120walked\": 6807, \"\\u0120root\": 6808, \"\\u0120participants\": 6809, \"\\u0120noticed\": 6810, \"\\u0120resc\": 6811, \"\\u0120nav\": 6812, \"\\u0120Administ\": 6813, \"da\": 6814, \"utral\": 6815, \"plate\": 6816, \"\\u0120importance\": 6817, \"\\u0120assert\": 6818, \"iously\": 6819, \"cription\": 6820, \"\\u0120injuries\": 6821, \"\\u0120Check\": 6822, \"\\u0120registered\": 6823, \"\\u0120intent\": 6824, \"\\u0120missed\": 6825, \"ographic\": 6826, \"\\u0120sentence\": 6827, \"ounter\": 6828, \"\\u0120assistance\": 6829, \"evin\": 6830, \"\\u0120database\": 6831, \"\\u0120buildings\": 6832, \"\\u0120classic\": 6833, \"\\u0120thinks\": 6834, \"\\u0120Ohio\": 6835, \"Pr\": 6836, \"ugg\": 6837, \"\\u0120fee\": 6838, \"pan\": 6839, \"\\u0120effectively\": 6840, \"\\u0120facility\": 6841, \"\\u0120bear\": 6842, \"\\u0120chapter\": 6843, \"\\u0120dogs\": 6844, \"\\u0120Columb\": 6845, \"\\u0120latter\": 6846, \"itial\": 6847, \"\\u0120admitted\": 6848, \"TV\": 6849, \"\\u0120Georg\": 6850, \"\\u0120posts\": 6851, \"\\\\\\\\\": 6852, \"\\u0120lawyer\": 6853, \"\\u0120equival\": 6854, \"\\u0120mand\": 6855, \"\\u0120controlled\": 6856, \"\\u0120Walk\": 6857, \"\\u0120Andrew\": 6858, \"\\u0120menu\": 6859, \"amental\": 6860, \"\\u0120protected\": 6861, \"va\": 6862, \"\\u0120administr\": 6863, \"oral\": 6864, \"\\u0120rein\": 6865, \"\\u0120Sar\": 6866, \"\\u0120amounts\": 6867, \"\\u0120native\": 6868, \"\\u0120Moon\": 6869, \"\\u0120represents\": 6870, \"\\u0120abandon\": 6871, \"\\u0120carrying\": 6872, \"\\u0120tank\": 6873, \"mary\": 6874, \"\\u0120declared\": 6875, \"Tube\": 6876, \"\\u0120hat\": 6877, \"\\u0120punish\": 6878, \"ellect\": 6879, \"mes\": 6880, \"\\u0120universe\": 6881, \"\\u0120Rod\": 6882, \"phy\": 6883, \"\\u0120infrastructure\": 6884, \"\\u012051\": 6885, \"\\u0120opposed\": 6886, \"ownt\": 6887, \"ca\": 6888, \"\\u0120Make\": 6889, \"\\u0120hardware\": 6890, \"\\u0120coffee\": 6891, \"Rel\": 6892, \"bal\": 6893, \"world\": 6894, \"\\u0120Saf\": 6895, \"\\u0120Sea\": 6896, \"inals\": 6897, \"\\u0120owned\": 6898, \"\\u0120hall\": 6899, \"ersion\": 6900, \"\\u0120describe\": 6901, \"\\u0120Pot\": 6902, \"\\u0120portion\": 6903, \"\\u0120atmosp\": 6904, \"\\u0120governments\": 6905, \"\\u0120depending\": 6906, \"\\u0120offense\": 6907, \"\\u0120trick\": 6908, \"awa\": 6909, \"\\u0120Line\": 6910, \"\\u0120Vis\": 6911, \"\\u0120Hard\": 6912, \"\\u0120Orig\": 6913, \"\\u0120Click\": 6914, \"\\u0120desk\": 6915, \"\\u0120Valley\": 6916, \"\\u0120Sov\": 6917, \"\\u0120movies\": 6918, \"\\u0120remark\": 6919, \"\\u0120mail\": 6920, \"\\u0120conscious\": 6921, \"\\u0120ruling\": 6922, \"\\u0120Rights\": 6923, \"\\u0120medic\": 6924, \"hent\": 6925, \"\\u0120Women\": 6926, \"><\": 6927, \"\\u0120replaced\": 6928, \"\\u0120Prem\": 6929, \"\\u0120Thanks\": 6930, \"\\u0120renew\": 6931, \"\\u0120Ball\": 6932, \"iform\": 6933, \"\\u0120shots\": 6934, \"Comm\": 6935, \"\\u0120armed\": 6936, \"\\u0120constant\": 6937, \"\\u0120taste\": 6938, \"\\u0120realized\": 6939, \"\\u0120buff\": 6940, \"\\u0120mo\": 6941, \"\\u0120efficient\": 6942, \"Most\": 6943, \"oration\": 6944, \"ifies\": 6945, \"\\u0120communication\": 6946, \"\\u0120flood\": 6947, \"\\u0120consequences\": 6948, \"\\u0120anyway\": 6949, \"igg\": 6950, \"\\u0120GM\": 6951, \"\\u0120Thank\": 6952, \"\\u0120iron\": 6953, \"\\u0120evolution\": 6954, \"\\u0120Cop\": 6955, \"twitter\": 6956, \"\\u012095\": 6957, \"\\u0120relationships\": 6958, \"adel\": 6959, \"\\u0120Young\": 6960, \"\\u0120proposal\": 6961, \"ayers\": 6962, \"uilding\": 6963, \"\\u0120Hot\": 6964, \"ORE\": 6965, \"cos\": 6966, \"\\u0120collabor\": 6967, \"PG\": 6968, \"axy\": 6969, \"\\u0120knowing\": 6970, \"\\u0120supports\": 6971, \"owed\": 6972, \"\\u0120controls\": 6973, \"\\u0120merely\": 6974, \"umer\": 6975, \"\\u0120athlet\": 6976, \"\\u0120fashion\": 6977, \"path\": 6978, \"\\u0120gift\": 6979, \"\\u0120era\": 6980, \"AND\": 6981, \"\\u0120kinds\": 6982, \"\\u0120Korean\": 6983, \"\\u0120legit\": 6984, \"ulous\": 6985, \"\\u0120essentially\": 6986, \"\\u0120therap\": 6987, \"nic\": 6988, \"\\u0120suffered\": 6989, \"\\u0120hur\": 6990, \"\\u0120promise\": 6991, \"\\u0120excess\": 6992, \"\\u0120overw\": 6993, \"\\u0120prime\": 6994, \"\\u0120Houston\": 6995, \"erry\": 6996, \"\\u0120Ms\": 6997, \"RS\": 6998, \"2012\": 6999, \"\\u0120stores\": 7000, \"\\u0120Olymp\": 7001, \"\\u0120journey\": 7002, \"Although\": 7003, \"Sub\": 7004, \"\\u0120Educ\": 7005, \"\\u0120Chapter\": 7006, \"\\u0120requests\": 7007, \"\\u0120consumers\": 7008, \"\\u0120tiny\": 7009, \"\\u0120isol\": 7010, \"\\u0120Fair\": 7011, \"ba\": 7012, \"\\u0120YOU\": 7013, \"\\u0120crash\": 7014, \"celer\": 7015, \"\\u0120emotional\": 7016, \"\\u0120goods\": 7017, \"\\u0120elected\": 7018, \"\\u0120moder\": 7019, \"\\u0120Linux\": 7020, \"\\u0120blocks\": 7021, \"\\u0120island\": 7022, \"\\u0120Society\": 7023, \"\\u0120elections\": 7024, \"\\u0120broadcast\": 7025, \"\\u0120cheap\": 7026, \"\\u0120nations\": 7027, \"\\u0120seasons\": 7028, \"400\": 7029, \"\\u0120waste\": 7030, \"\\u0120Sat\": 7031, \"\\u0120fields\": 7032, \"employ\": 7033, \"\\u0120profile\": 7034, \"\\u0120authors\": 7035, \"ALL\": 7036, \"\\u0120Gra\": 7037, \"west\": 7038, \"\\u0120Ty\": 7039, \"\\u0120deaths\": 7040, \"\\u0120vacc\": 7041, \"\\u0120formed\": 7042, \"\\u0120du\": 7043, \"\\u0120ongoing\": 7044, \"\\u0120Muslims\": 7045, \"elf\": 7046, \"igure\": 7047, \"\\u0120assume\": 7048, \"\\u0120Ukraine\": 7049, \"water\": 7050, \"\\u0120coast\": 7051, \"\\u0120voted\": 7052, \"gor\": 7053, \"\\u0120AS\": 7054, \"\\u0120Michigan\": 7055, \"aza\": 7056, \"\\u0120Arm\": 7057, \"iro\": 7058, \"\\u0120flex\": 7059, \"asters\": 7060, \"''\": 7061, \"\\u0120welcome\": 7062, \"arl\": 7063, \"\\u0120locations\": 7064, \"igation\": 7065, \"\\u0120Fil\": 7066, \"\\u0120buying\": 7067, \"\\u0120architect\": 7068, \"\\u0120harder\": 7069, \"\\u0120Cub\": 7070, \"\\u0120interface\": 7071, \"\\u0120restaurant\": 7072, \"\\u0120discover\": 7073, \"\\u0120exceed\": 7074, \"\\u0120favour\": 7075, \"gery\": 7076, \"\\u0120duty\": 7077, \"\\u0120pitch\": 7078, \"ador\": 7079, \"\\u0120Mach\": 7080, \"boy\": 7081, \"\\u0120responded\": 7082, \"\\u0120extended\": 7083, \"hers\": 7084, \"Many\": 7085, \"raid\": 7086, \"ifer\": 7087, \"\\u0120Ins\": 7088, \"Ser\": 7089, \"\\u0120medium\": 7090, \"she\": 7091, \"\\u0120Sports\": 7092, \"\\u0120magazine\": 7093, \"utation\": 7094, \"\\u0120limits\": 7095, \"\\u0120Gall\": 7096, \"\\u0120external\": 7097, \"razil\": 7098, \"\\u0120younger\": 7099, \"tle\": 7100, \"\\u0120remind\": 7101, \"\\u0120CON\": 7102, \"\\u0120immediate\": 7103, \"\\u0120hidden\": 7104, \"\\u0120volunte\": 7105, \"\\u0120simpl\": 7106, \"odcast\": 7107, \"\\u0120phase\": 7108, \"dr\": 7109, \"\\u0120plot\": 7110, \"\\u0120exposure\": 7111, \"RI\": 7112, \"ograp\": 7113, \"vin\": 7114, \"anish\": 7115, \"\\u0120Acad\": 7116, \"\\u0120Engine\": 7117, \"\\u0120expansion\": 7118, \"\\u0120Pay\": 7119, \"Your\": 7120, \"\\u0120pushed\": 7121, \"\\u0120Ell\": 7122, \"\\u0120Head\": 7123, \"\\u0120marketing\": 7124, \"\\u0120AC\": 7125, \"ket\": 7126, \"\\u0120hits\": 7127, \"\\u0120gro\": 7128, \"\\u0120Age\": 7129, \"\\u0120Scot\": 7130, \"][\": 7131, \"\\u0120stim\": 7132, \"\\u0120iPhone\": 7133, \"\\u012a\\u0134\": 7134, \"\\u0120narrow\": 7135, \"\\u0120Getty\": 7136, \"\\u0120Turkey\": 7137, \"\\u0120perfectly\": 7138, \"\\u0120enable\": 7139, \"utch\": 7140, \"\\u0120precise\": 7141, \"\\u0120regime\": 7142, \"\\u0120shif\": 7143, \"\\u0120compens\": 7144, \"gun\": 7145, \"div\": 7146, \"\\u0120chosen\": 7147, \"\\u0120Ken\": 7148, \"Any\": 7149, \"\\u0120trees\": 7150, \"\\u0120recommended\": 7151, \"\\u0120Ren\": 7152, \"uable\": 7153, \"\\u0120HT\": 7154, \"Follow\": 7155, \"EG\": 7156, \"\\u0120Hand\": 7157, \"\\u0120Kenn\": 7158, \"\\u0120arguments\": 7159, \"\\u0120exists\": 7160, \"\\u0120bike\": 7161, \"\\u0120Conserv\": 7162, \"\\u0120breaking\": 7163, \"\\u0120Gar\": 7164, \"\\u0120crazy\": 7165, \"\\u0120virtual\": 7166, \"aylor\": 7167, \"ixel\": 7168, \"\\u01201980\": 7169, \"\\u0120permission\": 7170, \"\\u0120Series\": 7171, \"\\u0120consumer\": 7172, \"\\u0120closely\": 7173, \"called\": 7174, \"\\u012054\": 7175, \"\\u0120hopes\": 7176, \"\\u0120array\": 7177, \"\\u0120Win\": 7178, \"\\u0120Labour\": 7179, \"\\u0120spons\": 7180, \"\\u0120Ire\": 7181, \"\\u0120pow\": 7182, \"\\u0120readers\": 7183, \"\\u0120employment\": 7184, \"\\u0120creature\": 7185, \"\\u0120resulting\": 7186, \"\\u0120accurate\": 7187, \"\\u0120moments\": 7188, \"\\u0120argued\": 7189, \"\\u0120ped\": 7190, \"During\": 7191, \"\\u012053\": 7192, \"\\u0120Tal\": 7193, \"\\u0120sought\": 7194, \"\\u0120suffering\": 7195, \"\\u0120icon\": 7196, \"lee\": 7197, \"\\u0120($\": 7198, \"alian\": 7199, \"\\u00c2\\u00b0\": 7200, \"\\u0120pra\": 7201, \"\\u0120bonus\": 7202, \"(\\\"\": 7203, \"ko\": 7204, \"\\u0120acting\": 7205, \"DE\": 7206, \"fall\": 7207, \"\\u0120comparison\": 7208, \"\\u0120smooth\": 7209, \"\\u0120NAS\": 7210, \"upp\": 7211, \"\\u0120Joseph\": 7212, \"eping\": 7213, \"\\u0120Take\": 7214, \"\\u0120Mid\": 7215, \"\\u0120sending\": 7216, \"fast\": 7217, \"\\u0120Fall\": 7218, \"\\u0120dealing\": 7219, \"user\": 7220, \"\\u0120Organ\": 7221, \"Co\": 7222, \"\\u0120attached\": 7223, \"\\u0120sees\": 7224, \"%.\": 7225, \"\\u0120typical\": 7226, \"ART\": 7227, \"\\u0120finds\": 7228, \"\\u0120Asia\": 7229, \"umin\": 7230, \"\\u0120Core\": 7231, \"\\u0120Ent\": 7232, \"inent\": 7233, \"uce\": 7234, \"\\u0120Blood\": 7235, \"\\u0120Never\": 7236, \"\\u0120emails\": 7237, \"\\u0120highlight\": 7238, \"\\u0120confront\": 7239, \"atus\": 7240, \"uted\": 7241, \"\\u0120unus\": 7242, \"\\u0120topic\": 7243, \"\\u0120Adam\": 7244, \"\\u0120ble\": 7245, \"ati\": 7246, \"\\u0120understood\": 7247, \"Set\": 7248, \"struct\": 7249, \"TP\": 7250, \"\\u0120mob\": 7251, \"aa\": 7252, \"\\u0120Start\": 7253, \"pected\": 7254, \"sell\": 7255, \"\\u0120dedicated\": 7256, \"\\u0120CA\": 7257, \"uan\": 7258, \"\\u0120songs\": 7259, \"escription\": 7260, \"\\u0120tech\": 7261, \"\\u0120rape\": 7262, \"\\u0120aside\": 7263, \"\\u0120grant\": 7264, \"\\u012056\": 7265, \"sub\": 7266, \"\\u0120argue\": 7267, \"\\u0120containing\": 7268, \"\\u0120schedule\": 7269, \"\\u0120liberal\": 7270, \"\\u0120publicly\": 7271, \"\\u0120heavily\": 7272, \"\\u0120Ut\": 7273, \"iner\": 7274, \"\\u0120Section\": 7275, \"\\u0120Care\": 7276, \"weet\": 7277, \"ls\": 7278, \"Dis\": 7279, \"\\u00e2\\u0136\\u0122\": 7280, \"\\u0120Follow\": 7281, \"Back\": 7282, \"\\u0120IT\": 7283, \"\\u0120bes\": 7284, \"ji\": 7285, \"\\u0120Hit\": 7286, \"ested\": 7287, \"\\u0120everybody\": 7288, \"\\u0120Swed\": 7289, \"\\u0120femin\": 7290, \"\\u0120facilities\": 7291, \"\\u0120conven\": 7292, \"Comp\": 7293, \"\\u0120OS\": 7294, \"core\": 7295, \"\\u0120anx\": 7296, \"\\u0120division\": 7297, \"\\u0120Cam\": 7298, \"\\u0120Stan\": 7299, \"mates\": 7300, \"\\u0120explore\": 7301, \"plom\": 7302, \"\\u0120shares\": 7303, \"pload\": 7304, \"anes\": 7305, \"\\u0120ideal\": 7306, \"eters\": 7307, \"\\u0120Base\": 7308, \"\\u0120plastic\": 7309, \"\\u0120distinct\": 7310, \"\\u0120Network\": 7311, \"\\u0120Seattle\": 7312, \"\\u0120trading\": 7313, \"ensus\": 7314, \"intend\": 7315, \"\\u0120exhib\": 7316, \"\\u0120initially\": 7317, \"\\u0120Food\": 7318, \"\\u0120thousand\": 7319, \"\\u0120Business\": 7320, \"acter\": 7321, \"\\u0120paragraph\": 7322, \"\\u0120roughly\": 7323, \"\\u0120www\": 7324, \"\\u0120creative\": 7325, \"\\u0120Conf\": 7326, \"\\u0120consumption\": 7327, \"\\u0120films\": 7328, \"agan\": 7329, \"\\u0120obtain\": 7330, \"\\u0120tall\": 7331, \"\\u0120tor\": 7332, \"\\u0120acknowled\": 7333, \"\\u0120grown\": 7334, \"alo\": 7335, \"KE\": 7336, \"\\u0120400\": 7337, \"enders\": 7338, \"taining\": 7339, \"UG\": 7340, \"\\u0120suicide\": 7341, \"\\u0120watched\": 7342, \"\\u0120List\": 7343, \"ali\": 7344, \"rehens\": 7345, \"\\u0120surrounding\": 7346, \"\\u0120pip\": 7347, \"\\u0120flying\": 7348, \"\\u0120Java\": 7349, \"ordan\": 7350, \"\\u0120serving\": 7351, \"inations\": 7352, \"post\": 7353, \"\\u0120sho\": 7354, \"Av\": 7355, \"\\u0120jail\": 7356, \"zy\": 7357, \"\\u01201999\": 7358, \"\\u0120</\": 7359, \"\\u0120literally\": 7360, \"\\u0120Sir\": 7361, \"\\u0120exposed\": 7362, \"\\u0120lies\": 7363, \"star\": 7364, \"\\u0120bat\": 7365, \"\\u0120earned\": 7366, \"\\u0120Dig\": 7367, \"\\u0120specified\": 7368, \"\\u0120Season\": 7369, \"\\u0120degrees\": 7370, \"Donald\": 7371, \"\\u0120centre\": 7372, \"\\u0120sharing\": 7373, \"\\u0120winter\": 7374, \"\\u0120CO\": 7375, \"Che\": 7376, \"\\u0120\\u00ce\": 7377, \"MP\": 7378, \"\\u0120unw\": 7379, \"\\u0120fewer\": 7380, \"\\u0120Mir\": 7381, \"\\u0120somewhere\": 7382, \"\\u0120Key\": 7383, \"\\u0120attacked\": 7384, \"\\u0120Kir\": 7385, \"\\u0120domain\": 7386, \"\\u0120stronger\": 7387, \"\\u012099\": 7388, \"\\u0120penalty\": 7389, \"Id\": 7390, \"Script\": 7391, \"\\u0120declined\": 7392, \"\\u0120neck\": 7393, \"\\u0120fraud\": 7394, \"\\u0120currency\": 7395, \"\\u0120rising\": 7396, \"RC\": 7397, \"\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\": 7398, \"Hz\": 7399, \"\\u0120tab\": 7400, \"\\u0120talent\": 7401, \"nam\": 7402, \"\\u0120NBA\": 7403, \"\\u0120village\": 7404, \"\\u0120legs\": 7405, \"\\u0120Next\": 7406, \"Ed\": 7407, \"\\u0120acid\": 7408, \"\\u0120hyd\": 7409, \"800\": 7410, \"\\u0120involving\": 7411, \"\\u0120Image\": 7412, \"\\u0120Before\": 7413, \"Fl\": 7414, \"\\u0120yesterday\": 7415, \"Source\": 7416, \"\\u0120terrorist\": 7417, \"\\u0120sup\": 7418, \"\\u0120synt\": 7419, \"\\u0120Saudi\": 7420, \"\\u0120west\": 7421, \"\\u0120ru\": 7422, \"burg\": 7423, \"\\u0120visible\": 7424, \"\\u0120struck\": 7425, \"rison\": 7426, \"\\u0120awesome\": 7427, \"\\u0120drawn\": 7428, \"\\u0120answers\": 7429, \"\\u0120Girl\": 7430, \"\\u0120Ram\": 7431, \"\\u0120threats\": 7432, \"\\u0120defeat\": 7433, \"osit\": 7434, \"\\u0120vent\": 7435, \"aturally\": 7436, \"American\": 7437, \"enda\": 7438, \"\\u0120Holy\": 7439, \"\\u0120rum\": 7440, \"%,\": 7441, \"case\": 7442, \"\\u0120History\": 7443, \"\\u0120YouTube\": 7444, \"\\u0120situations\": 7445, \"\\u0120DNA\": 7446, \"Ste\": 7447, \"\\u0120saved\": 7448, \"Item\": 7449, \"\\u0120recip\": 7450, \"ologist\": 7451, \"\\u0120faced\": 7452, \"\\u0120elig\": 7453, \"Once\": 7454, \"\\u0120Li\": 7455, \"uh\": 7456, \"\\u0120mistake\": 7457, \"\\u0120Division\": 7458, \"\\u0120Bell\": 7459, \"\\u0120symptoms\": 7460, \"\\u00c2\\u00ae\": 7461, \"\\u0120domin\": 7462, \"\\u0120falling\": 7463, \"\\u0120ending\": 7464, \"ashes\": 7465, \"\\u0120matches\": 7466, \"\\u0120Online\": 7467, \"\\u0120explanation\": 7468, \"Def\": 7469, \"redit\": 7470, \"\\u0120anymore\": 7471, \"\\u0120Total\": 7472, \"\\u0120FOR\": 7473, \"ushed\": 7474, \"\\u0120letters\": 7475, \"\\u0120risks\": 7476, \"\\u0120OK\": 7477, \"\\u0120reportedly\": 7478, \":\\\\\": 7479, \"\\u0120plate\": 7480, \"\\u0120subjects\": 7481, \"\\u0120attempted\": 7482, \"ifier\": 7483, \"iana\": 7484, \"\\u0120unlikely\": 7485, \"\\u0120Though\": 7486, \"uma\": 7487, \"\\u0120Invest\": 7488, \"\\u0120Prin\": 7489, \"ican\": 7490, \"\\u0120Dar\": 7491, \"\\u0120Colorado\": 7492, \"aug\": 7493, \"\\u0120veget\": 7494, \"aos\": 7495, \"ria\": 7496, \"\\u0120shel\": 7497, \"\\u0120marked\": 7498, \"\\u0120()\": 7499, \"\\u0120spr\": 7500, \"po\": 7501, \"\\u0120Link\": 7502, \"\\u0120defe\": 7503, \"\\u0120Jr\": 7504, \"\\u0120theme\": 7505, \"\\u0120passion\": 7506, \"\\u0120Pen\": 7507, \"\\u0120info\": 7508, \"izer\": 7509, \"\\u0120shit\": 7510, \"\\u0120Civil\": 7511, \"apse\": 7512, \"cre\": 7513, \"\\u0120poly\": 7514, \"\\u0120component\": 7515, \"\\u0120Charles\": 7516, \"\\u0120Ireland\": 7517, \"\\u0120Prov\": 7518, \"\\u0120doctors\": 7519, \"\\u0120granted\": 7520, \"\\u0120paint\": 7521, \"\\u0120honor\": 7522, \"\\u0120smoke\": 7523, \"\\u0120payments\": 7524, \"\\u0120primarily\": 7525, \"\\u0120Kingdom\": 7526, \"rich\": 7527, \"atell\": 7528, \"\\u0120deals\": 7529, \"\\u0120scheduled\": 7530, \"\\u0120fundamental\": 7531, \"\\u0120protein\": 7532, \"\\u0120newspaper\": 7533, \"\\u0120clients\": 7534, \"ython\": 7535, \"\\u0120Date\": 7536, \"hus\": 7537, \"\\u0120feedback\": 7538, \"\\u0120stretch\": 7539, \"\\u0120cock\": 7540, \"\\u0120hotel\": 7541, \"\\u0120Queen\": 7542, \"\\u0120sugar\": 7543, \"\\u0120ju\": 7544, \"\\u0120milk\": 7545, \"\\u0120approval\": 7546, \"\\u0120Live\": 7547, \"\\u0120equivalent\": 7548, \"efully\": 7549, \"\\u0120insert\": 7550, \"zona\": 7551, \"\\u0120extension\": 7552, \"dri\": 7553, \"John\": 7554, \"\\u0120accomp\": 7555, \"Sm\": 7556, \"\\u0120Fund\": 7557, \"\\u0120constantly\": 7558, \"\\u0120``\": 7559, \"\\u0120generated\": 7560, \"\\u0120Action\": 7561, \"\\u0120Psych\": 7562, \"\\u0120Tri\": 7563, \"\\u0120recognize\": 7564, \"\\u0120vary\": 7565, \"pha\": 7566, \"\\u0120Ra\": 7567, \"df\": 7568, \"etch\": 7569, \"\\u0120Soviet\": 7570, \"Two\": 7571, \"\\u0120patterns\": 7572, \"\\u0120profession\": 7573, \"aning\": 7574, \"Time\": 7575, \"\\u0120Lim\": 7576, \"\\u0120colors\": 7577, \"\\u0120Az\": 7578, \"\\u0120TR\": 7579, \"\\u0120infect\": 7580, \"\\u0120phenomen\": 7581, \"\\u0120shell\": 7582, \"Also\": 7583, \"\\u0120puts\": 7584, \"\\u0120delivery\": 7585, \"\\u0120brown\": 7586, \"\\u0120processing\": 7587, \"\\u0120lights\": 7588, \"essage\": 7589, \"\\u0120Brook\": 7590, \"\\u0120Aud\": 7591, \"lation\": 7592, \"\\u0120industrial\": 7593, \"Like\": 7594, \"\\u0120Brazil\": 7595, \"rous\": 7596, \"ESS\": 7597, \"\\u0120Luc\": 7598, \"\\u0120somehow\": 7599, \"\\u012085\": 7600, \"\\u0120proport\": 7601, \"\\u0120politicians\": 7602, \"\\u0120indicate\": 7603, \"\\u0120hole\": 7604, \"\\u0120techniques\": 7605, \"\\u0120competitive\": 7606, \"\\u0120phr\": 7607, \"\\u0120vo\": 7608, \"istent\": 7609, \"\\u0120Dream\": 7610, \"\\u0120campus\": 7611, \"\\u0120aspects\": 7612, \"\\u0120helpful\": 7613, \"\\u0120shield\": 7614, \"orse\": 7615, \"\\u0120trigger\": 7616, \"mal\": 7617, \"\\u012058\": 7618, \"\\u0120tort\": 7619, \"\\u0120personally\": 7620, \"\\u0120tag\": 7621, \"\\u0120keeps\": 7622, \"\\u0120Video\": 7623, \"\\u0120bench\": 7624, \"\\u0120gap\": 7625, \"aire\": 7626, \"\\u0120east\": 7627, \"\\u0120recovery\": 7628, \"perial\": 7629, \"\\u0120profit\": 7630, \"\\u0120Mic\": 7631, \"\\u012057\": 7632, \"\\u0120colon\": 7633, \"\\u0120strongly\": 7634, \"style\": 7635, \"\\u0120allegations\": 7636, \"han\": 7637, \"\\u0120reporters\": 7638, \"jo\": 7639, \"rine\": 7640, \"arget\": 7641, \"andal\": 7642, \"\\u012003\": 7643, \"\\u0120flash\": 7644, \"trans\": 7645, \"\\u0120strict\": 7646, \"\\u0120parking\": 7647, \"\\u0120Pakistan\": 7648, \"\\u0120li\": 7649, \"\\u0120weird\": 7650, \"\\u0120Eric\": 7651, \"\\u0120regions\": 7652, \"\\u0120Jun\": 7653, \"\\u0120intellect\": 7654, \"\\u0120WH\": 7655, \"oding\": 7656, \"ributes\": 7657, \"upid\": 7658, \"\\u0120Tit\": 7659, \"\\u0120finger\": 7660, \"oria\": 7661, \"\\u0120elev\": 7662, \"\\u0120Field\": 7663, \"\\u0120conclusion\": 7664, \";;\": 7665, \"\\u0120feelings\": 7666, \"\\u0120extensive\": 7667, \"\\u0120mixed\": 7668, \"\\u0120neuro\": 7669, \"vy\": 7670, \"\\u0120harass\": 7671, \"\\u0120Circ\": 7672, \"ouch\": 7673, \"\\u0120territory\": 7674, \"\\u0120successfully\": 7675, \"Mar\": 7676, \"\\u0120ingred\": 7677, \"\\u0120overwhel\": 7678, \"\\u0120layer\": 7679, \"View\": 7680, \"\\u0120allies\": 7681, \"illance\": 7682, \"\\u0120Three\": 7683, \"\\u0120bunch\": 7684, \"\\u0120normally\": 7685, \"\\u0120networks\": 7686, \"\\u0120sacr\": 7687, \"\\u0120CIA\": 7688, \"bles\": 7689, \"\\u0120chose\": 7690, \"\\u0120opponents\": 7691, \"\\u0120regardless\": 7692, \"\\u0120franch\": 7693, \"\\u0120pref\": 7694, \"\\u0120Po\": 7695, \"\\u0120bridge\": 7696, \"anna\": 7697, \"\\u0120Silver\": 7698, \"\\u0120wage\": 7699, \"page\": 7700, \"rior\": 7701, \"\\u0120radical\": 7702, \"\\u0120Little\": 7703, \"\\u0120manip\": 7704, \"\\u0120secretary\": 7705, \"\\u0120gang\": 7706, \"DR\": 7707, \"FA\": 7708, \"\\u0120decent\": 7709, \"\\u0120Spirit\": 7710, \"\\u0120uncle\": 7711, \"\\u0120Development\": 7712, \"\\u0120investors\": 7713, \"\\u0120walls\": 7714, \"\\u0120publish\": 7715, \"\\u0120generate\": 7716, \"issions\": 7717, \"car\": 7718, \"\\u0120promote\": 7719, \"\\u0120cutting\": 7720, \"\\u0120chest\": 7721, \"\\u0120drinking\": 7722, \"\\u0120collected\": 7723, \"\\u012072\": 7724, \"\\u0120hoping\": 7725, \"\\u0120embr\": 7726, \"gorith\": 7727, \"\\u0120warned\": 7728, \"\\u0120instructions\": 7729, \"OG\": 7730, \"\\u0120Did\": 7731, \"\\u0120Agency\": 7732, \"\\u0120gear\": 7733, \"\\u0120criticism\": 7734, \"\\u0120Further\": 7735, \"\\u0120util\": 7736, \"anny\": 7737, \"Red\": 7738, \"\\u0120counsel\": 7739, \"\\u0120Asian\": 7740, \"\\u0120reduction\": 7741, \"pool\": 7742, \"\\u0120teaching\": 7743, \"\\u0120deeply\": 7744, \"iy\": 7745, \"\\u0120estimates\": 7746, \"\\u0120choices\": 7747, \"\\u0120permanent\": 7748, \"inem\": 7749, \"kel\": 7750, \"\\u0120fasc\": 7751, \"pse\": 7752, \"file\": 7753, \"\\u0120Low\": 7754, \"\\u0120Person\": 7755, \"\\u0120tournament\": 7756, \"stal\": 7757, \"\\u0120mel\": 7758, \"UST\": 7759, \"\\u0120Ray\": 7760, \"azi\": 7761, \"Val\": 7762, \"\\u0120contained\": 7763, \"\\u0120Holly\": 7764, \"\\u0120wake\": 7765, \"\\u0120reveal\": 7766, \"\\u0120processes\": 7767, \"\\u0120ISIS\": 7768, \"\\u012009\": 7769, \"\\u0120blind\": 7770, \"\\u0120steel\": 7771, \"\\u0120Bad\": 7772, \"\\u0120carefully\": 7773, \"appy\": 7774, \"roit\": 7775, \"\\u0120gaming\": 7776, \"\\u0120houses\": 7777, \"\\u0120Coll\": 7778, \"\\u0120truck\": 7779, \"erm\": 7780, \"\\u0120scored\": 7781, \"\\u0120occas\": 7782, \"return\": 7783, \"bound\": 7784, \"var\": 7785, \"\\u0120sharp\": 7786, \"\\u0120afraid\": 7787, \"\\u0120EX\": 7788, \"amber\": 7789, \"cific\": 7790, \"\\u0120scheme\": 7791, \"NC\": 7792, \"\\u0120Polit\": 7793, \"\\u0120decline\": 7794, \"\\u01201998\": 7795, \"\\u0120pushing\": 7796, \"\\u0120possession\": 7797, \"\\u0120privile\": 7798, \"\\u0120teachers\": 7799, \"\\u0120yield\": 7800, \"HA\": 7801, \"\\u0120Davis\": 7802, \"itled\": 7803, \"########\": 7804, \"\\u0120rig\": 7805, \"\\u0120Daniel\": 7806, \"acon\": 7807, \"\\u0120hide\": 7808, \"uten\": 7809, \"\\u0120colleagues\": 7810, \"\\u0120principles\": 7811, \"\\u0120loud\": 7812, \"\\u0120sin\": 7813, \"\\u0120Demon\": 7814, \"\\u0120stone\": 7815, \"\\u012002\": 7816, \"\\u0120taught\": 7817, \"\\u0120terrible\": 7818, \"\\u0120stuck\": 7819, \"\\u0120Policy\": 7820, \"teen\": 7821, \"\\u0120implementation\": 7822, \"\\u0120BBC\": 7823, \"\\u0120API\": 7824, \"\\u0120wheel\": 7825, \"allas\": 7826, \"\\u0120champions\": 7827, \"olars\": 7828, \"player\": 7829, \"\\u0120repeatedly\": 7830, \"\\u0120Still\": 7831, \"\\u0120likes\": 7832, \"asty\": 7833, \"ester\": 7834, \"\\u0120Catholic\": 7835, \"RL\": 7836, \"\\u0120bath\": 7837, \"\\u0120noise\": 7838, \"title\": 7839, \"\\u0120northern\": 7840, \"Part\": 7841, \"\\u0120magn\": 7842, \"\\u0120fab\": 7843, \"\\u0120Ash\": 7844, \"\\u0120displ\": 7845, \"\\u0120ticket\": 7846, \"\\u0120murd\": 7847, \"\\u0120alongside\": 7848, \"\\u0120Music\": 7849, \"\\u0120river\": 7850, \"\\u0120Steel\": 7851, \"\\u0120CL\": 7852, \"\\u0120Player\": 7853, \"\\u0120Mult\": 7854, \"owing\": 7855, \"rep\": 7856, \"size\": 7857, \"\\u0120tur\": 7858, \"\\u0120Georgia\": 7859, \"iscal\": 7860, \"raction\": 7861, \"\\u0120cable\": 7862, \"\\u012059\": 7863, \"\\u0120wins\": 7864, \"\\u0120upcoming\": 7865, \"\\u0120survive\": 7866, \"\\u0120inspired\": 7867, \"\\u0120Education\": 7868, \"\\u0120statistics\": 7869, \"\\u0120Foot\": 7870, \"iami\": 7871, \"\\u0120yellow\": 7872, \"\\u0120Page\": 7873, \".-\": 7874, \"\\u0120Has\": 7875, \"\\u0120urban\": 7876, \"\\u0120ax\": 7877, \"essel\": 7878, \"\\\\\\\"\": 7879, \"\\u0120quarterback\": 7880, \"\\u0120register\": 7881, \"\\u0120Labor\": 7882, \"\\u0120abilities\": 7883, \"\\u0120Family\": 7884, \"\\u0120variable\": 7885, \"\\u0120Price\": 7886, \"\\u0120contem\": 7887, \"\\u0120thin\": 7888, \"\\u0120Equ\": 7889, \"data\": 7890, \"\\u0120gotten\": 7891, \"\\u0120constit\": 7892, \"\\u0120asks\": 7893, \"\\u0120tail\": 7894, \"\\u0120exciting\": 7895, \"\\u0120Effect\": 7896, \"\\u0120Spanish\": 7897, \"\\u0120encourage\": 7898, \"inson\": 7899, \"\\u0120Ah\": 7900, \"\\u0120commitment\": 7901, \"CS\": 7902, \"\\u0120rally\": 7903, \"\\u0120::\": 7904, \"\\u0120subsid\": 7905, \"\\u0120spin\": 7906, \"\\u0120captured\": 7907, \"2018\": 7908, \"\\u0120innoc\": 7909, \"\\u0120allegedly\": 7910, \"\\u0120Come\": 7911, \"\\u0120artists\": 7912, \"\\u0120Number\": 7913, \"\\u0120electronic\": 7914, \"\\u0120regional\": 7915, \"apes\": 7916, \"\\u0120wra\": 7917, \"\\u0120myth\": 7918, \"prise\": 7919, \"\\u0120Miller\": 7920, \"\\u0120Creat\": 7921, \"\\u0120Episode\": 7922, \"bell\": 7923, \"\\u0120directed\": 7924, \"\\u0120extract\": 7925, \"\\u0120sorry\": 7926, \"\\u0120vice\": 7927, \"agger\": 7928, \"\\u0120Support\": 7929, \"\\u012066\": 7930, \"\\u0120Iron\": 7931, \"\\u0120wonderful\": 7932, \"\\u0120gra\": 7933, \"Net\": 7934, \"ione\": 7935, \"Eng\": 7936, \"\\u0120ships\": 7937, \"ikes\": 7938, \"\\u0120Kevin\": 7939, \"itar\": 7940, \"\\u0120activists\": 7941, \"true\": 7942, \"\\u0120Arizona\": 7943, \"enth\": 7944, \"\\u0120Despite\": 7945, \"\\u0120SE\": 7946, \"\\u0120habit\": 7947, \"ernel\": 7948, \"\\u0120inqu\": 7949, \"\\u0120abortion\": 7950, \"\\u0120void\": 7951, \"\\u0120explicit\": 7952, \"\\u0120engaged\": 7953, \"\\u0120angry\": 7954, \"\\u0120rating\": 7955, \"\\u0120frag\": 7956, \"bro\": 7957, \"icking\": 7958, \"dev\": 7959, \"\\u0120worried\": 7960, \"\\u0120obser\": 7961, \"\\u0120apartment\": 7962, \"\\u0120GT\": 7963, \"\\u0120estate\": 7964, \"\\u0120Constitution\": 7965, \"emon\": 7966, \"\\u0120Snow\": 7967, \"\\u0120county\": 7968, \"\\u0120disag\": 7969, \"\\u0120Stephen\": 7970, \"\\u0120immigrants\": 7971, \"wind\": 7972, \"\\u0120Nations\": 7973, \"\\u0120folks\": 7974, \"Out\": 7975, \"\\u0120gall\": 7976, \"\\u0120targeted\": 7977, \"\\u0120stead\": 7978, \"\\u0120Bon\": 7979, \"\\u0120Lib\": 7980, \"\\u0120informed\": 7981, \"\\u0120120\": 7982, \"chain\": 7983, \"idelines\": 7984, \"orough\": 7985, \"\\u0120driven\": 7986, \"\\u0120regularly\": 7987, \"\\u0120basket\": 7988, \"\\u0120principle\": 7989, \"ocument\": 7990, \"\\u0120stun\": 7991, \"ibilities\": 7992, \"\\u0120Roman\": 7993, \"\\u0120About\": 7994, \"\\u0120alert\": 7995, \"\\u0120democracy\": 7996, \"\\u0120represented\": 7997, \"HS\": 7998, \"cers\": 7999, \"parent\": 8000, \"Art\": 8001, \"pack\": 8002, \"\\u0120diplom\": 8003, \"rets\": 8004, \"\\u0120NO\": 8005, \"\\u0120capture\": 8006, \"\\u0120Adv\": 8007, \"\\u0126\\u00a2\": 8008, \"\\u0120announcement\": 8009, \"\\u0120Lear\": 8010, \"\\u0120hook\": 8011, \"\\u0120purs\": 8012, \"\\u0120Such\": 8013, \"\\u0120Camer\": 8014, \"\\u0120refugees\": 8015, \"\\u0120Ve\": 8016, \"Pol\": 8017, \"\\u0120recognized\": 8018, \"lib\": 8019, \"\\u0120hadn\": 8020, \"Ass\": 8021, \"\\u0120pilot\": 8022, \"ushing\": 8023, \"\\u0120returning\": 8024, \"\\u0120trail\": 8025, \"\\u0120Stone\": 8026, \"\\u0120routine\": 8027, \"\\u0120courts\": 8028, \"\\u0120desper\": 8029, \"\\u0120friendly\": 8030, \"\\u0120Italy\": 8031, \"\\u0120pled\": 8032, \"\\u0120breath\": 8033, \"\\u0120studio\": 8034, \"NS\": 8035, \"\\u0120impressive\": 8036, \"\\u0120Afghanistan\": 8037, \"\\u0120fing\": 8038, \"\\u0120downt\": 8039, \"inking\": 8040, \"\\u0120Rog\": 8041, \"iary\": 8042, \"color\": 8043, \"sex\": 8044, \"aron\": 8045, \"\\u0120fault\": 8046, \"\\u0120Nick\": 8047, \"Down\": 8048, \"\\u0120Rose\": 8049, \"\\u0120Southern\": 8050, \"XX\": 8051, \"isodes\": 8052, \"List\": 8053, \"600\": 8054, \"\\u0120outcome\": 8055, \"err\": 8056, \"\\u0120elsewhere\": 8057, \"\\u0120retire\": 8058, \"\\u0120pounds\": 8059, \"\\u0120Global\": 8060, \"People\": 8061, \"\\u0120communications\": 8062, \"\\u0120loan\": 8063, \"\\u0120ratio\": 8064, \"\\u0120Empire\": 8065, \"\\u0120gonna\": 8066, \"\\u0120invent\": 8067, \"DF\": 8068, \"\\u01201970\": 8069, \"\\u0120Common\": 8070, \"pat\": 8071, \"\\u0120promised\": 8072, \"\\u0120dinner\": 8073, \"\\u0120Hom\": 8074, \"\\u0120creates\": 8075, \"\\u0120operate\": 8076, \"verty\": 8077, \"\\u0120Jordan\": 8078, \"etime\": 8079, \"\\u0120sustain\": 8080, \"Reg\": 8081, \"\\u0120incredible\": 8082, \"ima\": 8083, \"\\u0120warrant\": 8084, \"\\u0120mm\": 8085, \"Att\": 8086, \"\\u0120lawsuit\": 8087, \"\\u0120reviews\": 8088, \"iture\": 8089, \"\\u0120Source\": 8090, \"lights\": 8091, \"\\u0120Ford\": 8092, \"\\u012063\": 8093, \"group\": 8094, \"store\": 8095, \"\\u0120featured\": 8096, \"\\u0120forever\": 8097, \"\\u0120poverty\": 8098, \"\\u0120Pop\": 8099, \"\\u0120CNN\": 8100, \"azz\": 8101, \"abis\": 8102, \"aching\": 8103, \"\\u0120laid\": 8104, \"\\u0120Supp\": 8105, \"\\u0120filter\": 8106, \"ena\": 8107, \"\\u0120Community\": 8108, \"\\u0120creatures\": 8109, \"uction\": 8110, \"\\u0120Royal\": 8111, \"\\u0120association\": 8112, \"\\u0120Connect\": 8113, \"\\u0120Brad\": 8114, \"\\u00e2\\u0138\\u012a\": 8115, \"lers\": 8116, \"there\": 8117, \"\\u0120Gi\": 8118, \"\\u0120valuable\": 8119, \"ACK\": 8120, \"\\u0120Taylor\": 8121, \"\\u0120liquid\": 8122, \"\\u0120Attorney\": 8123, \"\\u0120Carl\": 8124, \"\\u0120Final\": 8125, \"aga\": 8126, \"\\u0120Wilson\": 8127, \"Because\": 8128, \"\\u0120Professor\": 8129, \"aka\": 8130, \"\\u0120incredibly\": 8131, \"rance\": 8132, \"!)\": 8133, \"Ref\": 8134, \"sk\": 8135, \"\\u0120solutions\": 8136, \"\\u0120atmosphere\": 8137, \"\\u0120blame\": 8138, \"umes\": 8139, \"\\u0120Nob\": 8140, \"CA\": 8141, \"umps\": 8142, \"rical\": 8143, \"\\u0120Putin\": 8144, \"\\u0120Dest\": 8145, \"oric\": 8146, \"\\u0120PA\": 8147, \"\\u0120respectively\": 8148, \"wan\": 8149, \"\\u0120fifth\": 8150, \"\\u00e2\\u0126\\u00a2\": 8151, \"\\u0120Cry\": 8152, \"\\u0120governor\": 8153, \"resident\": 8154, \"\\u0120purchased\": 8155, \"\\u0120hack\": 8156, \"\\u0120intense\": 8157, \"obs\": 8158, \"\\u0120origin\": 8159, \"\\u0120define\": 8160, \"\\u0120careful\": 8161, \"***\": 8162, \"\\u0120shoulder\": 8163, \"Click\": 8164, \"\\u0120tied\": 8165, \"\\u0120destruction\": 8166, \"oured\": 8167, \"\\u0120nobody\": 8168, \"\\u0120ho\": 8169, \"\\u0120Exper\": 8170, \"\\u0120tip\": 8171, \"\\\";\": 8172, \"\\u0120technique\": 8173, \"\\u0120jur\": 8174, \"\\u0120Pok\": 8175, \"bow\": 8176, \"\\u0120legend\": 8177, \"\\u0120accord\": 8178, \"\\u0120busy\": 8179, \"\\u0120Intel\": 8180, \"\\u0120hang\": 8181, \"aki\": 8182, \".]\": 8183, \"\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\": 8184, \"\\u0120surgery\": 8185, \"\\u0120reprodu\": 8186, \"\\u0120uniform\": 8187, \"\\u0120scenes\": 8188, \"code\": 8189, \"\\u012062\": 8190, \"lisher\": 8191, \"\\u0120Have\": 8192, \"phia\": 8193, \"\\u0120crypt\": 8194, \"\\u0120recon\": 8195, \"\\u0120scream\": 8196, \"\\u0120adopted\": 8197, \"\\u0120scores\": 8198, \"Ne\": 8199, \"\\u0120Italian\": 8200, \"including\": 8201, \"BO\": 8202, \"\\u0120indicated\": 8203, \"\\u0120entertain\": 8204, \"Gu\": 8205, \"Text\": 8206, \"iel\": 8207, \"\\u0120twenty\": 8208, \"\\u0120engage\": 8209, \"offs\": 8210, \"\\u0120Pacific\": 8211, \"\\u0120smile\": 8212, \"\\u0120personnel\": 8213, \"\\u0120toler\": 8214, \"\\u0120doors\": 8215, \"\\u0120tone\": 8216, \"\\u0120machines\": 8217, \"\\u0120entering\": 8218, \"tenance\": 8219, \"CO\": 8220, \"\\u0120Jersey\": 8221, \"\\u0120forest\": 8222, \"\\u0120horse\": 8223, \"\\u0120complaint\": 8224, \"\\u0120Spring\": 8225, \"yo\": 8226, \"\\u0120Plus\": 8227, \"eding\": 8228, \"\\u0120Return\": 8229, \"quarters\": 8230, \"ials\": 8231, \"cow\": 8232, \"\\u0120academic\": 8233, \"\\u0120fruit\": 8234, \"\\u01201996\": 8235, \"ogether\": 8236, \"\\u0120wine\": 8237, \"\\u0120pursu\": 8238, \"\\u0120Steven\": 8239, \"\\u0120licens\": 8240, \"Who\": 8241, \"\\u0120clothes\": 8242, \"rection\": 8243, \"\\u0120squad\": 8244, \"\\u0120stable\": 8245, \"\\u0120raw\": 8246, \"zens\": 8247, \"Star\": 8248, \"uties\": 8249, \"ancer\": 8250, \"\\u0120keys\": 8251, \"\\u0120Mu\": 8252, \"\\u0120complicated\": 8253, \"iger\": 8254, \"\\u0120Text\": 8255, \"\\u0120absor\": 8256, \"\\u012068\": 8257, \"\\u0120funny\": 8258, \"\\u0120relief\": 8259, \"\\u0120Lew\": 8260, \"\\u0120Cook\": 8261, \"\\u0120chart\": 8262, \"\\u0120drawing\": 8263, \"GE\": 8264, \"\\u0120module\": 8265, \"\\u0120Bull\": 8266, \"ILL\": 8267, \"\\u0120salt\": 8268, \"00000000\": 8269, \"ille\": 8270, \"\\u0120resource\": 8271, \"away\": 8272, \"adelphia\": 8273, \"\\u0120Bru\": 8274, \"\\u012067\": 8275, \"\\u0120somebody\": 8276, \"\\u0120participate\": 8277, \"\\u0120rose\": 8278, \"wered\": 8279, \"\\u0120muscle\": 8280, \"\\u0120consent\": 8281, \"\\u0120continuing\": 8282, \"\\u0120Guardian\": 8283, \"\\u0120Order\": 8284, \"regon\": 8285, \"\\u0120rear\": 8286, \"\\u0120provision\": 8287, \"\\u0120liked\": 8288, \"rient\": 8289, \"\\u0120bra\": 8290, \"Trans\": 8291, \"\\u0120meetings\": 8292, \"\\u0120tox\": 8293, \"\\u0120convent\": 8294, \"\\u0120auto\": 8295, \"\\u0120recording\": 8296, \"\\u0120Soft\": 8297, \"001\": 8298, \"\\u0120Roll\": 8299, \"\\u0120programming\": 8300, \"\\u0120pic\": 8301, \"\\u0120proved\": 8302, \"\\u0120stab\": 8303, \"\\u0120Ast\": 8304, \"\\u0120caption\": 8305, \"ulating\": 8306, \"\\u0120Attack\": 8307, \"\\u0120newly\": 8308, \"\\u01201997\": 8309, \"fr\": 8310, \"\\u0120discipl\": 8311, \"\\u0120Greek\": 8312, \"\\u0120edition\": 8313, \"\\u0120Does\": 8314, \"\\u0120Box\": 8315, \"ifle\": 8316, \"acket\": 8317, \"\\u0120passes\": 8318, \"\\u0120guest\": 8319, \"\\u0120acceler\": 8320, \"itals\": 8321, \"UD\": 8322, \"\\u0120authent\": 8323, \"\\u0120Rest\": 8324, \"oval\": 8325, \"ta\": 8326, \"uine\": 8327, \"\\u0120armor\": 8328, \"\\u0120Town\": 8329, \"\\u0120compat\": 8330, \"\\u0120inches\": 8331, \"Despite\": 8332, \"\\u0120assign\": 8333, \"herent\": 8334, \"\\u0120prepare\": 8335, \"\\u0120Meg\": 8336, \"ockey\": 8337, \"\\u0120depends\": 8338, \"\\u0120tracks\": 8339, \"watch\": 8340, \"\\u0120lists\": 8341, \"\\u0120Northern\": 8342, \"\\u0120alter\": 8343, \"rec\": 8344, \"\\u0120Eastern\": 8345, \"\\u0120condem\": 8346, \"\\u0120everywhere\": 8347, \"?'\": 8348, \"\\u0120affili\": 8349, \"\\u0120fought\": 8350, \"\\\":{\\\"\": 8351, \"\\u0120mac\": 8352, \"itarian\": 8353, \"\\u0120scope\": 8354, \"\\u0120AL\": 8355, \"aws\": 8356, \"arms\": 8357, \"\\u0120que\": 8358, \"\\u0120enjoyed\": 8359, \"nesota\": 8360, \"\\u0120aggressive\": 8361, \"\\u0120Story\": 8362, \"\\u0120IV\": 8363, \"\\u0120recipe\": 8364, \"\\u0120rarely\": 8365, \"\\u0120Medical\": 8366, \"value\": 8367, \"angel\": 8368, \"aying\": 8369, \"omething\": 8370, \"\\u0120subsection\": 8371, \"\\u0120southern\": 8372, \"\\u0120frequency\": 8373, \"rete\": 8374, \"rolled\": 8375, \"ults\": 8376, \"\\u0120Nic\": 8377, \"\\u0120behalf\": 8378, \"\\u0120sequence\": 8379, \"abet\": 8380, \"\\u0120controversial\": 8381, \"\\u0120comprom\": 8382, \"\\u0120worker\": 8383, \"\\u0120mainly\": 8384, \"\\u0120algorith\": 8385, \"\\u0120Major\": 8386, \"orce\": 8387, \"gender\": 8388, \"\\u0120organized\": 8389, \"\\u0120fake\": 8390, \"\\u0120concluded\": 8391, \"\\u0120ED\": 8392, \"\\u0120Exec\": 8393, \"rage\": 8394, \"\\u0120chances\": 8395, \"berry\": 8396, \"\\u0120Trad\": 8397, \"\\u0120configuration\": 8398, \"\\u0120withdraw\": 8399, \"\\u0120fro\": 8400, \"udes\": 8401, \"\\u0120Brother\": 8402, \"\\u0120Brian\": 8403, \"\\u0120tries\": 8404, \"\\u0120samples\": 8405, \"\\u0120bid\": 8406, \"\\u0120Golden\": 8407, \"\\u0120photograph\": 8408, \"ifest\": 8409, \"\\u0120DO\": 8410, \"\\u0120Parliament\": 8411, \"****************\": 8412, \"Rem\": 8413, \"\\u0120contest\": 8414, \"\\u0120signing\": 8415, \"px\": 8416, \"\\u0120Zeal\": 8417, \"\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\": 8418, \"Ear\": 8419, \"\\u0120exit\": 8420, \"Before\": 8421, \"\\u0120Corpor\": 8422, \"null\": 8423, \"month\": 8424, \"\\u0120racial\": 8425, \"otted\": 8426, \"\\u0120Veg\": 8427, \"\\u0120Reuters\": 8428, \"\\u0120sword\": 8429, \"pson\": 8430, \"\\u0120Romney\": 8431, \"aed\": 8432, \"\\u0120trib\": 8433, \"\\u0120inner\": 8434, \"\\u0120protocol\": 8435, \"\\u0120Bi\": 8436, \"\\u0120Miami\": 8437, \"everal\": 8438, \"press\": 8439, \"\\u0120shipping\": 8440, \"\\u0120Amendment\": 8441, \"\\u0120Howard\": 8442, \"connect\": 8443, \"\\u0120Disc\": 8444, \"\\u0120Jac\": 8445, \"iamond\": 8446, \"\\u0120Therefore\": 8447, \"ses\": 8448, \"\\u0120Princess\": 8449, \"\\u0120USB\": 8450, \"\\u0120Anth\": 8451, \"\\u0120surveillance\": 8452, \"\\u0120apolog\": 8453, \"\\u012061\": 8454, \"owa\": 8455, \"\\u0120fulf\": 8456, \"js\": 8457, \"\\u0120luck\": 8458, \"usted\": 8459, \"\\u0120\\u00c2\\u00a7\": 8460, \"ni\": 8461, \"\\u0120anticip\": 8462, \"eman\": 8463, \"\\u0120winner\": 8464, \"\\u0120silver\": 8465, \"lla\": 8466, \"icity\": 8467, \"\\u0120unusual\": 8468, \"\\u0120crack\": 8469, \"\\u0120ties\": 8470, \"ez\": 8471, \"\\u0120practical\": 8472, \"\\u0120province\": 8473, \"\\u0120Place\": 8474, \"\\u0120priority\": 8475, \"ICE\": 8476, \"\\u0120describes\": 8477, \"\\u0120branch\": 8478, \"Form\": 8479, \"aska\": 8480, \"missions\": 8481, \"bi\": 8482, \"\\u0120porn\": 8483, \"\\u0120Turk\": 8484, \"\\u0120enthus\": 8485, \"\\u0120fighters\": 8486, \"\\u012008\": 8487, \"\\u0120Detroit\": 8488, \"\\u0120foundation\": 8489, \"avid\": 8490, \"Are\": 8491, \"\\u0120judgment\": 8492, \"cling\": 8493, \"\\u0120solve\": 8494, \"\\u0120Design\": 8495, \"Where\": 8496, \"hesis\": 8497, \"\\u0120Tro\": 8498, \"after\": 8499, \"\\u0120neutral\": 8500, \"\\u0120Palestinian\": 8501, \"\\u0120Hollywood\": 8502, \"\\u0120advis\": 8503, \"\\u0120Non\": 8504, \"yes\": 8505, \"olis\": 8506, \"\\u0120reputation\": 8507, \"\\u0120smell\": 8508, \"\\u0120bread\": 8509, \"\\u0120Bul\": 8510, \"\\u0120Beach\": 8511, \"\\u0120claiming\": 8512, \"\\u0120genetic\": 8513, \"\\u0120technologies\": 8514, \"\\u0120upgrade\": 8515, \"rows\": 8516, \"\\u0120developer\": 8517, \"\\u0120Josh\": 8518, \"\\u0120Disney\": 8519, \"erved\": 8520, \"ipal\": 8521, \"\\u0120unex\": 8522, \"\\u0120barely\": 8523, \"then\": 8524, \"\\u0120Pub\": 8525, \"\\u0120illness\": 8526, \"etary\": 8527, \"\\u0120Bal\": 8528, \"\\u0120patch\": 8529, \"\\u0120butt\": 8530, \"\\u0120stupid\": 8531, \"\\u0120Dog\": 8532, \"\\u0120Dallas\": 8533, \"front\": 8534, \"iece\": 8535, \"\\u0120protests\": 8536, \"\\u0120chat\": 8537, \"oenix\": 8538, \"\\u0120wing\": 8539, \"\\u0120parliament\": 8540, \"\\u012077\": 8541, \"osexual\": 8542, \"\\u0120render\": 8543, \"ptions\": 8544, \"\\u0120Coast\": 8545, \"osa\": 8546, \"\\u0120Greg\": 8547, \"hop\": 8548, \"\\u0120Management\": 8549, \"\\u0120bitcoin\": 8550, \"\\u0120recover\": 8551, \"\\u0120incorpor\": 8552, \"orne\": 8553, \"\\u0120Using\": 8554, \"\\u0120preced\": 8555, \"\\u0120threatened\": 8556, \"\\u0120spiritual\": 8557, \"\\u0120Event\": 8558, \"\\u0120Fred\": 8559, \"\\u0120advertising\": 8560, \"\\u0120improvements\": 8561, \"\\u0120Custom\": 8562, \"\\u0120errors\": 8563, \"\\u0120sensitive\": 8564, \"\\u0120Navy\": 8565, \"\\u0120cream\": 8566, \"Look\": 8567, \"\\u0120exclusive\": 8568, \"\\u0120comprehens\": 8569, \"\\u0120deleg\": 8570, \"\\u0120conce\": 8571, \"\\u0120remem\": 8572, \"\\u0120structures\": 8573, \"\\u0120stored\": 8574, \"ND\": 8575, \"\\u01201000\": 8576, \"UP\": 8577, \"\\u0120Budd\": 8578, \"AF\": 8579, \"woman\": 8580, \"\\u0120Academy\": 8581, \"\\u00f0\\u0141\": 8582, \"sea\": 8583, \"\\u0120temporary\": 8584, \"About\": 8585, \"esters\": 8586, \"\\u0120tickets\": 8587, \"\\u0120possess\": 8588, \"inch\": 8589, \"oz\": 8590, \"\\u0120la\": 8591, \"\\u0120contracts\": 8592, \"\\u0120unp\": 8593, \"\\u0120cig\": 8594, \"\\u0120Kat\": 8595, \"ultural\": 8596, \"asm\": 8597, \"\\u0120mountain\": 8598, \"\\u0120Captain\": 8599, \"Step\": 8600, \"making\": 8601, \"\\u0120Spain\": 8602, \"\\u0120equally\": 8603, \"\\u0120lands\": 8604, \"aters\": 8605, \"\\u0120rejected\": 8606, \"era\": 8607, \"imm\": 8608, \"rix\": 8609, \"CD\": 8610, \"\\u0120transaction\": 8611, \"gener\": 8612, \"lessly\": 8613, \"\\u0120||\": 8614, \"\\u0120cos\": 8615, \"\\u0120Henry\": 8616, \"\\u0120provisions\": 8617, \"\\u0120gained\": 8618, \"\\u0120directory\": 8619, \"\\u0120raising\": 8620, \"\\u0120Sep\": 8621, \"olen\": 8622, \"onder\": 8623, \"\\u0120console\": 8624, \"inst\": 8625, \"\\u0120bom\": 8626, \"\\u0120uncertain\": 8627, \"150\": 8628, \"ocking\": 8629, \"\\u0120measured\": 8630, \"\\u0120plain\": 8631, \"\\u0120seats\": 8632, \"\\u0120dict\": 8633, \"SL\": 8634, \"afe\": 8635, \"\\u0120estimate\": 8636, \"izon\": 8637, \"athered\": 8638, \"\\u0120contributed\": 8639, \"\\u0120episodes\": 8640, \"ommod\": 8641, \"Gr\": 8642, \"ANT\": 8643, \"\\u012069\": 8644, \"Gener\": 8645, \"\\u0120250\": 8646, \"viously\": 8647, \"rogen\": 8648, \"\\u0120terrorism\": 8649, \"\\u0120movements\": 8650, \"entle\": 8651, \"ounce\": 8652, \"\\u0120Soul\": 8653, \"\\u0120prev\": 8654, \"\\u0120Table\": 8655, \"acts\": 8656, \"riors\": 8657, \"tab\": 8658, \"\\u0120suffer\": 8659, \"\\u0120nerv\": 8660, \"\\u0120mainstream\": 8661, \"\\u0120Wolf\": 8662, \"\\u0120franchise\": 8663, \"bat\": 8664, \"\\u0120demands\": 8665, \"\\u0120agenda\": 8666, \"\\u0120dozen\": 8667, \"\\u0120clinical\": 8668, \"izard\": 8669, \"\\u0120Op\": 8670, \"td\": 8671, \"\\u0120visited\": 8672, \"\\u0120Perhaps\": 8673, \"\\u0120actor\": 8674, \"\\u0120delic\": 8675, \"\\u0120contribute\": 8676, \"\\u0120inject\": 8677, \"\\u0120Es\": 8678, \"acco\": 8679, \"\\u0120listening\": 8680, \"\\u0120congress\": 8681, \"ependent\": 8682, \"\\u0120premium\": 8683, \"\\u012076\": 8684, \"\\u0120Irish\": 8685, \"\\u0120assigned\": 8686, \"\\u0120Phys\": 8687, \"\\u0120worldwide\": 8688, \"\\u0120narrative\": 8689, \"otype\": 8690, \"mont\": 8691, \"base\": 8692, \"\\u0120Bowl\": 8693, \"\\u0120Administration\": 8694, \"\\u0120relation\": 8695, \"\\u0120EV\": 8696, \"CP\": 8697, \"\\u0120covers\": 8698, \"\\u012078\": 8699, \"\\u0120certific\": 8700, \"\\u0120grass\": 8701, \"\\u012004\": 8702, \"piracy\": 8703, \"ira\": 8704, \"\\u0120engineering\": 8705, \"\\u0120Mars\": 8706, \"\\u0120unemploy\": 8707, \"\\u0120Foreign\": 8708, \"stract\": 8709, \"\\u0120ven\": 8710, \"\\u0120steal\": 8711, \"\\u0120replied\": 8712, \"\\u0120ultimate\": 8713, \"\\u0120titles\": 8714, \"dated\": 8715, \"\\u0120joy\": 8716, \"aus\": 8717, \"\\u0120hyper\": 8718, \"aku\": 8719, \"\\u0120officially\": 8720, \"\\u0120Product\": 8721, \"\\u0120difficulty\": 8722, \"peror\": 8723, \"\\u0120resulted\": 8724, \"ribed\": 8725, \"link\": 8726, \"who\": 8727, \"~~~~\": 8728, \"\\u0120Speed\": 8729, \"\\u0120Viet\": 8730, \"Wind\": 8731, \"\\u0120Barack\": 8732, \"\\u0120restrictions\": 8733, \"\\u0120Share\": 8734, \"\\u01201995\": 8735, \"itionally\": 8736, \"\\u0120beauty\": 8737, \"opt\": 8738, \"\\u0120maps\": 8739, \"\\u0120CR\": 8740, \"\\u0120Nation\": 8741, \"\\u0120Cruz\": 8742, \"Will\": 8743, \"\\u0120electricity\": 8744, \"\\u0120org\": 8745, \"\\u0120burd\": 8746, \"\\u0120violation\": 8747, \"\\u0120usage\": 8748, \"\\u0120permit\": 8749, \"\\u0120Chron\": 8750, \"\\u0120Fant\": 8751, \"\\u0120naturally\": 8752, \"\\u012007\": 8753, \"\\u0120thrown\": 8754, \"\\u0120Awoken\": 8755, \"\\u0120alien\": 8756, \"\\u0120Hero\": 8757, \"\\u0120Kent\": 8758, \"\\u0120Rick\": 8759, \"rike\": 8760, \"\\u0120pace\": 8761, \"},{\\\"\": 8762, \"GL\": 8763, \"\\u0120poison\": 8764, \"\\u0120Tower\": 8765, \"\\u0120formal\": 8766, \"alysis\": 8767, \"\\u0120genuine\": 8768, \"\\u0120kil\": 8769, \"aver\": 8770, \"\\u0120procedure\": 8771, \"\\u0120Prop\": 8772, \"intendo\": 8773, \"\\u0120Main\": 8774, \"asant\": 8775, \"\\u0120trained\": 8776, \"Game\": 8777, \"\\u0120Load\": 8778, \"\\u0120MA\": 8779, \"\\u0120crucial\": 8780, \"\\u0120lets\": 8781, \"\\u0120FR\": 8782, \"\\u0120champion\": 8783, \"101\": 8784, \"\\u0120Conference\": 8785, \"\\u0120writers\": 8786, \"\\u0120connections\": 8787, \"\\u0120okay\": 8788, \"irms\": 8789, \"\\u0120Rand\": 8790, \"\\u0120encounter\": 8791, \"\\u0120Buff\": 8792, \"\\u0120achieved\": 8793, \"\\u0120checks\": 8794, \"iscons\": 8795, \"\\u0120assistant\": 8796, \"\\u0120whenever\": 8797, \"\\u0120Access\": 8798, \"\\u0120Ur\": 8799, \"bin\": 8800, \"\\u0120clock\": 8801, \"isp\": 8802, \"opher\": 8803, \"\\u0120borrow\": 8804, \"\\u0120mad\": 8805, \"\\u0120personality\": 8806, \"only\": 8807, \"IST\": 8808, \"abama\": 8809, \"\\u0120gains\": 8810, \"\\u0120commonly\": 8811, \"\\u0120terr\": 8812, \"\\u0120hypot\": 8813, \"\\u0120rely\": 8814, \"\\u0120tiss\": 8815, \"isconsin\": 8816, \"\\u0120ridic\": 8817, \"function\": 8818, \"\\u0120Oregon\": 8819, \"\\u0120uncom\": 8820, \"rating\": 8821, \"eland\": 8822, \"\\u0120NC\": 8823, \"\\u0120moon\": 8824, \"annon\": 8825, \"\\u0120vulnerable\": 8826, \"utive\": 8827, \"\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\": 8828, \"\\u0120Radio\": 8829, \"\\u0120western\": 8830, \"sect\": 8831, \"\\u0120Tony\": 8832, \"\\u0120occurs\": 8833, \"\\u0120Os\": 8834, \"\\u0120Hon\": 8835, \"\\u00c3\\u0143\": 8836, \"\\u0120vessel\": 8837, \"\\u0120Scotland\": 8838, \"\\u0120discrimination\": 8839, \"\\u0120subsequent\": 8840, \"string\": 8841, \"\\u0120fantasy\": 8842, \"\\u0120Shadow\": 8843, \"\\u0120testim\": 8844, \"WE\": 8845, \"iti\": 8846, \"ras\": 8847, \"\\u0120boat\": 8848, \"\\u0120marks\": 8849, \"\\u0120ordinary\": 8850, \"\\u0120ren\": 8851, \"\\u0120representative\": 8852, \"\\u0120petition\": 8853, \"\\u012073\": 8854, \"\\u0120adventure\": 8855, \"\\u0120ignore\": 8856, \"\\u0120Philadelphia\": 8857, \"\\u0120Sav\": 8858, \"VP\": 8859, \"\\u0120factory\": 8860, \"\\u0120tasks\": 8861, \"\\u0120depression\": 8862, \"zed\": 8863, \"................................\": 8864, \"\\u0120Storm\": 8865, \"\\u0120cogn\": 8866, \"\\u0120eligible\": 8867, \"\\u0120reducing\": 8868, \"via\": 8869, \"\\u012005\": 8870, \"\\u0120striking\": 8871, \"\\u0120dollar\": 8872, \"ho\": 8873, \"OV\": 8874, \"\\u0120instrument\": 8875, \"\\u0120philosophy\": 8876, \"\\u0120Moore\": 8877, \"\\u0120Avenue\": 8878, \"\\u0120ruled\": 8879, \"\\u0120Front\": 8880, \"INE\": 8881, \"\\u0120Mah\": 8882, \"\\u0120scenario\": 8883, \"\\u0120NASA\": 8884, \"\\u0120enorm\": 8885, \"\\u0120debut\": 8886, \"\\u0120tea\": 8887, \"Today\": 8888, \"\\u0120absence\": 8889, \"Sim\": 8890, \"\\u0120ham\": 8891, \"leep\": 8892, \"\\u0120tables\": 8893, \"\\u0120Heart\": 8894, \"MI\": 8895, \"Ke\": 8896, \"requ\": 8897, \"VD\": 8898, \"map\": 8899, \"\\u0120chairman\": 8900, \"\\u0120pump\": 8901, \"\\u0120rapidly\": 8902, \"vi\": 8903, \"\\u0120substantial\": 8904, \"EP\": 8905, \"des\": 8906, \"chant\": 8907, \"ilipp\": 8908, \"\\u0120Santa\": 8909, \"riers\": 8910, \"anchester\": 8911, \"Load\": 8912, \"\\u0120Case\": 8913, \"\\u0120saving\": 8914, \"\\u012074\": 8915, \"\\u0120AFP\": 8916, \"erning\": 8917, \"ounced\": 8918, \"\\u0120Minnesota\": 8919, \"\\u0120Was\": 8920, \"\\u0120recru\": 8921, \"\\u0120assessment\": 8922, \"\\u0120Bron\": 8923, \"UE\": 8924, \"\\u0120dynamic\": 8925, \"\\u0120furn\": 8926, \"ulator\": 8927, \"\\u0120propag\": 8928, \"high\": 8929, \"\\u0120accommod\": 8930, \"\\u0120stack\": 8931, \"\\u0120Sus\": 8932, \"writ\": 8933, \"\\u0120reven\": 8934, \"\\u0120Godd\": 8935, \"\\u0120Zealand\": 8936, \"abs\": 8937, \"\\u0120brut\": 8938, \"\\u0120perpet\": 8939, \"hot\": 8940, \"\\u0120hardly\": 8941, \"\\u0120Burn\": 8942, \"\\u00e3\\u0124\\u00b9\": 8943, \"\\u0120sty\": 8944, \"\\u0120transactions\": 8945, \"\\u0120gate\": 8946, \"\\u0120screens\": 8947, \"\\u0120submitted\": 8948, \"\\u0120101\": 8949, \"\\u0120languages\": 8950, \"ught\": 8951, \"emen\": 8952, \"\\u0120falls\": 8953, \"\\u0120coc\": 8954, \"\\u0124\\u00ac\": 8955, \"\\u0120strikes\": 8956, \"pa\": 8957, \"\\u0120deliber\": 8958, \"\\u0120IM\": 8959, \"\\u0120relax\": 8960, \"annels\": 8961, \"\\u0120Senator\": 8962, \"\\u0120extrem\": 8963, \"\\u0120},\": 8964, \"\\u0120Deb\": 8965, \"\\u0120bell\": 8966, \"\\u0120disorder\": 8967, \"cut\": 8968, \"\\u0120iOS\": 8969, \"\\u0120locked\": 8970, \"\\u0120emissions\": 8971, \"\\u0120shortly\": 8972, \"\\\"]\": 8973, \"\\u0120Judge\": 8974, \"\\u0120Sometimes\": 8975, \"\\u0120rival\": 8976, \"\\u0120dust\": 8977, \"\\u0120reaching\": 8978, \"File\": 8979, \"\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\": 8980, \"inois\": 8981, \"\\u0120Jason\": 8982, \"\\u0120satell\": 8983, \"aret\": 8984, \"\\u0120stations\": 8985, \"\\u0120agric\": 8986, \"\\u0120Technology\": 8987, \"comes\": 8988, \"\\u0120Unfortunately\": 8989, \"\\u0120Children\": 8990, \"\\u0120applies\": 8991, \"asted\": 8992, \"\\u0120anger\": 8993, \"ailability\": 8994, \"\\u0120Damage\": 8995, \"\\u0120compare\": 8996, \"\\u0120Standard\": 8997, \"\\u0120aimed\": 8998, \"\\u0120Ba\": 8999, \"anguage\": 9000, \"\\u0120regulation\": 9001, \"\\u0120jury\": 9002, \"\\u0120airport\": 9003, \"\\u0120sections\": 9004, \"\\u0120Prince\": 9005, \"emed\": 9006, \"\\u0120medicine\": 9007, \"\\u0120hitting\": 9008, \"\\u0120spark\": 9009, \"olves\": 9010, \"\\u0120ads\": 9011, \"State\": 9012, \"\\u0120foods\": 9013, \"\\u0120replacement\": 9014, \"\\u0120chicken\": 9015, \"\\u0120lowest\": 9016, \"\\u0120minds\": 9017, \"\\u0120involves\": 9018, \"ui\": 9019, \"\\u0120arrang\": 9020, \"\\u0120procedures\": 9021, \"\\u0120Which\": 9022, \"iversary\": 9023, \"\\u0120bills\": 9024, \"\\u0120improvement\": 9025, \"\\u0120inev\": 9026, \"\\u0120expectations\": 9027, \"\\u0120intellectual\": 9028, \"\\u0120spaces\": 9029, \"\\u0120mechanism\": 9030, \"250\": 9031, \"break\": 9032, \"\\u0120Ze\": 9033, \"\\u0120Tenn\": 9034, \"\\u0120Balt\": 9035, \"\\u0120barrel\": 9036, \"\\u0120static\": 9037, \"mann\": 9038, \"Police\": 9039, \"\\u0120tips\": 9040, \"\\u0120handling\": 9041, \"cus\": 9042, \"oded\": 9043, \"ilton\": 9044, \"iry\": 9045, \"\\u0120journalists\": 9046, \"ourse\": 9047, \"\\u0120comic\": 9048, \"\\u0120nomine\": 9049, \"ITY\": 9050, \"\\u0120versus\": 9051, \"\\u0120loop\": 9052, \"\\u0120surf\": 9053, \"\\u0120Indust\": 9054, \"\\u0120Hunter\": 9055, \"\\u0120beliefs\": 9056, \"isan\": 9057, \"\\u0120setup\": 9058, \"\\u0120brew\": 9059, \"image\": 9060, \"\\u0120computers\": 9061, \"fol\": 9062, \"},\\\"\": 9063, \"\\u0120Medal\": 9064, \"\\u0120taxp\": 9065, \"\\u0120displayed\": 9066, \"\\u0120grav\": 9067, \"\\u0120fiscal\": 9068, \"Mon\": 9069, \"\\u0120Moscow\": 9070, \"\\u0120Kong\": 9071, \"\\u0120Centre\": 9072, \"\\u0120cameras\": 9073, \"\\u0120Mrs\": 9074, \"\\u0120Hay\": 9075, \"\\u0120aver\": 9076, \"\\u0120Kelly\": 9077, \"py\": 9078, \"\\u0120requirement\": 9079, \"\\u0120entitled\": 9080, \"ombie\": 9081, \"\\u0120shadow\": 9082, \"agic\": 9083, \"\\u0120Ak\": 9084, \"\\u0120elite\": 9085, \"\\u0120divided\": 9086, \"\\u0120heading\": 9087, \"\\u0120copies\": 9088, \"\\u0120losses\": 9089, \"\\u0120vit\": 9090, \"ked\": 9091, \"\\u0120Bry\": 9092, \"\\u0120ans\": 9093, \"\\u0120Steam\": 9094, \"\\u0120reporter\": 9095, \"heim\": 9096, \"\\u0120Item\": 9097, \"\\u0120superior\": 9098, \"don\": 9099, \"erent\": 9100, \"\\u00c3\\u00b6\": 9101, \"\\u0120therapy\": 9102, \"\\u0120peak\": 9103, \"\\u0120Model\": 9104, \"\\u0120lying\": 9105, \"\\u0120gam\": 9106, \"zer\": 9107, \"ritten\": 9108, \"\\u0120responses\": 9109, \"\\u0120consideration\": 9110, \"\\u0120Bible\": 9111, \"\\u0120loyal\": 9112, \"\\u0120instant\": 9113, \"\\u0120pm\": 9114, \"\\u0120Forest\": 9115, \"\\u00c3\\u00bc\": 9116, \"\\u0120extend\": 9117, \"\\u0120convicted\": 9118, \"\\u0120founder\": 9119, \"\\u0120convin\": 9120, \"\\u0120Oak\": 9121, \"check\": 9122, \"\\u0120scholars\": 9123, \"ped\": 9124, \"\\u0120overse\": 9125, \"Top\": 9126, \"count\": 9127, \"\\u0120Ark\": 9128, \"\\u00c2\\u00b7\": 9129, \"\\u012006\": 9130, \"\\u0120LA\": 9131, \"md\": 9132, \"\\u0120Latin\": 9133, \"imental\": 9134, \"\\u0120CPU\": 9135, \"\\u0120substance\": 9136, \"\\u0120minority\": 9137, \"\\u0120manufacturing\": 9138, \"Er\": 9139, \"ocolate\": 9140, \"\\u0120attended\": 9141, \"\\u0120Manager\": 9142, \"rations\": 9143, \"\\u0120appreciate\": 9144, \"omy\": 9145, \"GBT\": 9146, \"idency\": 9147, \"BL\": 9148, \"\\u0120guarantee\": 9149, \"position\": 9150, \"\\u0120ocean\": 9151, \"clude\": 9152, \"\\u0120headed\": 9153, \"\\u0120tape\": 9154, \"\\u0120loose\": 9155, \"\\u0120logic\": 9156, \"\\u0120proven\": 9157, \"\\u0120spir\": 9158, \"\\u0120admit\": 9159, \"isa\": 9160, \"\\u0120investigate\": 9161, \"\\u01201994\": 9162, \"sylv\": 9163, \"\\u0120Lost\": 9164, \"cest\": 9165, \"\\u012071\": 9166, \"\\u0120requested\": 9167, \"\\u0120windows\": 9168, \"\\u0120Pok\\u00c3\\u00a9\": 9169, \"\\u0120Without\": 9170, \"Met\": 9171, \"\\u0120behaviour\": 9172, \"\\u0120reader\": 9173, \"\\u0120hung\": 9174, \"\\u0120Keep\": 9175, \"\\u0120roles\": 9176, \"\\u0120implemented\": 9177, \"\\u0120blank\": 9178, \"\\u0120serves\": 9179, \"\\u0120Jay\": 9180, \"\\u0120cited\": 9181, \"\\u0120Friend\": 9182, \"profit\": 9183, \"apon\": 9184, \"\\u0120repair\": 9185, \"item\": 9186, \"arrass\": 9187, \"\\u0120critics\": 9188, \"adi\": 9189, \"\\u0120Father\": 9190, \"\\u0120shout\": 9191, \"\\u0120fool\": 9192, \"\\u012088\": 9193, \"\\u0120producing\": 9194, \"\\u0120lib\": 9195, \"\\u0120rounds\": 9196, \"\\u0120circle\": 9197, \"\\u0120prepar\": 9198, \"\\u0120submit\": 9199, \"\\u0120nic\": 9200, \"morrow\": 9201, \"\\u00e3\\u0125\\u00ab\": 9202, \"Under\": 9203, \"\\u0120vital\": 9204, \"atern\": 9205, \"\\u0120password\": 9206, \"\\u0120publication\": 9207, \"\\u0120prominent\": 9208, \"\\u0120speaks\": 9209, \"\\u0120bars\": 9210, \"\\u0120deeper\": 9211, \"\\u0120Mill\": 9212, \"ported\": 9213, \"\\u0120wid\": 9214, \"\\u0120butter\": 9215, \"\\u0120smoking\": 9216, \"\\u0120indicates\": 9217, \"Key\": 9218, \"ropri\": 9219, \"\\u0120File\": 9220, \"alling\": 9221, \"asting\": 9222, \"\\u0120Rus\": 9223, \"\\u0120adj\": 9224, \"\\u012079\": 9225, \"aval\": 9226, \"\\u0120presum\": 9227, \"burgh\": 9228, \"onic\": 9229, \"\\u0120fur\": 9230, \"\\u0120polls\": 9231, \"ika\": 9232, \"\\u0120secondary\": 9233, \"\\u0120monster\": 9234, \"igs\": 9235, \"\\u0120Current\": 9236, \"Event\": 9237, \"\\u0120ownership\": 9238, \"endar\": 9239, \"\\u0120arrive\": 9240, \"\\u0120Tax\": 9241, \"\\u0120null\": 9242, \"\\u0120Priv\": 9243, \"\\u0120thro\": 9244, \"\\u0120kiss\": 9245, \"cat\": 9246, \"\\u0120upset\": 9247, \"angle\": 9248, \"itches\": 9249, \"ector\": 9250, \"ologists\": 9251, \"\\u0120Galaxy\": 9252, \"\\u0120corruption\": 9253, \"\\u0120hint\": 9254, \"enter\": 9255, \"\\u0120Hospital\": 9256, \"\\u0120greatly\": 9257, \"\\u0120begun\": 9258, \"esy\": 9259, \"\\u0120soil\": 9260, \"\\u0120Anton\": 9261, \"\\u0120maintenance\": 9262, \"\\u00e3\\u0125\\u00a9\": 9263, \"\\u0120dozens\": 9264, \"\\u0120humanity\": 9265, \"\\u0120Alabama\": 9266, \"\\u0120rom\": 9267, \"worth\": 9268, \"aping\": 9269, \"sylvania\": 9270, \"lah\": 9271, \"\\u0120gathered\": 9272, \"GA\": 9273, \"\\u0120attacking\": 9274, \"found\": 9275, \"\\u0120Square\": 9276, \"\\u0120arbit\": 9277, \"ictions\": 9278, \"\\u0120Wisconsin\": 9279, \"\\u0120dance\": 9280, \"\\u0120Saint\": 9281, \"archy\": 9282, \"\\u0120baseball\": 9283, \"\\u0120contributions\": 9284, \"\\u0120literature\": 9285, \"\\u0120exha\": 9286, \"perty\": 9287, \"test\": 9288, \"\\u0120bab\": 9289, \"\\u0120container\": 9290, \"letter\": 9291, \"\\u0120fallen\": 9292, \"\\u0120websites\": 9293, \"\\u0120bottle\": 9294, \"\\u0120Sac\": 9295, \"\\u0120breast\": 9296, \"\\u0120PL\": 9297, \"\\u0120veteran\": 9298, \"\\u0120interviews\": 9299, \"\\u0120Ale\": 9300, \"\\u0120banned\": 9301, \"engers\": 9302, \"\\u0120Revolution\": 9303, \"inth\": 9304, \"\\u0120concerning\": 9305, \"IVE\": 9306, \"\\u0120expenses\": 9307, \"\\u0120Matthew\": 9308, \"\\u0120Columbia\": 9309, \"ds\": 9310, \"istance\": 9311, \"\\u0120entity\": 9312, \"...\\\"\": 9313, \"\\u0120reliable\": 9314, \"\\u0120paralle\": 9315, \"\\u0120Christians\": 9316, \"\\u0120opinions\": 9317, \"\\u0120indu\": 9318, \"low\": 9319, \"\\u0120compete\": 9320, \"\\u0120thorough\": 9321, \"\\u0120employed\": 9322, \"\\u0120establishment\": 9323, \"igen\": 9324, \"\\u0120Cro\": 9325, \"\\u0120lawyers\": 9326, \"\\u0120Station\": 9327, \"TE\": 9328, \"\\u0120Lind\": 9329, \"\\u0120Pur\": 9330, \"itary\": 9331, \"\\u0120efficiency\": 9332, \"\\u00e2\\u0122\\u0132\": 9333, \"\\u0120Ly\": 9334, \"\\u0120mask\": 9335, \"\\u0120disaster\": 9336, \"\\u0120ages\": 9337, \"ERE\": 9338, \"esis\": 9339, \"\\u0120Hold\": 9340, \"\\u0120casual\": 9341, \"bled\": 9342, \"\\u0120enabled\": 9343, \"\\u0120Environment\": 9344, \"\\u0120Intelligence\": 9345, \"iper\": 9346, \"\\u0120Map\": 9347, \"\\u0120BE\": 9348, \"\\u0120emerged\": 9349, \"isdom\": 9350, \"\\u0120cabin\": 9351, \"\\u0120registration\": 9352, \"\\u0120fingers\": 9353, \"\\u0120roster\": 9354, \"\\u0120framework\": 9355, \"\\u0120Doctor\": 9356, \"etts\": 9357, \"\\u0120transportation\": 9358, \"\\u0120awareness\": 9359, \"Her\": 9360, \"\\u0120attempting\": 9361, \"Off\": 9362, \"\\u0120Store\": 9363, \"\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\": 9364, \"\\u0120Know\": 9365, \"\\u0120defence\": 9366, \"\\u0120scan\": 9367, \"\\u0120Ten\": 9368, \"\\u0120Chair\": 9369, \"\\u0120PH\": 9370, \"\\u0120Atlanta\": 9371, \"\\u0120fucking\": 9372, \"\\u0120answered\": 9373, \"bn\": 9374, \"\\u0120Kar\": 9375, \"\\u0120categories\": 9376, \"\\u0120rational\": 9377, \"\\u0120cust\": 9378, \"\\u0120robot\": 9379, \"\\u0120correctly\": 9380, \"\\u0120gif\": 9381, \"\\u0120graphics\": 9382, \"mic\": 9383, \"\\u0120grounds\": 9384, \"\\u0120Opp\": 9385, \"iate\": 9386, \"\\u0120distributed\": 9387, \"\\u0120sanctions\": 9388, \"\\u0120challenging\": 9389, \"uto\": 9390, \"\\u0120ingredients\": 9391, \"\\u0120invited\": 9392, \"\\u0120founded\": 9393, \"\\u0120Requ\": 9394, \"ded\": 9395, \"\\u0120bowl\": 9396, \"\\u0120brothers\": 9397, \"\\u0120Ha\": 9398, \"IO\": 9399, \"\\u0120wages\": 9400, \"imore\": 9401, \"ocial\": 9402, \"\\u0120seed\": 9403, \"atively\": 9404, \"\\u0120addresses\": 9405, \"\\u0120Iowa\": 9406, \"abeth\": 9407, \"\\u0120attitude\": 9408, \"isd\": 9409, \"child\": 9410, \"\\u0120mole\": 9411, \"\\u0120discovery\": 9412, \"yard\": 9413, \"Br\": 9414, \"\\u012082\": 9415, \"\\u0120supplies\": 9416, \"elling\": 9417, \"\\u0120distingu\": 9418, \"CR\": 9419, \"\\u0120recept\": 9420, \"\\u0120vert\": 9421, \"\\u0120swim\": 9422, \"bec\": 9423, \"door\": 9424, \"\\u0120Yeah\": 9425, \"\\u0120gal\": 9426, \"\\u0120interact\": 9427, \"\\u0120ESP\": 9428, \"\\u0120CS\": 9429, \"amps\": 9430, \"\\u0120convinced\": 9431, \"\\u0120objective\": 9432, \"\\u0120dish\": 9433, \"\\u0120Photos\": 9434, \"lad\": 9435, \"\\u0120downtown\": 9436, \"oil\": 9437, \"inction\": 9438, \"\\u0120tomorrow\": 9439, \"\\u0120COM\": 9440, \"\\u0120survival\": 9441, \"shot\": 9442, \"\\u0120settlement\": 9443, \"Cons\": 9444, \"\\u0120Xbox\": 9445, \"interest\": 9446, \"\\u0120SM\": 9447, \"argo\": 9448, \"eness\": 9449, \"\\u0120ethnic\": 9450, \"bered\": 9451, \"Min\": 9452, \"\\u0120Tok\": 9453, \"\\u0120incent\": 9454, \"\\u0120Command\": 9455, \"\\u0120maintained\": 9456, \"\\u0120breaks\": 9457, \"bridge\": 9458, \"atar\": 9459, \"agg\": 9460, \"\\u0120Finally\": 9461, \"unicip\": 9462, \"\\u0120Ont\": 9463, \"left\": 9464, \"\\u0120recognition\": 9465, \"\\u0120*/\": 9466, \"\\u0120Pers\": 9467, \"\\u0120welf\": 9468, \"\\u0120addressed\": 9469, \"\\u0120Kansas\": 9470, \"\\u0120virus\": 9471, \"\\u0120whereas\": 9472, \"\\u0120papers\": 9473, \"rams\": 9474, \"\\u0120Ministry\": 9475, \"\\u0120pleasure\": 9476, \"\\u0120acquired\": 9477, \"\\u0120duration\": 9478, \"jpg\": 9479, \"\\u0120calm\": 9480, \"\\u0120NHL\": 9481, \"\\u0120burning\": 9482, \"\\u0120folder\": 9483, \"icked\": 9484, \"\\u0120Py\": 9485, \"\\u0120Illinois\": 9486, \"Class\": 9487, \"\\u0120Goddess\": 9488, \"\\u0120performing\": 9489, \"\\u0120welfare\": 9490, \"jar\": 9491, \"Inter\": 9492, \"\\u0120lin\": 9493, \"\\u0120enhance\": 9494, \"\\u0120notion\": 9495, \"fare\": 9496, \"ypes\": 9497, \"\\u0120Area\": 9498, \"\\u0120cannabis\": 9499, \"\\u0120Diego\": 9500, \"fs\": 9501, \"\\u0120Manchester\": 9502, \"comm\": 9503, \"inite\": 9504, \"\\u0120covering\": 9505, \"\\u0120Sound\": 9506, \"\\u01201960\": 9507, \"\\u012084\": 9508, \"elect\": 9509, \"zing\": 9510, \"\\u0120citizen\": 9511, \"\\u0120phones\": 9512, \"\\u0120raid\": 9513, \"\\u0120ignored\": 9514, \"\\u0120Object\": 9515, \"\\u0120upload\": 9516, \"card\": 9517, \"\\u0120modified\": 9518, \"\\u0120rooms\": 9519, \"iah\": 9520, \"range\": 9521, \"heast\": 9522, \"achus\": 9523, \"\\u0120suggesting\": 9524, \"\\u00e2\\u0122\\u012d\": 9525, \"grade\": 9526, \"El\": 9527, \"\\u0120clothing\": 9528, \"\\u0120rh\": 9529, \"\\u0120Han\": 9530, \"unity\": 9531, \"encing\": 9532, \"\\u0120Austin\": 9533, \"secution\": 9534, \"tra\": 9535, \"dem\": 9536, \"\\u0120Qual\": 9537, \"\\u0120heaven\": 9538, \"\\u0120stages\": 9539, \"\\u0120wedd\": 9540, \"plus\": 9541, \"ificial\": 9542, \"\\u0120Imm\": 9543, \"\\u0120Ho\": 9544, \"ieties\": 9545, \"\\u0120phrase\": 9546, \"\\u0120brill\": 9547, \"actory\": 9548, \"\\u0120providers\": 9549, \"\\u0120silence\": 9550, \"\\u0120aer\": 9551, \"\\u0120AI\": 9552, \"\\u0120Adventure\": 9553, \"\\u0120platforms\": 9554, \"\\u0120demonstrated\": 9555, \"\\u0120interf\": 9556, \"ington\": 9557, \"\\u0120races\": 9558, \"\\u0120grade\": 9559, \"ultane\": 9560, \"\\u0120Through\": 9561, \"false\": 9562, \"\\u0120bow\": 9563, \"\\u0120AB\": 9564, \"\\u0120flavor\": 9565, \"\\u0120historic\": 9566, \"gov\": 9567, \"\\u0120colour\": 9568, \"\\u0120viewed\": 9569, \"\\u0120Email\": 9570, \"elcome\": 9571, \"\\u0120intervention\": 9572, \"\\u0120diversity\": 9573, \"\\u0120periods\": 9574, \"\\u0120reverse\": 9575, \"\\u0120Very\": 9576, \"\\u0120quote\": 9577, \"\\u0120Left\": 9578, \"through\": 9579, \"\\u0120screw\": 9580, \"\\u0120landing\": 9581, \"\\u0120pill\": 9582, \"\\u0120wet\": 9583, \"\\u0120protesters\": 9584, \"\\u0120repeat\": 9585, \"aved\": 9586, \"erk\": 9587, \"\\u0120salary\": 9588, \"\\u0120Pennsylvania\": 9589, \"Still\": 9590, \"\\u0120mayor\": 9591, \"\\u0120kitchen\": 9592, \"\\u0120featuring\": 9593, \"\\u0120Museum\": 9594, \"\\u0120Tournament\": 9595, \"\\u0120Fal\": 9596, \"\\u0120servers\": 9597, \"UC\": 9598, \"\\u0120anybody\": 9599, \"img\": 9600, \"\\u0120Trade\": 9601, \"ixture\": 9602, \"theless\": 9603, \"\\u0120finance\": 9604, \"\\u0120closing\": 9605, \"\\u0120Patri\": 9606, \"iac\": 9607, \"abel\": 9608, \"\\u0120>>\": 9609, \"orous\": 9610, \"\\u0120firms\": 9611, \"screen\": 9612, \"una\": 9613, \"\\u0120embarrass\": 9614, \"ulse\": 9615, \"\\u0120letting\": 9616, \"\\u0120threw\": 9617, \"iley\": 9618, \"\\u0120channels\": 9619, \"lan\": 9620, \"\\u0120Vegas\": 9621, \"\\u0120sear\": 9622, \"\\u0120fantastic\": 9623, \"arre\": 9624, \"uzzle\": 9625, \"\\u0120Der\": 9626, \"Those\": 9627, \"\\u0120swing\": 9628, \"\\u0120sheet\": 9629, \"index\": 9630, \"cover\": 9631, \"ogan\": 9632, \"\\u0120variables\": 9633, \"\\u0120Tech\": 9634, \"\\u0120spoken\": 9635, \"achel\": 9636, \"\\u0120Da\": 9637, \"\\u0120Mountain\": 9638, \"\\u0120loaded\": 9639, \"\\u0120footage\": 9640, \"version\": 9641, \"\\u0120unl\": 9642, \"\\u0120Phoenix\": 9643, \"\\u0120throwing\": 9644, \"\\u0120firing\": 9645, \"\\u0120tracking\": 9646, \"\\u0120width\": 9647, \"\\u0120struggling\": 9648, \"rooms\": 9649, \"otion\": 9650, \"\\u0120monthly\": 9651, \"\\u0120Server\": 9652, \"\\u0120eggs\": 9653, \"open\": 9654, \"MC\": 9655, \"\\u01201993\": 9656, \"\\u0120hired\": 9657, \"\\u0120stayed\": 9658, \"\\u0120Allen\": 9659, \"\\u0120stro\": 9660, \"\\u012098\": 9661, \"step\": 9662, \"\\u0120Turkish\": 9663, \"\\u0120fabric\": 9664, \"isting\": 9665, \"\\u0120Dom\": 9666, \"\\u0120dates\": 9667, \"\\u0120pron\": 9668, \"\\u0120basketball\": 9669, \"\\u0120lucky\": 9670, \"\\u0120Arabia\": 9671, \"\\u0120assumed\": 9672, \"esty\": 9673, \"\\u0120affairs\": 9674, \"\\u0120glad\": 9675, \"\\u0120Indeed\": 9676, \"\\u0120FA\": 9677, \"\\u0120Word\": 9678, \"\\u0120joining\": 9679, \"ifice\": 9680, \"pread\": 9681, \"irts\": 9682, \"\\u0120Select\": 9683, \"\\u0120populations\": 9684, \"aware\": 9685, \"\\u0120nose\": 9686, \"\\u0120complaints\": 9687, \"start\": 9688, \"\\u0120scoring\": 9689, \"Thanks\": 9690, \"\\u0120mining\": 9691, \"\\u0120visitors\": 9692, \"SH\": 9693, \"\\u0120damaged\": 9694, \"\\u0120characteristics\": 9695, \"\\u0120Pent\": 9696, \"DC\": 9697, \"\\u012083\": 9698, \"\\u0120Six\": 9699, \"rates\": 9700, \"\\u0120flags\": 9701, \"\\u0120Brew\": 9702, \"dog\": 9703, \"Mark\": 9704, \"////\": 9705, \"\\u0120execution\": 9706, \"\\u0120joke\": 9707, \"phones\": 9708, \"\\u0120testimony\": 9709, \"\\u0120obst\": 9710, \"QL\": 9711, \"\\u0120Cut\": 9712, \"\\u0120studied\": 9713, \"\\u0120Nintendo\": 9714, \"icket\": 9715, \"\\u0120NBC\": 9716, \"\\u0120lad\": 9717, \"\\u0120Bra\": 9718, \"\\u0120Moh\": 9719, \"\\u0120kernel\": 9720, \"\\u0120overwhelming\": 9721, \"\\u0120aged\": 9722, \"\\u0120applicable\": 9723, \"\\u0120Cond\": 9724, \"\\u0120roads\": 9725, \"\\u0120Block\": 9726, \"made\": 9727, \"odge\": 9728, \"\\u0120commands\": 9729, \"\\u0120offices\": 9730, \"veland\": 9731, \"\\u0120tut\": 9732, \"\\u0120receiver\": 9733, \"\\u0120Fro\": 9734, \"\\u0120shopping\": 9735, \"\\u0120iP\": 9736, \"\\u0120Stre\": 9737, \"\\u0120ABC\": 9738, \"\\u0120entertainment\": 9739, \"\\u0120Bow\": 9740, \"orted\": 9741, \"Mc\": 9742, \"\\u0120reads\": 9743, \"grad\": 9744, \"\\u0120Collect\": 9745, \"\\u0120\\u00e2\\u012a\\u0134\": 9746, \"\\u0120Capital\": 9747, \"ederation\": 9748, \"\\u0120employer\": 9749, \"\\u0120involvement\": 9750, \"\\u0120anxiety\": 9751, \"alia\": 9752, \"\\u0120roof\": 9753, \"\\u0120Among\": 9754, \"\\u0120Democrat\": 9755, \"\\u0120stats\": 9756, \"\\u0120Vill\": 9757, \"\\u0120constitutional\": 9758, \"\\u0120referring\": 9759, \"itty\": 9760, \"\\u0120tackle\": 9761, \"outube\": 9762, \"\\u0120backed\": 9763, \"\\u0120Hong\": 9764, \"\\u0120Broad\": 9765, \"\\u0120ele\": 9766, \"\\u0120Ott\": 9767, \"\\u01201992\": 9768, \"hour\": 9769, \"achusetts\": 9770, \"Cal\": 9771, \"\\u0120defeated\": 9772, \"\\u012081\": 9773, \"esp\": 9774, \"\\u0120seemingly\": 9775, \"was\": 9776, \"\\u0120Jenn\": 9777, \"\\u0120Kurd\": 9778, \"\\u0120gene\": 9779, \"\\u0120discount\": 9780, \"Ret\": 9781, \"ECT\": 9782, \"();\": 9783, \"\\u0120clubs\": 9784, \"\\u0120sid\": 9785, \"\\u0120Marsh\": 9786, \"Check\": 9787, \"\\u0120pp\": 9788, \"\\u0120Eag\": 9789, \"idespread\": 9790, \"\\u0120beings\": 9791, \"FT\": 9792, \"\\u0120introduction\": 9793, \"\\u0120Change\": 9794, \"ARD\": 9795, \"\\u0120110\": 9796, \"adows\": 9797, \"ierce\": 9798, \"\\u0120meal\": 9799, \"author\": 9800, \"\\u0120Bang\": 9801, \"lahoma\": 9802, \"\\u0120ranks\": 9803, \"2011\": 9804, \"????\": 9805, \"max\": 9806, \"\\u0120collapse\": 9807, \"\\u0120opens\": 9808, \"\\u0120echo\": 9809, \"\\u0120soph\": 9810, \"\\u0120racist\": 9811, \"\\u0120enormous\": 9812, \"\\u0120waves\": 9813, \"\\u0120tap\": 9814, \"\\u0120comprehensive\": 9815, \".--\": 9816, \"\\u0120Roy\": 9817, \"\\u0120farmers\": 9818, \"Related\": 9819, \"aired\": 9820, \"rones\": 9821, \"\\u0120Crim\": 9822, \"\\u0120proportion\": 9823, \"\\u0120designs\": 9824, \"\\u0120negotiations\": 9825, \"\\u0120virtually\": 9826, \"\\u0120Batman\": 9827, \"\\u0120warn\": 9828, \"\\u0120legitimate\": 9829, \"mate\": 9830, \"\\u0120convention\": 9831, \",,\": 9832, \"netic\": 9833, \"\\u0120SD\": 9834, \"\\u0120consistently\": 9835, \"\\u0120compensation\": 9836, \"\\u0120punishment\": 9837, \"\\u0120ye\": 9838, \"\\u0120tie\": 9839, \"\\u0120Bureau\": 9840, \"irlf\": 9841, \"\\u0120Bu\": 9842, \"\\u0120Aren\": 9843, \"\\u0120Philipp\": 9844, \"\\u0120knife\": 9845, \"\\u0120memories\": 9846, \"\\u0120Ross\": 9847, \"\\u0120angle\": 9848, \"\\u012086\": 9849, \"\\u0120Thunder\": 9850, \"\\u0120rend\": 9851, \"\\u0120Tour\": 9852, \"\\u0120counts\": 9853, \"sung\": 9854, \"\\u0120Imp\": 9855, \"\\u0120educational\": 9856, \"\\u0120accessible\": 9857, \"COM\": 9858, \"\\u0120drew\": 9859, \"yer\": 9860, \"Gl\": 9861, \"amine\": 9862, \"ORT\": 9863, \"OB\": 9864, \"IB\": 9865, \"master\": 9866, \"\\u0120trials\": 9867, \"ogy\": 9868, \"har\": 9869, \"\\u0120Trust\": 9870, \"\\u0120preferred\": 9871, \"irlfriend\": 9872, \"\\u0120Nev\": 9873, \"\\u0120bin\": 9874, \"\\u0120cow\": 9875, \"Page\": 9876, \"\\u0120signature\": 9877, \"\\u0120BL\": 9878, \"700\": 9879, \"\\u0120retired\": 9880, \"\\u0120bytes\": 9881, \"\\u0120neighb\": 9882, \"\\u0120Legend\": 9883, \"\\u0120devast\": 9884, \"\\u0120suspected\": 9885, \"isons\": 9886, \"\\u0120Pok\\u00c3\\u00a9mon\": 9887, \"scale\": 9888, \"\\u0120capabilities\": 9889, \"\\u0120revel\": 9890, \"\\u0120cheese\": 9891, \"dy\": 9892, \"igrant\": 9893, \"\\u0120failing\": 9894, \"bits\": 9895, \"\\u0120Heroes\": 9896, \"\\u0120Ghost\": 9897, \"\\u0120Scient\": 9898, \"\\u0120appointed\": 9899, \"uri\": 9900, \"\\u0120institution\": 9901, \"\\u0120expanded\": 9902, \"greg\": 9903, \"\\u0120monitoring\": 9904, \"\\u0120podcast\": 9905, \"\\u0120coalition\": 9906, \"\\u012096\": 9907, \"Jo\": 9908, \"\\u0120stolen\": 9909, \"\\u0120Sab\": 9910, \"\\u0120stops\": 9911, \"\\u0120holiday\": 9912, \"\\u0120intr\": 9913, \"Car\": 9914, \"Black\": 9915, \"\\u0120LGBT\": 9916, \"\\u0120warming\": 9917, \"\\u0120Anderson\": 9918, \"\\u012089\": 9919, \"\\u0120producer\": 9920, \"Med\": 9921, \"\\u0120accuracy\": 9922, \"\\u0120Marvel\": 9923, \"izabeth\": 9924, \"\\u0120Patrick\": 9925, \"mony\": 9926, \"\\u0120mini\": 9927, \"acles\": 9928, \"\\u0120overt\": 9929, \"they\": 9930, \"\\u0120membership\": 9931, \"\\u0120Ven\": 9932, \"\\u0120exch\": 9933, \"\\u0120removal\": 9934, \"\\u0120Dave\": 9935, \"TY\": 9936, \"mad\": 9937, \"\\u0120Find\": 9938, \"\\u0120adequ\": 9939, \"\\u0120ec\": 9940, \"\\u0120teeth\": 9941, \"\\u0120emotion\": 9942, \"\\u0120perm\": 9943, \"\\u0120solely\": 9944, \"db\": 9945, \"\\u0120extraord\": 9946, \"IGHT\": 9947, \"cal\": 9948, \"\\u0120guidelines\": 9949, \"\\u0120dying\": 9950, \"\\u0120suspended\": 9951, \"\\u0120Premier\": 9952, \"\\u0120Anthony\": 9953, \"elve\": 9954, \"\\u0120dad\": 9955, \"\\u0120Eth\": 9956, \"\\u0120Football\": 9957, \"\\u0120abandoned\": 9958, \"\\u0120<<\": 9959, \"\\u0120march\": 9960, \"\\u0120horror\": 9961, \"\\u00e2\\u0122\\u00a6\\\"\": 9962, \"\\u0120childhood\": 9963, \"\\u0120campaigns\": 9964, \"\\u0120lunch\": 9965, \"\\u0120Albert\": 9966, \"block\": 9967, \"\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\": 9968, \"ounding\": 9969, \"\\u0120bone\": 9970, \"organ\": 9971, \"aders\": 9972, \"\\u0120Flash\": 9973, \"\\u0120Drive\": 9974, \"\\u0120tonight\": 9975, \"\\u0120wars\": 9976, \"\\u0120FL\": 9977, \"\\u0120formation\": 9978, \"const\": 9979, \"News\": 9980, \"\\u0120compe\": 9981, \"orious\": 9982, \"\\u0120Staff\": 9983, \"\\u0120discussions\": 9984, \"\\u0120Protection\": 9985, \"\\u0120Jam\": 9986, \"\\u0120criteria\": 9987, \"\\u0120installation\": 9988, \"\\u0120accomplish\": 9989, \"izza\": 9990, \"\\u0120publisher\": 9991, \"\\u0120rescue\": 9992, \"\\u0120Try\": 9993, \"ULL\": 9994, \"\\u0120Som\": 9995, \"\\u0120Hop\": 9996, \"oret\": 9997, \"ths\": 9998, \"ordon\": 9999, \"\\u0120pocket\": 10000, \"\\u0120Inv\": 10001, \"Download\": 10002, \"\\u0120Crime\": 10003, \"\\u0120bene\": 10004, \"\\u0120Guide\": 10005, \"\\u0120Assembly\": 10006, \"\\u0120parameters\": 10007, \"IE\": 10008, \"\\u0120Alexander\": 10009, \"\\u0120concert\": 10010, \"\\u0120Sche\": 10011, \"\\u0120shoes\": 10012, \"\\u0120visiting\": 10013, \"\\u0120recall\": 10014, \"\\u0120bub\": 10015, \"\\u0120rural\": 10016, \"\\u0120concrete\": 10017, \"\\u0120Ros\": 10018, \"Next\": 10019, \"Russ\": 10020, \"\\u0120loans\": 10021, \"\\u0120Shield\": 10022, \"\\u0120trem\": 10023, \"hemat\": 10024, \"kg\": 10025, \"\\u0120Harris\": 10026, \"isition\": 10027, \"\\u0120Move\": 10028, \"\\u0120FC\": 10029, \"\\u0120fate\": 10030, \"\\u0120Cho\": 10031, \"\\u0120tired\": 10032, \"\\u0120principal\": 10033, \"hist\": 10034, \"iences\": 10035, \"athy\": 10036, \"\\u0120sevent\": 10037, \"\\u0120mood\": 10038, \"\\u0120strategic\": 10039, \"\\u0120diseases\": 10040, \"\\u0120forum\": 10041, \"\\u0120tempor\": 10042, \"\\u0120headquarters\": 10043, \"Par\": 10044, \"ige\": 10045, \"flix\": 10046, \"\\u0120guitar\": 10047, \"\\u012094\": 10048, \"Only\": 10049, \"\\u0120releases\": 10050, \"roph\": 10051, \"================================\": 10052, \"\\u0120600\": 10053, \"\\u0120Continue\": 10054, \"igate\": 10055, \"\\u0120Crit\": 10056, \"system\": 10057, \"\\u0120disabled\": 10058, \"\\u0120unexpected\": 10059, \"ithub\": 10060, \"\\u0120unclear\": 10061, \"\\u0120Est\": 10062, \"\\u0120contrad\": 10063, \"\\u0120strategies\": 10064, \"ventures\": 10065, \"\\u0120passage\": 10066, \"AME\": 10067, \"\\u0120improving\": 10068, \"\\u0120reveals\": 10069, \"\\u0120decrease\": 10070, \"ova\": 10071, \"\\u0120annoy\": 10072, \"\\u0120Short\": 10073, \"\\u0120Library\": 10074, \"\\u0120cyber\": 10075, \"nell\": 10076, \"\\u0120Hur\": 10077, \"\\u0120CB\": 10078, \"\\u0120photograp\": 10079, \"UI\": 10080, \"\\u0120sed\": 10081, \"Ge\": 10082, \"\\u012087\": 10083, \"\\u0120diverse\": 10084, \"\\u0120encouraged\": 10085, \"\\u0120conspiracy\": 10086, \"\\u0120birds\": 10087, \"\\u0120operator\": 10088, \"\\u0120handful\": 10089, \"\\u0120classified\": 10090, \"?)\": 10091, \"\\u0120dramatic\": 10092, \"\\u0120investigators\": 10093, \"ito\": 10094, \"\\u0120widespread\": 10095, \"\\u0120Room\": 10096, \"----------------------------------------------------------------\": 10097, \"\\u0120collective\": 10098, \"\\u0120journalist\": 10099, \"String\": 10100, \"\\u0120temperatures\": 10101, \"ila\": 10102, \"\\u0120guid\": 10103, \"\\u0120inspect\": 10104, \"\\u0120missile\": 10105, \"\\u0120Mayor\": 10106, \"\\u0120manual\": 10107, \"\\u0120simultane\": 10108, \"\\u0120ratings\": 10109, \"\\u0120suck\": 10110, \"\\u012097\": 10111, \"\\u0120universal\": 10112, \"\\u0120pharm\": 10113, \"\\u0120disrupt\": 10114, \"iano\": 10115, \"AV\": 10116, \"\\u0120ft\": 10117, \"\\u0120statist\": 10118, \"olds\": 10119, \"\\u0120Walker\": 10120, \"php\": 10121, \"\\u0120undert\": 10122, \"\\u0120Las\": 10123, \"ishop\": 10124, \"ntil\": 10125, \"reshold\": 10126, \"\\u0120Whether\": 10127, \"Ms\": 10128, \"\\u0120deny\": 10129, \"\\u0120Cloud\": 10130, \"\\u0120provider\": 10131, \"\\u0120surviv\": 10132, \"\\u0120Update\": 10133, \"has\": 10134, \"\\u0120mistakes\": 10135, \"charge\": 10136, \"pled\": 10137, \"rity\": 10138, \"\\u0120node\": 10139, \"\\u0120Massachusetts\": 10140, \"ools\": 10141, \"lication\": 10142, \"\\u0120fails\": 10143, \"emale\": 10144, \"ori\": 10145, \"backs\": 10146, \"\\u0120shirt\": 10147, \"\\u0120''\": 10148, \"\\u0120NAT\": 10149, \"\\u0120waters\": 10150, \"elson\": 10151, \"\\u0120ease\": 10152, \"\\u0120scar\": 10153, \"\\u0120contents\": 10154, \"mind\": 10155, \"\\u0120contribution\": 10156, \"\\u0120shr\": 10157, \"\\u0120handed\": 10158, \"\\u0120stability\": 10159, \"\\u0120trave\": 10160, \"Em\": 10161, \"\\u0120mirror\": 10162, \"123\": 10163, \"\\u0120weigh\": 10164, \"\\u0120fiction\": 10165, \"ouver\": 10166, \"istant\": 10167, \"rition\": 10168, \"\\u0120Fed\": 10169, \"\\u0120physically\": 10170, \"\\u0120stake\": 10171, \"\\u0120Article\": 10172, \"\\u0120Arc\": 10173, \"\\u0120Lewis\": 10174, \"\\u0120Mind\": 10175, \"\\u0120demonstrate\": 10176, \"\\u0120profits\": 10177, \"vision\": 10178, \"omic\": 10179, \"olid\": 10180, \"\\u0120battles\": 10181, \"\\u0120drives\": 10182, \"\\u0120eastern\": 10183, \"\\u0120Sony\": 10184, \"!!!\": 10185, \"aration\": 10186, \"vard\": 10187, \"\\u0120GL\": 10188, \"portation\": 10189, \"\\u012092\": 10190, \"\\u0120lawmakers\": 10191, \"\\u0120protecting\": 10192, \"\\u0120EPA\": 10193, \"\\u0120yeah\": 10194, \"\\u0120shame\": 10195, \"olph\": 10196, \"even\": 10197, \"xit\": 10198, \"\\u0120attach\": 10199, \"\\u0120representing\": 10200, \"\\u0120obs\": 10201, \"\\u0120Utah\": 10202, \"iffs\": 10203, \"\\u0120Freedom\": 10204, \"\\u00c3\\u00b3\": 10205, \"AK\": 10206, \"\\u0120incidents\": 10207, \"itage\": 10208, \"\\u0120viewers\": 10209, \"cd\": 10210, \"\\u0120mouse\": 10211, \"\\u0120clar\": 10212, \"\\u0120accordance\": 10213, \"\\u0120bot\": 10214, \"cor\": 10215, \"\\u0120Summer\": 10216, \"held\": 10217, \"\\u0120innocent\": 10218, \"\\u0120initiative\": 10219, \"ols\": 10220, \"________________________________\": 10221, \"\\u0120spots\": 10222, \"pace\": 10223, \"\\u0120conventional\": 10224, \"\\u0120corporations\": 10225, \"\\u0120blocked\": 10226, \"HD\": 10227, \"attered\": 10228, \"\\u0120refers\": 10229, \"\\u0120buck\": 10230, \"\\u0120Digital\": 10231, \"120\": 10232, \"\\u0120topics\": 10233, \"TF\": 10234, \"\\u00c4\\u0123\": 10235, \"brid\": 10236, \"reement\": 10237, \"\\u0120underlying\": 10238, \"\\u0120Member\": 10239, \"\\u0120investigating\": 10240, \"\\u0120pregnancy\": 10241, \"\\u0120touchdown\": 10242, \"\\u0120Band\": 10243, \"\\u0120Caller\": 10244, \"\\u0120instances\": 10245, \"PP\": 10246, \"wa\": 10247, \"Good\": 10248, \"\\u01201991\": 10249, \"\\u0120Cold\": 10250, \"\\u0120fears\": 10251, \"\\u0120remarks\": 10252, \"\\u0128\\u0134\": 10253, \"atal\": 10254, \"\\u0120mit\": 10255, \"\\u0120experiments\": 10256, \"ipt\": 10257, \"Color\": 10258, \"indu\": 10259, \"Update\": 10260, \"\\u012093\": 10261, \"Ag\": 10262, \"\\u0120\\u00e5\": 10263, \"ancouver\": 10264, \"Both\": 10265, \"\\u0120judges\": 10266, \"Object\": 10267, \"\\u0120stere\": 10268, \"umbn\": 10269, \"\\u0120participation\": 10270, \"\\u0120Stars\": 10271, \"\\u0120Jere\": 10272, \"\\u0120weekly\": 10273, \"\\u0120Ban\": 10274, \"\\u0120conversations\": 10275, \"\\u0120Pitt\": 10276, \"uz\": 10277, \"\\u0120Indiana\": 10278, \"\\u0120Kick\": 10279, \"\\u0120infection\": 10280, \"\\u0120heroes\": 10281, \"\\u0120settled\": 10282, \"\\u0120strip\": 10283, \"\\u0120hal\": 10284, \"\\u0120dump\": 10285, \"\\u0120Sci\": 10286, \"\\u0120les\": 10287, \"\\u0120references\": 10288, \"\\u0120URL\": 10289, \"\\u0120Bridge\": 10290, \"\\u0120wanting\": 10291, \"Force\": 10292, \"\\u0120exclus\": 10293, \"Meanwhile\": 10294, \"mn\": 10295, \"\\u0120gentle\": 10296, \"maker\": 10297, \"senal\": 10298, \"\\u0120Gro\": 10299, \"ouri\": 10300, \"\\u0120Rain\": 10301, \"\\u0120Alliance\": 10302, \"\\u0120lift\": 10303, \"ela\": 10304, \"SD\": 10305, \"\\u0120Cleveland\": 10306, \"\\u0120ranked\": 10307, \"\\u0120stadium\": 10308, \"\\u0120deadly\": 10309, \"\\u00e4\\u00b8\": 10310, \"\\u0120riding\": 10311, \"aria\": 10312, \"\\u0120Armor\": 10313, \"\\u0120documentation\": 10314, \"\\u0120Greece\": 10315, \"reek\": 10316, \"\\u0120lens\": 10317, \"\\u0120Sa\": 10318, \"\\u0120gross\": 10319, \"\\u0120Emer\": 10320, \"agers\": 10321, \"\\u0120Dub\": 10322, \"\\u0120Rh\": 10323, \"\\u0120AMD\": 10324, \"\\u0120arrival\": 10325, \"\\u0120desert\": 10326, \"\\u0120supplement\": 10327, \"\\u0120Resp\": 10328, \"\\u0120knee\": 10329, \"\\u0120margin\": 10330, \"font\": 10331, \"ogg\": 10332, \"2010\": 10333, \"\\u0120Pir\": 10334, \"\\u0120Prom\": 10335, \"ivals\": 10336, \"\\u0120intake\": 10337, \"\\u0120differently\": 10338, \"ugs\": 10339, \"\\u0120bits\": 10340, \"cluded\": 10341, \"\\u0120searching\": 10342, \"\\u0120Du\": 10343, \"umble\": 10344, \"\\u0120functional\": 10345, \"\\u0120Baltimore\": 10346, \"\\u0120Could\": 10347, \"\\u0120desired\": 10348, \"\\u0120circuit\": 10349, \"\\u0120Lyn\": 10350, \"\\u0120GO\": 10351, \"\\u0120False\": 10352, \"repre\": 10353, \"':\": 10354, \"alties\": 10355, \"\\u0120minim\": 10356, \"\\u0120drove\": 10357, \"\\u0120Should\": 10358, \"\\u0120hip\": 10359, \"\\u0120pros\": 10360, \"\\u0120utility\": 10361, \"\\u0120Nature\": 10362, \"\\u0120Mode\": 10363, \"President\": 10364, \"opp\": 10365, \"rat\": 10366, \"formance\": 10367, \"\\u0120concentration\": 10368, \"\\u0120font\": 10369, \"\\u0120Bud\": 10370, \"\\u0120amid\": 10371, \"\\u0120revers\": 10372, \"\\u0120ML\": 10373, \"Bar\": 10374, \"\\u0120interaction\": 10375, \"\\u0120jurisd\": 10376, \"\\u0120spells\": 10377, \"dep\": 10378, \"fil\": 10379, \"\\u0120civilians\": 10380, \"utter\": 10381, \"\\u0120Cooper\": 10382, \"\\u0120Below\": 10383, \"\\u0120entrance\": 10384, \"\\u0120convert\": 10385, \"\\u0120controversy\": 10386, \"owered\": 10387, \"\\u0120contrary\": 10388, \"\\u0120arc\": 10389, \"\\u0120Executive\": 10390, \"\\u0120Officer\": 10391, \"\\u0120packages\": 10392, \"\\u0120progressive\": 10393, \"width\": 10394, \"\\u0120reserved\": 10395, \"vol\": 10396, \"\\u0120Samsung\": 10397, \"\\u0120printed\": 10398, \"\\u0120centers\": 10399, \"\\u0120introduce\": 10400, \"\\u0120Kennedy\": 10401, \"\\u0120odds\": 10402, \"\\u0120surely\": 10403, \"\\u0120independence\": 10404, \"\\u0120passengers\": 10405, \"reprene\": 10406, \"\\u0120Beh\": 10407, \"\\u0120loves\": 10408, \"\\u0120ESPN\": 10409, \"\\u0120facilit\": 10410, \"\\u0120identical\": 10411, \"\\u0120doct\": 10412, \"\\u0120partnership\": 10413, \"conf\": 10414, \"\\u0120Hide\": 10415, \"\\u0120confused\": 10416, \"\\u0120Cow\": 10417, \"Men\": 10418, \"\\u0120wrest\": 10419, \"\\u0120Iraqi\": 10420, \"\\u0120holes\": 10421, \"\\u0120Studies\": 10422, \"\\u0120pregnant\": 10423, \"hard\": 10424, \"\\u0120signals\": 10425, \"IX\": 10426, \"\\u0120pulling\": 10427, \"\\u0120graduate\": 10428, \"\\u0120nominee\": 10429, \"Date\": 10430, \"\\u0120permitted\": 10431, \"\\u0120\\u00e2\\u0124\\u00ac\": 10432, \"\\u0120Oklahoma\": 10433, \"Start\": 10434, \"\\u0120authorized\": 10435, \"\\u0120alarm\": 10436, \"\\u0120Cos\": 10437, \"van\": 10438, \"\\u0120generations\": 10439, \"cular\": 10440, \"\\u0120dragon\": 10441, \"\\u0120Software\": 10442, \"\\u0120Edward\": 10443, \"\\u0120controller\": 10444, \"Sen\": 10445, \"gered\": 10446, \"\\u0120Vik\": 10447, \"\\u0120approached\": 10448, \"Thank\": 10449, \"\\u0120cance\": 10450, \"\\u0120formula\": 10451, \"\\u0120Small\": 10452, \"\\u0120weakness\": 10453, \"\\u0120ramp\": 10454, \"itudes\": 10455, \"jud\": 10456, \"\\u0120brilliant\": 10457, \"\\u0120accus\": 10458, \"source\": 10459, \"\\u0120800\": 10460, \"\\u0120Evil\": 10461, \"Sw\": 10462, \"\\u0120homeless\": 10463, \"week\": 10464, \"iens\": 10465, \"rics\": 10466, \"\\u0120Third\": 10467, \"TO\": 10468, \"\\u0120organic\": 10469, \"\\u0120presentation\": 10470, \"agh\": 10471, \"\\u0120Download\": 10472, \"vation\": 10473, \"\\u0120assembly\": 10474, \"orable\": 10475, \"holders\": 10476, \"\\u0120Bernie\": 10477, \"\\u0120Help\": 10478, \"\\u0120tong\": 10479, \"\\u0120Fight\": 10480, \"\\u0120beach\": 10481, \"Book\": 10482, \"\\u0120Lic\": 10483, \"\\u0120rush\": 10484, \"\\u0120Round\": 10485, \"oup\": 10486, \"\\u0120Marx\": 10487, \"\\u0120calculated\": 10488, \"\\u0120Devil\": 10489, \"\\u0120Sarah\": 10490, \"\\u0120occasionally\": 10491, \"\\u0120bullet\": 10492, \"Available\": 10493, \"gate\": 10494, \"\\u012091\": 10495, \"\\u0120hosp\": 10496, \"\\u0120promises\": 10497, \"\\u0120HIV\": 10498, \"\\u0120Stadium\": 10499, \"\\u0120Stock\": 10500, \"\\u0120Corporation\": 10501, \"gage\": 10502, \"NG\": 10503, \"\\u0120Credit\": 10504, \"\\u0120sne\": 10505, \"ibl\": 10506, \"\\u0120accum\": 10507, \"such\": 10508, \"\\u0120terrorists\": 10509, \"\\u0120consciousness\": 10510, \"\\u0120Zh\": 10511, \"\\u0120drama\": 10512, \"oola\": 10513, \"piration\": 10514, \"\\u0120labour\": 10515, \"\\u0120Nin\": 10516, \"\\u0120utter\": 10517, \"\\u0120democratic\": 10518, \"\\u0120assass\": 10519, \"ilation\": 10520, \"\\u0120gest\": 10521, \"\\u0120abroad\": 10522, \"\\u0120metab\": 10523, \"\\u0120sorts\": 10524, \"\\u0120flav\": 10525, \"UB\": 10526, \"\\u0120mg\": 10527, \"\\u0120Nothing\": 10528, \"\\u0120Od\": 10529, \"\\u0120musical\": 10530, \"2009\": 10531, \"\\u0120drops\": 10532, \"ocated\": 10533, \"ateral\": 10534, \"000000\": 10535, \"\\u0120gre\": 10536, \"\\u0120equality\": 10537, \"\\u0120burden\": 10538, \"\\u0120vig\": 10539, \"\\u0120Leader\": 10540, \"------------\": 10541, \"\\u0120ceremony\": 10542, \"\\u0120fighter\": 10543, \"\\u0120actors\": 10544, \"\\u0120\\u00e6\": 10545, \"aman\": 10546, \"Fi\": 10547, \"\\u0120align\": 10548, \"puter\": 10549, \"\\u0120elder\": 10550, \"\\u0120NSA\": 10551, \"\\u0120representation\": 10552, \"\\u0120Ontario\": 10553, \"ITH\": 10554, \"usalem\": 10555, \"\\u0120harassment\": 10556, \"itzer\": 10557, \"\\u0120symp\": 10558, \"\\u0120boxes\": 10559, \"\\u0120DR\": 10560, \"\\u0120manifest\": 10561, \"atre\": 10562, \"\\u0120^\": 10563, \"\\u0120dies\": 10564, \"leton\": 10565, \"\\u0120missions\": 10566, \"ethe\": 10567, \"\\u0120resolve\": 10568, \"\\u0120followers\": 10569, \"\\u0120asc\": 10570, \"\\u0120km\": 10571, \"lord\": 10572, \"ammed\": 10573, \"\\u0120silent\": 10574, \"\\u0120Associated\": 10575, \"\\u0120timing\": 10576, \"\\u0120prisoners\": 10577, \"\\u0120Kings\": 10578, \"\\u0120Five\": 10579, \"\\u0120tower\": 10580, \"\\u0120approaches\": 10581, \"\\u0120precisely\": 10582, \"\\u0120bureau\": 10583, \"\\u0120Mother\": 10584, \"\\u0120Iss\": 10585, \"\\u0120keyboard\": 10586, \"itual\": 10587, \"\\u0120funded\": 10588, \"\\u0120staying\": 10589, \"\\u0120psychological\": 10590, \"\\u0120mile\": 10591, \"\\u0120Leon\": 10592, \"\\u0120Barb\": 10593, \"will\": 10594, \"\\u0120wider\": 10595, \"\\u0120Atlantic\": 10596, \"\\u0120till\": 10597, \"\\u0120Rome\": 10598, \"rot\": 10599, \"\\u0120accompan\": 10600, \"\\u0120flour\": 10601, \"aco\": 10602, \"World\": 10603, \"\\u0120Express\": 10604, \"\\u0120Yu\": 10605, \"Cor\": 10606, \"\\u0120pleased\": 10607, \"party\": 10608, \"\\u0120pointing\": 10609, \"\\u0120inflation\": 10610, \"\\u0120roy\": 10611, \"\\u0120),\": 10612, \"ainer\": 10613, \"\\u0120wedding\": 10614, \"ormon\": 10615, \"\\u0120requiring\": 10616, \"\\u0120qualified\": 10617, \"\\u0120segment\": 10618, \"END\": 10619, \"\\u0120sizes\": 10620, \"eals\": 10621, \"\\u0120corrupt\": 10622, \"assador\": 10623, \"\\u0120celeb\": 10624, \"\\u0120dreams\": 10625, \"\\u0120Mess\": 10626, \"\\u0120checking\": 10627, \"\\u0120Version\": 10628, \"\\u0120preparing\": 10629, \"\\u0120actively\": 10630, \"\\u0120Diff\": 10631, \"\\u0120lux\": 10632, \"\\u0120Winter\": 10633, \"acteria\": 10634, \"\\u0120NE\": 10635, \"\\u0120deputy\": 10636, \"\\u0120transgender\": 10637, \"\\u0120summary\": 10638, \"\\u0120inher\": 10639, \"eries\": 10640, \"char\": 10641, \"\\u0120Yan\": 10642, \"\\u0120knock\": 10643, \"\\u0120Path\": 10644, \"\\u0120lip\": 10645, \"roller\": 10646, \"\\u0120impression\": 10647, \"\\u0120celebrate\": 10648, \"\\u0120slide\": 10649, \"\\u0120guests\": 10650, \"\\u0120clip\": 10651, \"FS\": 10652, \"\\u0120savings\": 10653, \"\\u0120captain\": 10654, \"\\u0120legacy\": 10655, \"\\u0120Denver\": 10656, \"\\u0120wounded\": 10657, \"taboola\": 10658, \"ACT\": 10659, \"\\u0120pursue\": 10660, \"\\u0120oxy\": 10661, \"\\u0120q\": 10662, \"\\u0120semi\": 10663, \"\\u0120Need\": 10664, \"\\u0120Affairs\": 10665, \"\\u0120obsc\": 10666, \"\\u0120checked\": 10667, \"\\u0120dual\": 10668, \"Code\": 10669, \"\\u0120MD\": 10670, \"lem\": 10671, \"ulty\": 10672, \"\\u0120\\u00c2\\u00a9\": 10673, \"\\u0120Elizabeth\": 10674, \"\\u0120centuries\": 10675, \"arded\": 10676, \"src\": 10677, \"\\u0120evident\": 10678, \"ennis\": 10679, \"atin\": 10680, \"\\u0120unemployment\": 10681, \"\\u0120Mario\": 10682, \"\\u0120intim\": 10683, \"Christ\": 10684, \"\\u0120biological\": 10685, \"\\u0120soldier\": 10686, \"\\u0120Added\": 10687, \"\\u0120math\": 10688, \"\\u0120Gil\": 10689, \"\\u0120bias\": 10690, \"\\u0120dating\": 10691, \"\\u0120Ocean\": 10692, \"\\u0120mice\": 10693, \"Mus\": 10694, \"hire\": 10695, \"\\u0120Tes\": 10696, \"Server\": 10697, \"limited\": 10698, \"Size\": 10699, \"\\u0120meters\": 10700, \"\\u0120rocket\": 10701, \"essee\": 10702, \"\\u0120certificate\": 10703, \"\\u0120Iranian\": 10704, \"ASS\": 10705, \"\\u0120grid\": 10706, \"Dec\": 10707, \"\\u0120rolling\": 10708, \"commun\": 10709, \"\\u0120Sweden\": 10710, \"bury\": 10711, \"\\u0120tissue\": 10712, \"\\u0120racism\": 10713, \"\\u0120Local\": 10714, \"\\u0120mystery\": 10715, \"\\u0120examine\": 10716, \"\\u0120stem\": 10717, \"\\u0120sits\": 10718, \"\\u0120hoped\": 10719, \"oting\": 10720, \"\\u0120dialogue\": 10721, \"\\u0120persu\": 10722, \"Watch\": 10723, \"lay\": 10724, \"MAN\": 10725, \"\\u0120chronic\": 10726, \"\\u0120Portland\": 10727, \"market\": 10728, \"\\u0120SEC\": 10729, \"\\u0120parallel\": 10730, \"\\u0120scandal\": 10731, \"\\u0120carries\": 10732, \"\\u0120phenomenon\": 10733, \"human\": 10734, \"acker\": 10735, \"\\u0120Ox\": 10736, \"\\u0120retirement\": 10737, \"tainment\": 10738, \"ovie\": 10739, \"\\u0120Gear\": 10740, \"\\u0120duties\": 10741, \"\\u0120dose\": 10742, \"\\u0120scroll\": 10743, \"MB\": 10744, \"inf\": 10745, \"\\u0120sauce\": 10746, \"\\u0120landscape\": 10747, \"reddit\": 10748, \"\\u0120Championship\": 10749, \"\\u0120Reddit\": 10750, \"alid\": 10751, \"\\u0120coin\": 10752, \"\\u0120overs\": 10753, \"\\u0120posting\": 10754, \"about\": 10755, \"\\u0120fel\": 10756, \"andy\": 10757, \"\\u0120bold\": 10758, \"\\u0120focusing\": 10759, \"effect\": 10760, \"GR\": 10761, \"\\u0120deemed\": 10762, \"\\u0120recommendations\": 10763, \"\\u0120stepped\": 10764, \"\\u0120voter\": 10765, \"\\u0120Deep\": 10766, \"\\u0120Instagram\": 10767, \"\\u0120moderate\": 10768, \"\\u0120Maryland\": 10769, \"\\u0120restricted\": 10770, \"\\u0120MB\": 10771, \"\\u0120Chall\": 10772, \"\\u0120tob\": 10773, \"\\u0120cir\": 10774, \"\\u0120Occ\": 10775, \"\\u0120Ever\": 10776, \"\\u0120collaps\": 10777, \"INFO\": 10778, \"=-\": 10779, \"\\u0120Pict\": 10780, \"\\u0120Account\": 10781, \"nc\": 10782, \"\\u0120ought\": 10783, \"\\u0120export\": 10784, \"\\u0120drunk\": 10785, \"('\": 10786, \"\\u0120wise\": 10787, \"\\u0120Mort\": 10788, \"necess\": 10789, \"\\u0120ancest\": 10790, \"\\u0120Incre\": 10791, \"\\u0120frequent\": 10792, \"mir\": 10793, \"\\u0120interpretation\": 10794, \"\\u0120dependent\": 10795, \"\\u0120coins\": 10796, \"\\u0120Bol\": 10797, \"Video\": 10798, \"\\u0120Justin\": 10799, \"\\u0120fatal\": 10800, \"\\u0120cooking\": 10801, \"\\u0120confusion\": 10802, \"ipher\": 10803, \"\\u0120custody\": 10804, \"\\u0120Morgan\": 10805, \"omach\": 10806, \"\\u0120Governor\": 10807, \"\\u0120restaurants\": 10808, \"eling\": 10809, \"\\u0120acknowledged\": 10810, \"\\u0120ther\": 10811, \"\\u0120genes\": 10812, \"ching\": 10813, \"Hey\": 10814, \"\\u0120tactics\": 10815, \"\\u0120Mexican\": 10816, \"\\u0120vend\": 10817, \"\\u0120hes\": 10818, \"quer\": 10819, \"\\u0120noting\": 10820, \"\\u0120Cameron\": 10821, \"\\u0120targeting\": 10822, \"rock\": 10823, \"\\u0120credits\": 10824, \"\\u0120emotions\": 10825, \"\\u0120representatives\": 10826, \"news\": 10827, \"\\u0120legislative\": 10828, \"\\u0120removing\": 10829, \"\\u0120tweeted\": 10830, \"\\u0120Carter\": 10831, \"\\u0120Fixed\": 10832, \"\\u0120forcing\": 10833, \"\\u0120speaker\": 10834, \"\\u0120males\": 10835, \"\\u0120Vietnam\": 10836, \"lined\": 10837, \"\\u0120concepts\": 10838, \"\\u0120voices\": 10839, \"oir\": 10840, \"\\u0120Trib\": 10841, \"Whe\": 10842, \"\\u0120Jerusalem\": 10843, \"\\u0120Sant\": 10844, \"\\u0120cul\": 10845, \"\\u0120lady\": 10846, \"\\u0120Hawai\": 10847, \"\\u0120arts\": 10848, \"\\u0120Inn\": 10849, \"\\u0120Machine\": 10850, \"\\u0120Emperor\": 10851, \"\\u0120slot\": 10852, \"gly\": 10853, \"\\u0120Process\": 10854, \"III\": 10855, \"\\u0120athletes\": 10856, \"\\u0120Temple\": 10857, \"\\u0120Represent\": 10858, \"\\u0120presc\": 10859, \"\\u0120tons\": 10860, \"\\u0120golden\": 10861, \"\\u0120punch\": 10862, \"\\u0120GR\": 10863, \"iverpool\": 10864, \"\\u0120enact\": 10865, \"\\u0120lobby\": 10866, \"\\u0120mos\": 10867, \"\\u0120picking\": 10868, \"\\u0120lifetime\": 10869, \"\\u0120cognitive\": 10870, \"Each\": 10871, \"zo\": 10872, \"\\u0120dub\": 10873, \"\\u0120consists\": 10874, \"oln\": 10875, \"\\u0120festival\": 10876, \"amous\": 10877, \"\\u0120intellig\": 10878, \"words\": 10879, \"\\u0120Smart\": 10880, \"\\u0120dele\": 10881, \"\\u0120lapt\": 10882, \"\\u0120magical\": 10883, \"\\u0120Sin\": 10884, \"bus\": 10885, \"urities\": 10886, \"ighth\": 10887, \"\\u0120Ruby\": 10888, \"\\u0120Sure\": 10889, \"olving\": 10890, \"\\u0120jun\": 10891, \"OST\": 10892, \"\\u0120imposed\": 10893, \"\\u0120astron\": 10894, \"\\u0120correl\": 10895, \"\\u0120NS\": 10896, \"\\u0120Kit\": 10897, \"\\u0120Future\": 10898, \"burn\": 10899, \"\\u0120immune\": 10900, \"ocus\": 10901, \"\\u0120courses\": 10902, \"\\u0120String\": 10903, \"\\u0120lean\": 10904, \"\\u0120ghost\": 10905, \"\\u0120outcomes\": 10906, \"\\u0120expense\": 10907, \"\\u0120everyday\": 10908, \"\\u0120acceptable\": 10909, \"Ah\": 10910, \"\\u0120equipped\": 10911, \"\\u0120orange\": 10912, \"FR\": 10913, \"\\u0120Dutch\": 10914, \"Though\": 10915, \"\\u0120Rank\": 10916, \"QU\": 10917, \"\\u0120Roberts\": 10918, \"what\": 10919, \"rend\": 10920, \"\\u0120disappear\": 10921, \"\\u0120spawn\": 10922, \"\\u0120Lam\": 10923, \"ois\": 10924, \"\\u0120deserve\": 10925, \"\\u0120minimal\": 10926, \"\\u0120nervous\": 10927, \"\\u0120Would\": 10928, \"\\u0120rook\": 10929, \"\\u0120Vancouver\": 10930, \"\\u0120resign\": 10931, \"shire\": 10932, \"\\u0120Works\": 10933, \"\\u0120Build\": 10934, \"\\u0120affordable\": 10935, \"\\u0120Gary\": 10936, \"\\u0120Arena\": 10937, \"\\u0120hanging\": 10938, \"\\u0120implications\": 10939, \"\\u0120Song\": 10940, \"\\u0120maintaining\": 10941, \"\\u0120guards\": 10942, \"CON\": 10943, \"\\u0120derived\": 10944, \"\\u0120executed\": 10945, \"\\u0120theories\": 10946, \"\\u0120quoted\": 10947, \"\\u0120Andre\": 10948, \"oga\": 10949, \"seless\": 10950, \"info\": 10951, \"\\u0120Belg\": 10952, \"\\u0120tears\": 10953, \"\\u0120Surv\": 10954, \"\\u0120birthday\": 10955, \"igious\": 10956, \"immer\": 10957, \"\\u0120spectrum\": 10958, \"\\u0120architecture\": 10959, \"\\u0120recruit\": 10960, \"arma\": 10961, \"Table\": 10962, \"\\u0120monsters\": 10963, \"\\u0120Gov\": 10964, \"\\u0120destination\": 10965, \"\\u0120attractive\": 10966, \"\\u0120foss\": 10967, \"\\u0120Moreover\": 10968, \"\\u0120presents\": 10969, \"THE\": 10970, \"\\u0120reply\": 10971, \"pton\": 10972, \"\\u0120cum\": 10973, \"\\u0120delight\": 10974, \"\\u0120affects\": 10975, \"\\u0120donations\": 10976, \"\\u0120Toy\": 10977, \"\\u0120Him\": 10978, \"MENT\": 10979, \"\\u0120overcome\": 10980, \"itched\": 10981, \"\\u0120Fantasy\": 10982, \"\\u0120Hat\": 10983, \"\\u0120Beast\": 10984, \"bott\": 10985, \"\\u0120investigations\": 10986, \"Run\": 10987, \"\\u0120hunting\": 10988, \"di\": 10989, \"fund\": 10990, \"\\u0120sessions\": 10991, \"estyle\": 10992, \"\\u0120portray\": 10993, \"oids\": 10994, \"Yeah\": 10995, \"\\u0120communicate\": 10996, \"\\u0120comedy\": 10997, \"\\u0120Yang\": 10998, \"\\u0120belt\": 10999, \"\\u0120Marine\": 11000, \"\\u0120predicted\": 11001, \"Play\": 11002, \"\\u0120importantly\": 11003, \"\\u0120remarkable\": 11004, \"\\u0120eliminate\": 11005, \"David\": 11006, \"\\u0120bind\": 11007, \"VID\": 11008, \"\\u0120advocates\": 11009, \"\\u0120Gaza\": 11010, \"imp\": 11011, \"DB\": 11012, \"\\u0120Na\": 11013, \"\\u0120Similar\": 11014, \"IES\": 11015, \"\\u0120charity\": 11016, \"vas\": 11017, \"math\": 11018, \"\\u0120\\u00e2\\u0138\": 11019, \"oker\": 11020, \"ndum\": 11021, \"\\u0120caps\": 11022, \"\\u0120Hal\": 11023, \"2000\": 11024, \"ean\": 11025, \"\\u0120fleet\": 11026, \"\\u0120recre\": 11027, \"Right\": 11028, \"\\u0120sleeping\": 11029, \"ijing\": 11030, \"kind\": 11031, \"\\u0120designated\": 11032, \"\\u00c3\\u00a4\": 11033, \"\\u0120animation\": 11034, \"kee\": 11035, \"\\u0120Introdu\": 11036, \"\\u0120/>\": 11037, \"\\u0120delayed\": 11038, \"\\u0120tremend\": 11039, \"\\u0120curious\": 11040, \"Use\": 11041, \"\\u0120lect\": 11042, \"dam\": 11043, \"\\u0120innovation\": 11044, \"\\u0120Points\": 11045, \"\\u0120loading\": 11046, \"\\u0120dispute\": 11047, \"ctic\": 11048, \"irds\": 11049, \"\\u0120BY\": 11050, \"\\u0120nurs\": 11051, \"\\u0120Value\": 11052, \"IONS\": 11053, \"\\u0120Hum\": 11054, \"\\u0120template\": 11055, \"mers\": 11056, \"\\u0120appearances\": 11057, \"\\u0120Entertainment\": 11058, \"\\u0120translation\": 11059, \"\\u0120sake\": 11060, \"\\u0120beneath\": 11061, \"\\u0120inhib\": 11062, \"\\u0120euro\": 11063, \"abetes\": 11064, \"\\u0120studying\": 11065, \"\\u0120Mas\": 11066, \"\\u0120perceived\": 11067, \"\\u0120examined\": 11068, \"\\u0120eager\": 11069, \"\\u0120coaches\": 11070, \"\\u0120imper\": 11071, \"chi\": 11072, \"\\u0120produces\": 11073, \"\\\").\": 11074, \"\\u0120Everyone\": 11075, \"\\u0120municip\": 11076, \"\\u0120girlfriend\": 11077, \"\\u0120hire\": 11078, \"\\u0120Vice\": 11079, \"\\u0120suitable\": 11080, \"opy\": 11081, \"\\u0120inequ\": 11082, \"\\u0120Duke\": 11083, \"fish\": 11084, \"first\": 11085, \"\\u0120Obs\": 11086, \"\\u0120interior\": 11087, \"\\u0120Bruce\": 11088, \"\\u0120Ry\": 11089, \"\\u0120analys\": 11090, \"\\u0120considerable\": 11091, \"\\u0120forecast\": 11092, \"\\u0120fert\": 11093, \"orship\": 11094, \"\\u0120Drug\": 11095, \"\\u0120ALL\": 11096, \":\\\"\": 11097, \"thur\": 11098, \"\\u0120Mail\": 11099, \"\\u0120ballot\": 11100, \"\\u0120instantly\": 11101, \"\\u0120Channel\": 11102, \"\\u0120picks\": 11103, \"\\u01201989\": 11104, \"\\u0120tent\": 11105, \"oli\": 11106, \"\\u0120civilian\": 11107, \"bling\": 11108, \"ello\": 11109, \"bu\": 11110, \"\\u0120inch\": 11111, \"\\u0120logo\": 11112, \"\\u0120cooperation\": 11113, \"\\u0120walks\": 11114, \"\\u0120investments\": 11115, \"\\u0120imprison\": 11116, \"\\u0120Festival\": 11117, \"\\u0120Ky\": 11118, \"\\u0120legally\": 11119, \"\\u0120gri\": 11120, \"charg\": 11121, \"Sl\": 11122, \"\\u0120threatening\": 11123, \"duction\": 11124, \"flow\": 11125, \"\\u0120dismissed\": 11126, \"ibraries\": 11127, \"cap\": 11128, \"ele\": 11129, \"\\u0120McG\": 11130, \"\\u0120Harvard\": 11131, \"\\u0120Conservative\": 11132, \"\\u0120CBS\": 11133, \"png\": 11134, \"\\u0120roots\": 11135, \"\\u0120Having\": 11136, \"umbled\": 11137, \"\\u0120Fun\": 11138, \"\\\\/\": 11139, \"\\u0120Search\": 11140, \"plex\": 11141, \"\\u0120discussing\": 11142, \"\\u0120continu\": 11143, \"\\u0120Tai\": 11144, \"\\u0120Wik\": 11145, \"Free\": 11146, \"fit\": 11147, \"\\u0120refuse\": 11148, \"\\u0120managing\": 11149, \"\\u0120synd\": 11150, \"ipedia\": 11151, \"walk\": 11152, \"\\u0120professionals\": 11153, \"\\u0120guidance\": 11154, \"\\u0120universities\": 11155, \"\\u0120assemb\": 11156, \"untu\": 11157, \"Finally\": 11158, \"ASE\": 11159, \"\\u0120Auto\": 11160, \"\\u0120Had\": 11161, \"\\u0120anniversary\": 11162, \"LD\": 11163, \"\\u0120Dur\": 11164, \"\\u0120Ultimate\": 11165, \"ihad\": 11166, \"product\": 11167, \"\\u0120transit\": 11168, \"\\u0120restore\": 11169, \"\\u0120explaining\": 11170, \"\\u0120asset\": 11171, \"\\u0120transferred\": 11172, \"\\u0120burst\": 11173, \"apolis\": 11174, \"\\u0120Magazine\": 11175, \"\\u0120Cra\": 11176, \"\\u0120BR\": 11177, \"gged\": 11178, \"\\u0120HE\": 11179, \"Mich\": 11180, \"bet\": 11181, \"\\u0120Lady\": 11182, \"ylum\": 11183, \"erves\": 11184, \"\\u0120meets\": 11185, \"white\": 11186, \"Log\": 11187, \"\\u0120corresponding\": 11188, \"\\u0120insisted\": 11189, \"GG\": 11190, \"\\u0120surrounded\": 11191, \"\\u0120tens\": 11192, \"\\u0120lane\": 11193, \"\\u0120coinc\": 11194, \"home\": 11195, \"\\u0120existed\": 11196, \"ected\": 11197, \"\\u0120Double\": 11198, \"lamm\": 11199, \"\\u0120skept\": 11200, \"exp\": 11201, \"\\u0120perception\": 11202, \"iev\": 11203, \"\\u0120Being\": 11204, \"oft\": 11205, \"\\u0120adopt\": 11206, \".:\": 11207, \"];\": 11208, \"Windows\": 11209, \"\\u0120satellite\": 11210, \"ASH\": 11211, \"\\u0120infant\": 11212, \"description\": 11213, \"\\u0120Meanwhile\": 11214, \"cm\": 11215, \"oca\": 11216, \"\\u0120Treat\": 11217, \"actor\": 11218, \"\\u0120tobacco\": 11219, \"\\u0120Norm\": 11220, \"emption\": 11221, \"\\u0120flesh\": 11222, \"\\u0120je\": 11223, \"oop\": 11224, \"\\u0120Heaven\": 11225, \"\\u0120beating\": 11226, \"anim\": 11227, \"\\u0120gathering\": 11228, \"\\u0120cultiv\": 11229, \"GO\": 11230, \"abe\": 11231, \"\\u0120Jonathan\": 11232, \"\\u0120Safety\": 11233, \"\\u0120badly\": 11234, \"prot\": 11235, \"\\u0120choosing\": 11236, \"\\u0120contacted\": 11237, \"\\u0120quit\": 11238, \"\\u0120distur\": 11239, \"\\u0120stir\": 11240, \"\\u0120token\": 11241, \"Det\": 11242, \"\\u0120Pa\": 11243, \"\\u0120functionality\": 11244, \"003\": 11245, \"some\": 11246, \"\\u0120limitations\": 11247, \"\\u0120meth\": 11248, \"build\": 11249, \"config\": 11250, \"NT\": 11251, \"rell\": 11252, \"blem\": 11253, \"\\u0120Mom\": 11254, \"\\u0120veterans\": 11255, \"\\u0120Hu\": 11256, \"\\u0120trends\": 11257, \"arer\": 11258, \"\\u0120Given\": 11259, \"\\u0120Caption\": 11260, \"may\": 11261, \"AST\": 11262, \"\\u0120wondering\": 11263, \"\\u0120Clark\": 11264, \"normal\": 11265, \"\\u0120separated\": 11266, \"\\u0120desp\": 11267, \"stic\": 11268, \"brew\": 11269, \"\\u0120relating\": 11270, \"\\u0120Nik\": 11271, \"\\u0120Farm\": 11272, \"\\u0120enthusi\": 11273, \"good\": 11274, \"deb\": 11275, \"\\u0120activist\": 11276, \"\\u0120mart\": 11277, \"\\u0120explosion\": 11278, \"\\u0120Economic\": 11279, \"Link\": 11280, \"\\u0120insight\": 11281, \"\\u0120convenient\": 11282, \"\\u0120counterpart\": 11283, \"support\": 11284, \"\\u0120Virt\": 11285, \"agen\": 11286, \"\\u0120Tennessee\": 11287, \"\\u0120Simon\": 11288, \"\\u0120Award\": 11289, \"OCK\": 11290, \"\\u0120Figure\": 11291, \"\\u0120overseas\": 11292, \"\\u0120pride\": 11293, \"\\u0120Cas\": 11294, \"note\": 11295, \"mg\": 11296, \"Current\": 11297, \"\\u0120displays\": 11298, \"content\": 11299, \"\\u0120traveling\": 11300, \"\\u0120hospitals\": 11301, \"\\u0120Financial\": 11302, \"\\u0120Past\": 11303, \"\\u0120defendant\": 11304, \"\\u0120streaming\": 11305, \"mble\": 11306, \"\\u0120Berlin\": 11307, \"uki\": 11308, \"\\u0120distribut\": 11309, \"\\u0120antib\": 11310, \"\\u0120chocolate\": 11311, \"\\u0120Castle\": 11312, \"\\u0120interrupt\": 11313, \"\\u0120Row\": 11314, \"\\u0120conversion\": 11315, \"\\u0120bugs\": 11316, \"\\u0120Rather\": 11317, \"liest\": 11318, \"LY\": 11319, \"\\u0120Jean\": 11320, \"common\": 11321, \"akh\": 11322, \"\\u0120130\": 11323, \"otton\": 11324, \"\\u0120Dean\": 11325, \"\\u0120amendment\": 11326, \"\\u0120gameplay\": 11327, \"\\u0120Warren\": 11328, \"oda\": 11329, \"\\u0120highlights\": 11330, \"\\u0120irre\": 11331, \"\\u0120NATO\": 11332, \"\\u0120balls\": 11333, \"\\u0120demanding\": 11334, \"URE\": 11335, \"\\u0120Luke\": 11336, \"Figure\": 11337, \"stop\": 11338, \"onia\": 11339, \"zone\": 11340, \"izers\": 11341, \"\\u0120WR\": 11342, \"\\u0120awarded\": 11343, \"\\u0120regulatory\": 11344, \"\\u0120Hart\": 11345, \"\\u0120SN\": 11346, \"pling\": 11347, \"\\u0120sour\": 11348, \"\\u0120Pixel\": 11349, \"usive\": 11350, \"\\u0120fet\": 11351, \"\\u0120Sent\": 11352, \"\\u0120automatic\": 11353, \"\\u0120fer\": 11354, \"vernment\": 11355, \"\\u0120Khan\": 11356, \"TON\": 11357, \"father\": 11358, \"\\u0120extraordinary\": 11359, \"throp\": 11360, \"\\u0120Python\": 11361, \"\\u0120GPU\": 11362, \"\\u0120sexually\": 11363, \"\\u0120desktop\": 11364, \"itivity\": 11365, \"\\u0120Antonio\": 11366, \"\\u0120orient\": 11367, \"\\u0120ears\": 11368, \"obby\": 11369, \"ouses\": 11370, \"vertisements\": 11371, \"\\u0120manufacturers\": 11372, \"icient\": 11373, \"minute\": 11374, \"\\u0120conviction\": 11375, \"\\u0120garden\": 11376, \"public\": 11377, \"\\u0120satisfied\": 11378, \"fold\": 11379, \"OK\": 11380, \"\\u0120inhab\": 11381, \"\\u0120Think\": 11382, \"\\u0120programme\": 11383, \"\\u0120stomach\": 11384, \"\\u0120coordin\": 11385, \"\\u0120holy\": 11386, \"\\u0120threshold\": 11387, \"\\u0120rhet\": 11388, \"\\u0120serial\": 11389, \"\\u0120employers\": 11390, \"\\u0120Everything\": 11391, \"rah\": 11392, \"\\u0120bother\": 11393, \"\\u0120brands\": 11394, \"Value\": 11395, \"\\u0120Ted\": 11396, \"\\u0120Planet\": 11397, \"\\u0120pink\": 11398, \"\\u0120Furthermore\": 11399, \"sa\": 11400, \"PE\": 11401, \"reck\": 11402, \"\\u0120USD\": 11403, \"otte\": 11404, \"\\u0120&&\": 11405, \"\\u0120landed\": 11406, \"gets\": 11407, \"\\u0120producers\": 11408, \"\\u0120healthcare\": 11409, \"\\u0120dominant\": 11410, \"\\u0120destro\": 11411, \"\\u0120amended\": 11412, \"chron\": 11413, \"\\u0120fits\": 11414, \"\\u0120Syd\": 11415, \"\\u0120Authority\": 11416, \"ATCH\": 11417, \"\\u0120fights\": 11418, \"\\u0120LLC\": 11419, \"\\u0120---\": 11420, \"\\u0120Corp\": 11421, \"\\u0120toxic\": 11422, \"specific\": 11423, \"\\u0120Corn\": 11424, \"\\u0120Chel\": 11425, \"\\u0120telephone\": 11426, \"\\u0120Pant\": 11427, \"\\u0120mysterious\": 11428, \"aunch\": 11429, \"odox\": 11430, \"media\": 11431, \"\\u0120witnesses\": 11432, \"agu\": 11433, \"\\u0120questioned\": 11434, \"\\u0120Brexit\": 11435, \"\\u0120Remember\": 11436, \"enez\": 11437, \"\\u0120endorse\": 11438, \"iatric\": 11439, \"\\u0120Ident\": 11440, \"\\u0120ridiculous\": 11441, \"110\": 11442, \"\\u0120prayer\": 11443, \"\\u0120scientist\": 11444, \"\\u01201950\": 11445, \"\\u0120Aqu\": 11446, \"\\u0120underground\": 11447, \"\\u0120UFC\": 11448, \"mare\": 11449, \"\\u0120Later\": 11450, \"wich\": 11451, \"\\u0120subscrib\": 11452, \"\\u0120hosts\": 11453, \"\\u0120err\": 11454, \"\\u0120grants\": 11455, \"antom\": 11456, \"\\u0120summon\": 11457, \"early\": 11458, \"\\u0120Clear\": 11459, \"\\u0120Prim\": 11460, \"\\u0120suspension\": 11461, \"\\u0120guaranteed\": 11462, \"apper\": 11463, \"\\u0120rice\": 11464, \"\\u0120Sean\": 11465, \"\\u0120Shin\": 11466, \"\\u0120referendum\": 11467, \"\\u0120fled\": 11468, \"rust\": 11469, \"\\u0120360\": 11470, \"tery\": 11471, \"\\u0120shocked\": 11472, \"BR\": 11473, \"\\u0120Oil\": 11474, \"\\u0120Allah\": 11475, \"\\u0120partly\": 11476, \"\\u0120ignor\": 11477, \"\\u0120transmission\": 11478, \"\\u0120homosexual\": 11479, \"iversal\": 11480, \"\\u0120hopefully\": 11481, \"\\u00e3\\u0124\\u00a4\": 11482, \"\\u0120lesson\": 11483, \"Leg\": 11484, \"\\u0120..\": 11485, \"Yet\": 11486, \"table\": 11487, \"appropri\": 11488, \"rett\": 11489, \"\\u0120boards\": 11490, \"\\u0120incorrect\": 11491, \"\\u0120bacteria\": 11492, \"aru\": 11493, \"amac\": 11494, \"\\u0120snap\": 11495, \".'\\\"\": 11496, \"\\u0120parad\": 11497, \"tem\": 11498, \"heart\": 11499, \"\\u0120availability\": 11500, \"\\u0120wisdom\": 11501, \"\\u0120(+\": 11502, \"\\u0120priest\": 11503, \"\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\": 11504, \"Open\": 11505, \"\\u0120span\": 11506, \"\\u0120parameter\": 11507, \"\\u0120convince\": 11508, \"\\u0120(%)\": 11509, \"rac\": 11510, \"\\u0120fo\": 11511, \"\\u0120safely\": 11512, \"\\u0120converted\": 11513, \"\\u0120Olympic\": 11514, \"\\u0120reserve\": 11515, \"\\u0120healing\": 11516, \"\\u0120Mine\": 11517, \"Max\": 11518, \"\\u0120inherent\": 11519, \"\\u0120Graham\": 11520, \"\\u0120integrated\": 11521, \"Dem\": 11522, \"\\u0120pipeline\": 11523, \"\\u0120applying\": 11524, \"\\u0120embed\": 11525, \"\\u0120Charlie\": 11526, \"\\u0120cave\": 11527, \"2008\": 11528, \"\\u0120consensus\": 11529, \"\\u0120rewards\": 11530, \"Pal\": 11531, \"\\u0120HTML\": 11532, \"\\u0120popularity\": 11533, \"looking\": 11534, \"\\u0120Sword\": 11535, \"\\u0120Arts\": 11536, \"')\": 11537, \"\\u0120electron\": 11538, \"clusions\": 11539, \"\\u0120integrity\": 11540, \"\\u0120exclusively\": 11541, \"\\u0120grace\": 11542, \"\\u0120torture\": 11543, \"\\u0120burned\": 11544, \"two\": 11545, \"\\u0120180\": 11546, \"Produ\": 11547, \"\\u0120entreprene\": 11548, \"raphics\": 11549, \"\\u0120gym\": 11550, \"ricane\": 11551, \"\\u0120Tam\": 11552, \"\\u0120administrative\": 11553, \"\\u0120manufacturer\": 11554, \"\\u0120vel\": 11555, \"\\u0120Ni\": 11556, \"\\u0120isolated\": 11557, \"\\u0120Medicine\": 11558, \"\\u0120backup\": 11559, \"\\u0120promoting\": 11560, \"\\u0120commander\": 11561, \"\\u0120flee\": 11562, \"\\u0120Russell\": 11563, \"\\u0120forgotten\": 11564, \"\\u0120Missouri\": 11565, \"\\u0120residence\": 11566, \"mons\": 11567, \"\\u0120resemb\": 11568, \"\\u0120wand\": 11569, \"\\u0120meaningful\": 11570, \"PT\": 11571, \"\\u0120bol\": 11572, \"\\u0120helic\": 11573, \"\\u0120wealthy\": 11574, \"\\u0120rifle\": 11575, \"strong\": 11576, \"rowing\": 11577, \"plan\": 11578, \"asury\": 11579, \"\\u00e2\\u0122\\u00a6.\": 11580, \"\\u0120expanding\": 11581, \"\\u0120Hamilton\": 11582, \"\\u0120receives\": 11583, \"SI\": 11584, \"eatures\": 11585, \"\\u0120Anim\": 11586, \"REE\": 11587, \"Put\": 11588, \"\\u0120briefly\": 11589, \"rive\": 11590, \"\\u0120stimul\": 11591, \"\\u0120``(\": 11592, \"\\u0120__\": 11593, \"\\u0120chip\": 11594, \"\\u0120haz\": 11595, \"\\u0120prize\": 11596, \"\\u0120Things\": 11597, \"ACE\": 11598, \"ulin\": 11599, \"dict\": 11600, \"oku\": 11601, \"\\u0120associate\": 11602, \"ockets\": 11603, \"youtube\": 11604, \"Story\": 11605, \"ategory\": 11606, \"\\u0120mild\": 11607, \"ailing\": 11608, \"\\u0120Ye\": 11609, \"Orig\": 11610, \"\\u0120Ka\": 11611, \"orig\": 11612, \"\\u0120propaganda\": 11613, \"\\u0120anonymous\": 11614, \"\\u0120struggled\": 11615, \"\\u0120outrage\": 11616, \"ATED\": 11617, \"\\u0120Beijing\": 11618, \"rary\": 11619, \"\\u0120leather\": 11620, \"\\u0120worlds\": 11621, \"\\u0120broader\": 11622, \"125\": 11623, \"idal\": 11624, \"\\u0120Better\": 11625, \"\\u0120tear\": 11626, \"Ext\": 11627, \"\\u0120proposals\": 11628, \"\\u0120iter\": 11629, \"\\u0120Squad\": 11630, \"\\u0120volunt\": 11631, \"mi\": 11632, \"Did\": 11633, \"\\u0120Pu\": 11634, \"pin\": 11635, \"\\u0120speakers\": 11636, \"\\u0120borders\": 11637, \"\\u0120figured\": 11638, \"='\": 11639, \"\\u0120simultaneously\": 11640, \"aeda\": 11641, \"\\u0120charging\": 11642, \"\\u0120urged\": 11643, \"\\u0120conj\": 11644, \"256\": 11645, \"\\u0120Gordon\": 11646, \"merce\": 11647, \"\\u0120documentary\": 11648, \"Share\": 11649, \"itol\": 11650, \"ONE\": 11651, \"\\u0120Garden\": 11652, \"hatt\": 11653, \"\\u0120Thompson\": 11654, \"aneous\": 11655, \"apore\": 11656, \"\\u0120tanks\": 11657, \"\\u0120lessons\": 11658, \"track\": 11659, \"\\u0120outstanding\": 11660, \"\\u0120volunteers\": 11661, \"\\u0120spray\": 11662, \"\\u0120managers\": 11663, \"large\": 11664, \"\\u0120camps\": 11665, \"\\u0120artificial\": 11666, \"\\u0120Ru\": 11667, \"\\u0120bags\": 11668, \"thal\": 11669, \"\\u0120compatible\": 11670, \"\\u0120Blade\": 11671, \"\\u0120fed\": 11672, \"\\u0120argues\": 11673, \"FI\": 11674, \"\\u0120unfair\": 11675, \"\\u0120corn\": 11676, \"\\u0120offset\": 11677, \"\\u0120directions\": 11678, \"\\u0120disappointed\": 11679, \"\\u0120Convention\": 11680, \"\\u0120viewing\": 11681, \"ME\": 11682, \"ocity\": 11683, \"\\u0120towns\": 11684, \"\\u0120layers\": 11685, \"\\u0120rolled\": 11686, \"\\u0120jumped\": 11687, \"\\u0120attribute\": 11688, \"\\u0120unnecess\": 11689, \"incoln\": 11690, \"\\u0120suppose\": 11691, \"\\u0120Nether\": 11692, \"cha\": 11693, \"\\u0120buried\": 11694, \"\\u0120sixth\": 11695, \"Ben\": 11696, \"ressing\": 11697, \"OUR\": 11698, \"\\u0120wound\": 11699, \"\\u0120cycl\": 11700, \"\\u0120mechanisms\": 11701, \"\\u0120congressional\": 11702, \"\\u0120Element\": 11703, \"\\u0120agreements\": 11704, \"\\u0120decor\": 11705, \"\\u0120closest\": 11706, \"\\u0120Mit\": 11707, \"Google\": 11708, \"}}\": 11709, \"\\u0120mixture\": 11710, \"\\u0120fluid\": 11711, \"Sign\": 11712, \"\\u0120Scholar\": 11713, \"\\u0120pist\": 11714, \"asket\": 11715, \"abling\": 11716, \"\\u0120racing\": 11717, \"hero\": 11718, \"riel\": 11719, \"assy\": 11720, \"\\u0120cheaper\": 11721, \"ben\": 11722, \"\\u0120vertical\": 11723, \"amacare\": 11724, \"\\u0120Reading\": 11725, \"gments\": 11726, \"\\u0120helicop\": 11727, \"\\u0120sacrifice\": 11728, \"aya\": 11729, \"paren\": 11730, \"VA\": 11731, \"\\u0120Les\": 11732, \"\\u0120Studio\": 11733, \"\\u0120violations\": 11734, \"\\u0120Anna\": 11735, \"acer\": 11736, \"\\u00e9\\u00be\": 11737, \"\\u0120Rat\": 11738, \"\\u0120Beck\": 11739, \"\\u0120Dick\": 11740, \"\\u0120ACT\": 11741, \"\\u0120composition\": 11742, \"\\u0120texture\": 11743, \"\\u0120Own\": 11744, \"\\u0120smartphone\": 11745, \"\\u0120NA\": 11746, \"\\u0120forb\": 11747, \"import\": 11748, \"\\u0120defending\": 11749, \"ilst\": 11750, \"rer\": 11751, \"\\u0120oh\": 11752, \"\\u0120Jeremy\": 11753, \"\\u0120banking\": 11754, \"ceptions\": 11755, \"\\u0120respective\": 11756, \"/.\": 11757, \"\\u0120drinks\": 11758, \"\\u0120Wi\": 11759, \"\\u0120bands\": 11760, \"\\u0120Liverpool\": 11761, \"\\u0120grip\": 11762, \"\\u0120Buy\": 11763, \"\\u0120openly\": 11764, \"\\u0120reviewed\": 11765, \"pert\": 11766, \"\\u0120verify\": 11767, \"\\u0120Cole\": 11768, \"\\u0120Wales\": 11769, \"MO\": 11770, \"\\u0120unpre\": 11771, \"\\u0120shelter\": 11772, \"\\u0120Imperial\": 11773, \"\\u0120gui\": 11774, \"\\u0120Dak\": 11775, \"\\u0120suggestions\": 11776, \"\\u0120explicitly\": 11777, \"\\u0120slave\": 11778, \"\\u0120blockchain\": 11779, \"\\u0120competing\": 11780, \"\\u0120promising\": 11781, \"SON\": 11782, \"\\u0120soccer\": 11783, \"\\u0120constitution\": 11784, \"429\": 11785, \"\\u0120distract\": 11786, \"\\u0120User\": 11787, \"esides\": 11788, \"\\u0120Method\": 11789, \"\\u0120Tokyo\": 11790, \"\\u0120accompanied\": 11791, \"Client\": 11792, \"sur\": 11793, \"alog\": 11794, \"\\u0120identification\": 11795, \"\\u0120invasion\": 11796, \"asma\": 11797, \"\\u0120industries\": 11798, \"ppers\": 11799, \"\\u0120subtle\": 11800, \"\\u0120Unit\": 11801, \"natural\": 11802, \"\\u0120survived\": 11803, \"\\u0120flaw\": 11804, \"\\u013a\\u0127\": 11805, \"\\u0120Holl\": 11806, \"\\u0120deficit\": 11807, \"\\u0120tutorial\": 11808, \"\\u0120Chance\": 11809, \"\\u0120arguing\": 11810, \"\\u0120contemporary\": 11811, \"\\u0120integration\": 11812, \"forward\": 11813, \"\\u0120tum\": 11814, \"itis\": 11815, \"\\u0120hiding\": 11816, \"\\u0120Domin\": 11817, \"\\u0120Tan\": 11818, \"\\u0120Building\": 11819, \"\\u0120Vin\": 11820, \"\\u0120spokesperson\": 11821, \"\\u0120Notes\": 11822, \"\\u0120emerging\": 11823, \"\\u0120preparation\": 11824, \"\\u0120prost\": 11825, \"\\u0120suspects\": 11826, \"\\u0120autonom\": 11827, \"Description\": 11828, \"\\u0120dealt\": 11829, \"\\u0120Pear\": 11830, \"\\u0120steady\": 11831, \"\\u0120decreased\": 11832, \"\\u0120sovere\": 11833, \"\\u0120Clin\": 11834, \"\\u0120gradually\": 11835, \"orses\": 11836, \"\\u0120WAR\": 11837, \"Serv\": 11838, \"\\u00e3\\u0124\\u00a2\": 11839, \"hr\": 11840, \"\\u0120dirty\": 11841, \"\\u0120Barn\": 11842, \"\\u0120BC\": 11843, \"\\u0120dil\": 11844, \"\\u0120calendar\": 11845, \"\\u0120compliance\": 11846, \"\\u0120chamber\": 11847, \"bb\": 11848, \"\\u0120passenger\": 11849, \"ateful\": 11850, \"\\u0120Title\": 11851, \"\\u0120Sydney\": 11852, \"\\u0120Got\": 11853, \"\\u0120darkness\": 11854, \"\\u0120defect\": 11855, \"\\u0120packed\": 11856, \"assion\": 11857, \"\\u0120gods\": 11858, \"\\u0120harsh\": 11859, \"ICK\": 11860, \"leans\": 11861, \"\\u0120algorithm\": 11862, \"\\u0120oxygen\": 11863, \"\\u0120visits\": 11864, \"\\u0120blade\": 11865, \"\\u0120kilomet\": 11866, \"\\u0120Kentucky\": 11867, \"\\u0120killer\": 11868, \"Pack\": 11869, \"enny\": 11870, \"\\u0120divine\": 11871, \"\\u0120nomination\": 11872, \"being\": 11873, \"\\u0120engines\": 11874, \"\\u0120cats\": 11875, \"\\u0120buffer\": 11876, \"\\u0120Phill\": 11877, \"\\u0120traff\": 11878, \"AGE\": 11879, \"\\u0120tongue\": 11880, \"\\u0120radiation\": 11881, \"erer\": 11882, \"mem\": 11883, \"\\u0120Explicit\": 11884, \"\\u00e9\\u00be\\u012f\": 11885, \"\\u0120couples\": 11886, \"\\u0120physics\": 11887, \"\\u0120McK\": 11888, \"\\u0120politically\": 11889, \"awks\": 11890, \"\\u0120Bloom\": 11891, \"\\u0120worship\": 11892, \"eger\": 11893, \"uter\": 11894, \"\\u0120FO\": 11895, \"\\u0120mathemat\": 11896, \"\\u0120sentenced\": 11897, \"\\u0120disk\": 11898, \"\\u0120Marg\": 11899, \"\\u0120/*\": 11900, \"PI\": 11901, \"\\u0120optional\": 11902, \"\\u0120babies\": 11903, \"\\u0120seeds\": 11904, \"\\u0120Scottish\": 11905, \"\\u0120thy\": 11906, \"]]\": 11907, \"\\u0120Hitler\": 11908, \"PH\": 11909, \"ngth\": 11910, \"\\u0120recovered\": 11911, \"inge\": 11912, \"\\u0120powder\": 11913, \"\\u0120lips\": 11914, \"\\u0120designer\": 11915, \"\\u0120disorders\": 11916, \"\\u0120courage\": 11917, \"\\u0120chaos\": 11918, \"\\\"},{\\\"\": 11919, \"\\u0120carrier\": 11920, \"bably\": 11921, \"High\": 11922, \"\\u0120RT\": 11923, \"esity\": 11924, \"len\": 11925, \"\\u0120routes\": 11926, \"uating\": 11927, \"Fil\": 11928, \"NOT\": 11929, \"wall\": 11930, \"sburgh\": 11931, \"\\u0120engaging\": 11932, \"\\u0120JavaScript\": 11933, \"orer\": 11934, \"lihood\": 11935, \"\\u0120unions\": 11936, \"\\u0120Federation\": 11937, \"\\u0120Tesla\": 11938, \"\\u0120completion\": 11939, \"\\u0120Ta\": 11940, \"\\u0120privilege\": 11941, \"\\u0120Orange\": 11942, \"\\u0120neur\": 11943, \"parency\": 11944, \"\\u0120bones\": 11945, \"\\u0120titled\": 11946, \"\\u0120prosecutors\": 11947, \"\\u0120ME\": 11948, \"\\u0120engineer\": 11949, \"\\u0120Universe\": 11950, \"\\u0120Hig\": 11951, \"nie\": 11952, \"oard\": 11953, \"\\u0120hearts\": 11954, \"\\u0120Gre\": 11955, \"ussion\": 11956, \"\\u0120ministry\": 11957, \"\\u0120penet\": 11958, \"\\u0120Nut\": 11959, \"\\u0120Ow\": 11960, \"\\u0120XP\": 11961, \"instein\": 11962, \"\\u0120bulk\": 11963, \"System\": 11964, \"icism\": 11965, \"\\u0120Marketable\": 11966, \"\\u0120preval\": 11967, \"\\u0120poster\": 11968, \"\\u0120attending\": 11969, \"urable\": 11970, \"\\u0120licensed\": 11971, \"\\u0120Gh\": 11972, \"etry\": 11973, \"\\u0120Tradable\": 11974, \"\\u0120blast\": 11975, \"\\u00e0\\u00a4\": 11976, \"\\u0120Titan\": 11977, \"elled\": 11978, \"die\": 11979, \"Have\": 11980, \"\\u0120Flame\": 11981, \"\\u0120profound\": 11982, \"\\u0120participating\": 11983, \"\\u0120anime\": 11984, \"\\u0120Ess\": 11985, \"\\u0120specify\": 11986, \"\\u0120regarded\": 11987, \"\\u0120Spell\": 11988, \"\\u0120sons\": 11989, \"owned\": 11990, \"\\u0120merc\": 11991, \"\\u0120experimental\": 11992, \"lando\": 11993, \"hs\": 11994, \"\\u0120Dungeon\": 11995, \"inos\": 11996, \"\\u0120comply\": 11997, \"\\u0120Systems\": 11998, \"arth\": 11999, \"\\u0120seized\": 12000, \"local\": 12001, \"\\u0120Girls\": 12002, \"udo\": 12003, \"oned\": 12004, \"\\u0120Fle\": 12005, \"\\u0120constructed\": 12006, \"\\u0120hosted\": 12007, \"\\u0120scared\": 12008, \"actic\": 12009, \"\\u0120Islands\": 12010, \"\\u0120MORE\": 12011, \"\\u0120bless\": 12012, \"\\u0120blocking\": 12013, \"\\u0120chips\": 12014, \"\\u0120evac\": 12015, \"Ps\": 12016, \"\\u0120corporation\": 12017, \"\\u0120ox\": 12018, \"\\u0120lighting\": 12019, \"\\u0120neighbors\": 12020, \"\\u0120Ub\": 12021, \"aro\": 12022, \"\\u0120beef\": 12023, \"\\u0120Uber\": 12024, \"Facebook\": 12025, \"armed\": 12026, \"itate\": 12027, \"\\u0120Rating\": 12028, \"\\u0120Quick\": 12029, \"\\u0120occupied\": 12030, \"\\u0120aims\": 12031, \"\\u0120Additionally\": 12032, \"\\u0120Interest\": 12033, \"\\u0120dramatically\": 12034, \"\\u0120heal\": 12035, \"\\u0120painting\": 12036, \"\\u0120engineers\": 12037, \"MM\": 12038, \"\\u0120Must\": 12039, \"\\u0120quantity\": 12040, \"Paul\": 12041, \"\\u0120earnings\": 12042, \"\\u0120Posts\": 12043, \"stra\": 12044, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0125\": 12045, \"\\u0120stance\": 12046, \"\\u0120dropping\": 12047, \"script\": 12048, \"\\u0120dressed\": 12049, \"Make\": 12050, \"\\u0120justify\": 12051, \"\\u0120Ltd\": 12052, \"\\u0120prompted\": 12053, \"\\u0120scrut\": 12054, \"\\u0120speeds\": 12055, \"\\u0120Giants\": 12056, \"omer\": 12057, \"\\u0120Editor\": 12058, \"\\u0120describing\": 12059, \"\\u0120Lie\": 12060, \"mented\": 12061, \"\\u0120nowhere\": 12062, \"ocaly\": 12063, \"\\u0120instruction\": 12064, \"fortable\": 12065, \"\\u0120entities\": 12066, \"\\u0120cm\": 12067, \"\\u0120Natural\": 12068, \"\\u0120inquiry\": 12069, \"\\u0120pressed\": 12070, \"izont\": 12071, \"forced\": 12072, \"\\u0120raises\": 12073, \"\\u0120Netflix\": 12074, \"\\u0120Side\": 12075, \"\\u0120outer\": 12076, \"\\u0120amongst\": 12077, \"ims\": 12078, \"owski\": 12079, \"\\u0120climb\": 12080, \"never\": 12081, \"\\u0120combine\": 12082, \"ding\": 12083, \"\\u0120compr\": 12084, \"\\u0120significance\": 12085, \"\\u0120remembered\": 12086, \"\\u0120Nevada\": 12087, \"\\u0120Tel\": 12088, \"\\u0120Scar\": 12089, \"\\u0120Warriors\": 12090, \"\\u0120Jane\": 12091, \"\\u0120coup\": 12092, \"bas\": 12093, \"\\u0120terminal\": 12094, \",-\": 12095, \"OH\": 12096, \"\\u0120tension\": 12097, \"\\u0120wings\": 12098, \"\\u0120Myster\": 12099, \"\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\": 12100, \"\\u0120Unlike\": 12101, \"valid\": 12102, \"vironments\": 12103, \"\\u0120Ali\": 12104, \"\\u0120naked\": 12105, \"books\": 12106, \"\\u0120Mun\": 12107, \"\\u0120Gulf\": 12108, \"\\u0120density\": 12109, \"\\u0120dimin\": 12110, \"\\u0120desperate\": 12111, \"\\u0120presidency\": 12112, \"\\u01201986\": 12113, \"hy\": 12114, \"IND\": 12115, \"\\u0120unlock\": 12116, \"imens\": 12117, \"\\u0120handled\": 12118, \"\\u0120Eb\": 12119, \"\\u0120disappeared\": 12120, \"\\u0120genre\": 12121, \"\\u01201988\": 12122, \"\\u0120determination\": 12123, \"Stream\": 12124, \"iko\": 12125, \"apters\": 12126, \"\\u0120acknowledge\": 12127, \"Jan\": 12128, \"\\u0120capitalism\": 12129, \"Pat\": 12130, \"\\u01202020\": 12131, \"\\u0120painful\": 12132, \"\\u0120curve\": 12133, \"\\u0120bombs\": 12134, \"storm\": 12135, \"\\u0120Metal\": 12136, \"encer\": 12137, \"\\u0120Fig\": 12138, \"\\u0120Aaron\": 12139, \"anches\": 12140, \"\\u0120inspiration\": 12141, \"\\u0120exhaust\": 12142, \"tains\": 12143, \"ashi\": 12144, \"\\u0120descript\": 12145, \"\\u0120ritual\": 12146, \"\\u0120Chelsea\": 12147, \"\\u0120promotion\": 12148, \"\\u0120Hung\": 12149, \"\\u0120Ward\": 12150, \"iva\": 12151, \"\\u0120ET\": 12152, \"\\u0120toss\": 12153, \"allow\": 12154, \"\\u0120Francis\": 12155, \"Dep\": 12156, \"\\u0120happiness\": 12157, \"\\u0120Glass\": 12158, \"\\u0120beta\": 12159, \"\\u0120strengthen\": 12160, \"NE\": 12161, \"oa\": 12162, \"\\u0120buttons\": 12163, \"\\u0120Murray\": 12164, \"\\u0120kicked\": 12165, \"Quest\": 12166, \"\\u0120Talk\": 12167, \"\\u0120Several\": 12168, \"\\u0120Zero\": 12169, \"\\u0120drone\": 12170, \"ulk\": 12171, \"\\u0120cam\": 12172, \"\\u0120Mobile\": 12173, \"\\u0120preventing\": 12174, \"\\u0120retro\": 12175, \"\\u0120Ax\": 12176, \"\\u0120cruel\": 12177, \"\\u0120float\": 12178, \".),\": 12179, \"\\u0120filing\": 12180, \"\\u0120Grant\": 12181, \"\\u0120Bor\": 12182, \"\\u0120rib\": 12183, \"\\u0120championship\": 12184, \"\\u0120Merc\": 12185, \"\\u0120styles\": 12186, \"\\u0120cake\": 12187, \"\\u0120builds\": 12188, \"\\u0120Self\": 12189, \"iox\": 12190, \"\\u0120epic\": 12191, \"oyd\": 12192, \"Bel\": 12193, \"\\u0120Stew\": 12194, \".(\": 12195, \"ahu\": 12196, \"\\u0120Beyond\": 12197, \"\\u0120outs\": 12198, \"\\u0120solo\": 12199, \"\\u0120Tree\": 12200, \"\\u0120preserve\": 12201, \"\\u0120tub\": 12202, \"ARE\": 12203, \"roc\": 12204, \"\\u0120Impro\": 12205, \"\\u0120Wright\": 12206, \"\\u0120bund\": 12207, \"\\u0120traged\": 12208, \"\\u0120occasional\": 12209, \"bian\": 12210, \"Second\": 12211, \"rons\": 12212, \"\\u0120interactions\": 12213, \"formed\": 12214, \"sing\": 12215, \"\\u0120owns\": 12216, \"\\u0120hockey\": 12217, \"General\": 12218, \"\\u0120logical\": 12219, \"\\u0120expend\": 12220, \"\\u0120escal\": 12221, \"\\u0120Griff\": 12222, \"\\u0120Crown\": 12223, \"\\u0120Reserve\": 12224, \"\\u0120stopping\": 12225, \"\\u0120excuse\": 12226, \"second\": 12227, \"\\u0120operated\": 12228, \"\\u0120reaches\": 12229, \"\\u0120Malays\": 12230, \"\\u0120pollution\": 12231, \"\\u0120Brooklyn\": 12232, \"\\u0120delete\": 12233, \"\\u0120hash\": 12234, \"Block\": 12235, \"aha\": 12236, \"\\u00e2\\u0122\\u00b3\": 12237, \"\\u0120shorter\": 12238, \"piece\": 12239, \"></\": 12240, \"\\u0120horm\": 12241, \"\\u0120Wat\": 12242, \"\\u0120Break\": 12243, \"\\u0120prohibited\": 12244, \"\\u0120intensity\": 12245, \"\\u0120Alan\": 12246, \"\\u0120liability\": 12247, \"?!\": 12248, \"anded\": 12249, \"\\u0120neighbour\": 12250, \"\\u0120Collection\": 12251, \"\\u0120fires\": 12252, \"\\u0120revolutionary\": 12253, \"fly\": 12254, \"\\u0120Orleans\": 12255, \"White\": 12256, \"\\u0120Writ\": 12257, \"\\u0120Dawn\": 12258, \"\\u0120settle\": 12259, \"\\u0120execute\": 12260, \"BM\": 12261, \"\\u0120spokeswoman\": 12262, \"\\u0120lifestyle\": 12263, \"\\u0120clicking\": 12264, \"\\u0120Kill\": 12265, \"\\u0120Liberal\": 12266, \"\\u0120Nazi\": 12267, \"\\u0120trailer\": 12268, \"\\u0120mountains\": 12269, \"\\u0120damn\": 12270, \"zes\": 12271, \"pes\": 12272, \"\\u0120pressing\": 12273, \"\\u0120bail\": 12274, \"\\u0120Organization\": 12275, \"\\u0120pir\": 12276, \"\\u0120thirty\": 12277, \"\\u0120electrical\": 12278, \"\\u0120115\": 12279, \"\\u0120Poly\": 12280, \"\\u0120Rap\": 12281, \"\\u0120Strike\": 12282, \"\\u0120Cann\": 12283, \"\\u0120demanded\": 12284, \"\\u0120backing\": 12285, \"default\": 12286, \"speed\": 12287, \"\\u0120Legisl\": 12288, \"\\u0120mothers\": 12289, \"\\u0120Body\": 12290, \"\\u0120variation\": 12291, \"cedented\": 12292, \"powered\": 12293, \"leading\": 12294, \"Never\": 12295, \"\\u0120grave\": 12296, \"\\u0120Anti\": 12297, \"AW\": 12298, \"\\u0120interviewed\": 12299, \"\\u0120Gab\": 12300, \"\\u0120Fat\": 12301, \"\\u0120rookie\": 12302, \"uu\": 12303, \"\\u0120depos\": 12304, \"ixon\": 12305, \"\\u0120ampl\": 12306, \"retion\": 12307, \"\\u0120Heat\": 12308, \"\\u0120peaceful\": 12309, \"SM\": 12310, \"ieve\": 12311, \"\\u0120diver\": 12312, \"\\u0120Victoria\": 12313, \"\\u0120mic\": 12314, \"pdf\": 12315, \"\\u0120stating\": 12316, \"\\u0120lung\": 12317, \"\\u0120criticized\": 12318, \"\\u0120vaccine\": 12319, \"\\u0120Loading\": 12320, \"urse\": 12321, \"Take\": 12322, \"\\u0120Fran\": 12323, \"\\u0120Sold\": 12324, \"\\u0120Robin\": 12325, \"\\u0120detected\": 12326, \"\\u0120Script\": 12327, \"\\u0120adjusted\": 12328, \"\\u0120senator\": 12329, \"\\u0120opposing\": 12330, \"Error\": 12331, \"Count\": 12332, \"\\u0120conflicts\": 12333, \"\\u0120ow\": 12334, \"\\u0120Argent\": 12335, \"\\u0120matching\": 12336, \"hh\": 12337, \"\\u0120Trek\": 12338, \"starter\": 12339, \"\\\"),\": 12340, \"\\u0120AF\": 12341, \"oder\": 12342, \"xxxx\": 12343, \"\\u0120Alt\": 12344, \"acre\": 12345, \"\\u0120Pick\": 12346, \"\\u0120Solar\": 12347, \"\\u0120Dal\": 12348, \"Oct\": 12349, \"\\u0120Batt\": 12350, \"\\u0120src\": 12351, \"\\u0120engagement\": 12352, \"\\u0120executives\": 12353, \"\\u0120liberty\": 12354, \"java\": 12355, \"\\u0120talented\": 12356, \"igenous\": 12357, \"\\u0120consecut\": 12358, \".....\": 12359, \"Info\": 12360, \"\\u0120horrible\": 12361, \"\\u0120surprisingly\": 12362, \"feed\": 12363, \"icating\": 12364, \"\\u0120LED\": 12365, \"\\u0120females\": 12366, \"Station\": 12367, \"eller\": 12368, \"\\u0120Oakland\": 12369, \"\\u0120mechanical\": 12370, \"iology\": 12371, \"\\u0120Var\": 12372, \"\\u0120robust\": 12373, \"ettings\": 12374, \"otta\": 12375, \"\\u0120theoret\": 12376, \"\\u0120retain\": 12377, \"kward\": 12378, \"\\u0120da\": 12379, \"\\u0120deployed\": 12380, \"del\": 12381, \"\\u0120Andy\": 12382, \"\\u0120subscribe\": 12383, \"web\": 12384, \"\\u0120na\": 12385, \"\\u0120Michel\": 12386, \"\\u0120partially\": 12387, \"\\u0120Comey\": 12388, \"\\u0120crown\": 12389, \"\\u0120Maj\": 12390, \"\\u0120Blu\": 12391, \"rator\": 12392, \"Day\": 12393, \"INT\": 12394, \"\\u0120documented\": 12395, \"\\u0120GDP\": 12396, \"gi\": 12397, \"chell\": 12398, \"\\u0120brutal\": 12399, \"\\u0120Bab\": 12400, \"stration\": 12401, \"\\u0120theft\": 12402, \"\\u0120tube\": 12403, \"@@\": 12404, \"\\u0120query\": 12405, \"\\u0120Lincoln\": 12406, \"\\u0120publishing\": 12407, \"\\u0120wore\": 12408, \"orical\": 12409, \"\\u0120ric\": 12410, \"\\u0120notable\": 12411, \"\\u0120subsequently\": 12412, \"nex\": 12413, \"\\u0120observe\": 12414, \"\\u0120Boe\": 12415, \"\\u0120codes\": 12416, \"main\": 12417, \"WH\": 12418, \"\\u0120SL\": 12419, \"\\u0120residential\": 12420, \"avan\": 12421, \"\\u0120mas\": 12422, \"arest\": 12423, \"adeon\": 12424, \"OUT\": 12425, \"\\u0120sophistic\": 12426, \"ante\": 12427, \"\\u0120cens\": 12428, \"\\u0120**\": 12429, \"\\u0120mortality\": 12430, \"\\u0120yours\": 12431, \"\\u0120occasions\": 12432, \"\\u0120recalled\": 12433, \"\\u0120Driver\": 12434, \"\\u0120vocal\": 12435, \"\\u0120bathroom\": 12436, \"\\u0120shops\": 12437, \"\\u0120collaboration\": 12438, \"\\u0120Obamacare\": 12439, \"\\u0120Cell\": 12440, \"Char\": 12441, \"Super\": 12442, \"Cre\": 12443, \"\\u0120tends\": 12444, \"\\u0120torn\": 12445, \"\\u0120economics\": 12446, \"avery\": 12447, \"\\u0120Raid\": 12448, \"\\u0120Sem\": 12449, \"\\u0120shoulders\": 12450, \"\\u0120expecting\": 12451, \"\\u0120examination\": 12452, \"ename\": 12453, \"\\u0120UI\": 12454, \"iability\": 12455, \"olas\": 12456, \"\\u0120Amb\": 12457, \"\\u0120Dra\": 12458, \"\\u0120midfield\": 12459, \"\\u0120IC\": 12460, \"\\u0120layout\": 12461, \"\\u0120floating\": 12462, \"fi\": 12463, \"itative\": 12464, \"\\u0120tremendous\": 12465, \"\\u0120\\u00d0\": 12466, \"\\u0120abund\": 12467, \"Work\": 12468, \"\\u0120Lightning\": 12469, \"\\u0120similarly\": 12470, \"\\u0120conservatives\": 12471, \"\\u0120pray\": 12472, \"BE\": 12473, \"izarre\": 12474, \"\\u0120tempt\": 12475, \"\\u0120emphasis\": 12476, \"\\u0120Metro\": 12477, \"\\u0120fishing\": 12478, \"\\u0120marry\": 12479, \"neg\": 12480, \"\\u0120Study\": 12481, \"\\u0120reck\": 12482, \"\\u0120dispos\": 12483, \"oning\": 12484, \"bsite\": 12485, \"\\u0120suspic\": 12486, \"\\u0120merch\": 12487, \"\\u0120Gib\": 12488, \"\\u0120Description\": 12489, \"\\u0120DVD\": 12490, \"whe\": 12491, \"\\u0120Yemen\": 12492, \"\\u0120environments\": 12493, \"ooting\": 12494, \"\\u0120Modern\": 12495, \"eu\": 12496, \"\\u0120reflects\": 12497, \"\\u0120honey\": 12498, \"\\u0120analyst\": 12499, \"\\u0120gut\": 12500, \"dec\": 12501, \"Action\": 12502, \"\\u0120households\": 12503, \"\\u0120ster\": 12504, \"\\u0120temple\": 12505, \"\\u0120reforms\": 12506, \"\\u0120favourite\": 12507, \"\\u0120deadline\": 12508, \"\\u0120LE\": 12509, \"Three\": 12510, \"\\u0120Within\": 12511, \"Aug\": 12512, \"\\u0120nights\": 12513, \"elta\": 12514, \"\\u0120invalid\": 12515, \"\\u0120Exchange\": 12516, \"\\u0120Delhi\": 12517, \"when\": 12518, \"income\": 12519, \"\\u0120\\u00f0\\u0141\": 12520, \"\\u0120wireless\": 12521, \"scribe\": 12522, \"ista\": 12523, \"\\u0120hostile\": 12524, \"\\u0120ally\": 12525, \"\\u0120gig\": 12526, \"\\u0120outlets\": 12527, \"\\u0120Dor\": 12528, \"EMENT\": 12529, \"\\u0120ash\": 12530, \"\\u0120abstract\": 12531, \"ORD\": 12532, \"\\u0120Motor\": 12533, \"\\u0120adviser\": 12534, \"istle\": 12535, \"\\u0120bases\": 12536, \"\\u0120courtesy\": 12537, \"\\u0120crossing\": 12538, \"\\u0120cleared\": 12539, \"\\u0120refugee\": 12540, \"cosystem\": 12541, \"\\u0120throws\": 12542, \"fun\": 12543, \"bourne\": 12544, \"days\": 12545, \"\\u0120disagree\": 12546, \"\\u0120Native\": 12547, \"\\u0120reflected\": 12548, \"\\u0120Fast\": 12549, \"\\u0120Yellow\": 12550, \"\\u0120Singapore\": 12551, \"\\u0120Raven\": 12552, \"\\u0120embrace\": 12553, \"\\u0120Ku\": 12554, \"\\u0120Chen\": 12555, \"\\u0120Early\": 12556, \"\\u0120appointment\": 12557, \"\\u0120Mini\": 12558, \"itement\": 12559, \"\\u0120placing\": 12560, \"\\u0120bicy\": 12561, \"SR\": 12562, \"\\u0120whis\": 12563, \"SU\": 12564, \"\\u0120investigated\": 12565, \"\\u0120photographs\": 12566, \"github\": 12567, \"\\u0120Beat\": 12568, \"\\u0120Ring\": 12569, \"ighed\": 12570, \"iar\": 12571, \"\\u0120evolved\": 12572, \"erald\": 12573, \"\\u0120dun\": 12574, \"\\u0120hub\": 12575, \"IAL\": 12576, \"\\u0120encouraging\": 12577, \"\\u0120Print\": 12578, \"\\u0120Days\": 12579, \"\\u0120prosecution\": 12580, \"\\u0120pants\": 12581, \"azy\": 12582, \"live\": 12583, \"\\u0120fossil\": 12584, \"\\u0120Ju\": 12585, \"\\u0120rocks\": 12586, \"udge\": 12587, \"\\u0120Race\": 12588, \"\\u0120greet\": 12589, \"bie\": 12590, \"\\u0120filling\": 12591, \"\\u0120Len\": 12592, \"\\u0120diabetes\": 12593, \"\\u0120firearms\": 12594, \"uming\": 12595, \"enezuel\": 12596, \"\\u0120BB\": 12597, \"\\u0120accepting\": 12598, \"ATH\": 12599, \"\\u0120resort\": 12600, \"\\u0120hunt\": 12601, \"rik\": 12602, \"ucker\": 12603, \"aments\": 12604, \"\\u0120sustained\": 12605, \"\\u0120crossed\": 12606, \"\\u0120breakfast\": 12607, \"\\u0120attributes\": 12608, \"lected\": 12609, \"atile\": 12610, \"\\u0120vibr\": 12611, \"\\u0120Kal\": 12612, \"arson\": 12613, \"oples\": 12614, \"\\u0120touched\": 12615, \"\\u0120damages\": 12616, \"\\u0120impressed\": 12617, \"rup\": 12618, \"\\u0120anch\": 12619, \"\\u0120Adams\": 12620, \"Hel\": 12621, \"\\u0120Victor\": 12622, \"\\u0120mounted\": 12623, \"\\u0120CC\": 12624, \"\\u0120delicious\": 12625, \"span\": 12626, \"ella\": 12627, \"\\u0120elabor\": 12628, \"amples\": 12629, \"\\u0120defic\": 12630, \"\\u0120constitu\": 12631, \"uates\": 12632, \"\\u0120Mission\": 12633, \"\\u0120Ther\": 12634, \"\\u0120Monster\": 12635, \"bes\": 12636, \"Reuters\": 12637, \"\\u0120Indones\": 12638, \"hill\": 12639, \"munition\": 12640, \"\\u0120confirmation\": 12641, \"\\u0120Consider\": 12642, \"acent\": 12643, \"\\u0120jet\": 12644, \"\\u0120Employ\": 12645, \"\\u0120GTX\": 12646, \"nan\": 12647, \"\\u0120Spider\": 12648, \"\\u0120processor\": 12649, \"\\u0120patri\": 12650, \"\\u0120Pentagon\": 12651, \"\\u0120Robinson\": 12652, \"\\u0120realistic\": 12653, \"\\u00c3\\u00b1\": 12654, \"\\u0120appearing\": 12655, \"\\u0120pipe\": 12656, \"omed\": 12657, \"\\u0120fru\": 12658, \"\\u0120awful\": 12659, \"\\u0120evaluation\": 12660, \"\\u0120intelligent\": 12661, \"\\u0120Citiz\": 12662, \"\\u0120fundra\": 12663, \"odium\": 12664, \"\\u0120tweets\": 12665, \"\\u0120worn\": 12666, \"pring\": 12667, \"\\u0120kidn\": 12668, \"\\u0120rebels\": 12669, \"\\u0120Kam\": 12670, \"\\u0120Netherlands\": 12671, \"\\u0120SW\": 12672, \"\\u0120acquisition\": 12673, \"\\u0120Male\": 12674, \"\\u00e3\\u0125\\u00aa\": 12675, \"ombies\": 12676, \"\\u0120tradem\": 12677, \"\\u0120Status\": 12678, \"Bre\": 12679, \"\\u0120THIS\": 12680, \"\\u0120adverse\": 12681, \"\\u0120NEW\": 12682, \"sign\": 12683, \"\\u0120organisation\": 12684, \"enc\": 12685, \"\\u0120Harper\": 12686, \"apor\": 12687, \"\\u0120Members\": 12688, \"\\u0120Peace\": 12689, \"\\u0120Airport\": 12690, \"\\u0120Others\": 12691, \"\\u0120scratch\": 12692, \"\\u0120Pil\": 12693, \"\\u0120sensor\": 12694, \"\\u0120adoption\": 12695, \"\\u0120Hotel\": 12696, \"\\u0120Drag\": 12697, \"\\u0120honestly\": 12698, \"\\u0120yard\": 12699, \"\\u0120Forces\": 12700, \"\\u0120patent\": 12701, \"\\u0120bass\": 12702, \"\\u0120quietly\": 12703, \"\\u0120breathing\": 12704, \"\\u0120pose\": 12705, \"iors\": 12706, \"\\u0120Jess\": 12707, \"static\": 12708, \"ITE\": 12709, \"Offic\": 12710, \"\\u0120jew\": 12711, \"wcs\": 12712, \"\\u0120140\": 12713, \"\\u0120preview\": 12714, \"ippi\": 12715, \"\\u0120unfortunately\": 12716, \"okemon\": 12717, \"\\u0120horn\": 12718, \"\\u0120reass\": 12719, \"\\u0120peer\": 12720, \"ocker\": 12721, \"\\u0120unto\": 12722, \"\\u0120Gray\": 12723, \"\\u0120cleaning\": 12724, \"\\u0120attracted\": 12725, \"2007\": 12726, \"Point\": 12727, \"kill\": 12728, \"\\u0120Agreement\": 12729, \"urches\": 12730, \"\\u0120horr\": 12731, \"\\u0120Mississ\": 12732, \"\\u0120worthy\": 12733, \"\\u0120flowers\": 12734, \"town\": 12735, \"dll\": 12736, \"\\u0120reactions\": 12737, \"\\u0120dece\": 12738, \"\\u0120indicating\": 12739, \"MD\": 12740, \"\\u0120preference\": 12741, \"\\u0120MVP\": 12742, \"essional\": 12743, \"\\u0120Target\": 12744, \"gence\": 12745, \"\\u0120Indians\": 12746, \"\\u0120misc\": 12747, \"\\u0120freely\": 12748, \"\\u0120muscles\": 12749, \"\\u0120lineup\": 12750, \"\\u0120impacts\": 12751, \"ousing\": 12752, \"omi\": 12753, \"acular\": 12754, \"\\u0120controlling\": 12755, \"agine\": 12756, \"cery\": 12757, \"hell\": 12758, \"\\u0120ranking\": 12759, \"\\u0120Nich\": 12760, \"\\u0120Ave\": 12761, \"128\": 12762, \"\\u0120highway\": 12763, \"\\u0120incons\": 12764, \"\\u0120binding\": 12765, \"\\u0120struggles\": 12766, \"\\u0120Pittsburgh\": 12767, \"\\u0120gray\": 12768, \"rin\": 12769, \"\\u0120comics\": 12770, \"\\u0120Sport\": 12771, \"\\u0120relatives\": 12772, \"\\u0120fright\": 12773, \"\\u0120probe\": 12774, \"\\u0120Portug\": 12775, \"\\u0120voc\": 12776, \"\\u0120tu\": 12777, \"\\u0120Corps\": 12778, \"\\u0120possibilities\": 12779, \"\\u0120qualify\": 12780, \"wcsstore\": 12781, \"\\u0120libraries\": 12782, \"\\u0120migrants\": 12783, \"\\u0120entries\": 12784, \"\\u0120consecutive\": 12785, \"vals\": 12786, \"\\u0120Chairman\": 12787, \"\\u0120hill\": 12788, \"IME\": 12789, \"\\u0120Gard\": 12790, \"\\u0120inequality\": 12791, \"fox\": 12792, \"\\u0120Save\": 12793, \"\\u0120cort\": 12794, \"claimed\": 12795, \"\\u0120traits\": 12796, \"\\u0120pour\": 12797, \"\\u0120missiles\": 12798, \"\\u0120essence\": 12799, \"\\u0120sends\": 12800, \"\\u0120alliance\": 12801, \"\\u0120wishes\": 12802, \"\\u0120Christopher\": 12803, \"Big\": 12804, \"NY\": 12805, \"\\u0120Jacob\": 12806, \"san\": 12807, \"urred\": 12808, \"\\u0120SO\": 12809, \"lly\": 12810, \"\\u0120advocate\": 12811, \"\\u0120Bond\": 12812, \"\\u0120\\\"/\": 12813, \"Using\": 12814, \"\\u0120districts\": 12815, \"\\u0120Gate\": 12816, \"\\u0120Bir\": 12817, \"ridge\": 12818, \"\\u0120Naz\": 12819, \"\\u0120Rs\": 12820, \"boards\": 12821, \"\\u0120Ga\": 12822, \"\\u0120Reagan\": 12823, \"\\u0120influenced\": 12824, \"1000\": 12825, \"apy\": 12826, \"\\u0120challenged\": 12827, \"\\u0120barg\": 12828, \"\\u0120faculty\": 12829, \"\\u0120Fif\": 12830, \"\\u0120acquire\": 12831, \"Ac\": 12832, \"\\u0120insect\": 12833, \"\\u0120instruments\": 12834, \"\\u0120leaf\": 12835, \"thodox\": 12836, \"Message\": 12837, \"\\u0120tale\": 12838, \"\\u0120thereby\": 12839, \"\\u0120trap\": 12840, \"\\u0120strongest\": 12841, \"\\u0120Military\": 12842, \"isible\": 12843, \"\\u01201984\": 12844, \"etheless\": 12845, \"\\u0120flexible\": 12846, \"\\u0120kills\": 12847, \"\\u0120finishing\": 12848, \"\\u0120Size\": 12849, \"\\u0120reduces\": 12850, \"\\u0120epid\": 12851, \"\\u0120orientation\": 12852, \"full\": 12853, \"\\u0120trace\": 12854, \"\\u0120laser\": 12855, \"\\u0120oppose\": 12856, \"\\u0120editing\": 12857, \"\\u0120momentum\": 12858, \"\\u00e4\\u00ba\": 12859, \"show\": 12860, \"VI\": 12861, \"\\u0120Lad\": 12862, \"\\u01201985\": 12863, \"\\u0120murdered\": 12864, \"900\": 12865, \"uther\": 12866, \"\\u0120probability\": 12867, \"\\u0120Poll\": 12868, \"\\u0120reluct\": 12869, \"\\u0120Chem\": 12870, \"\\u0120Montreal\": 12871, \"\\u0120adequate\": 12872, \"\\u0120Poland\": 12873, \"\\u0120Sheriff\": 12874, \"umph\": 12875, \"\\u0120ok\": 12876, \"\\u0120000\": 12877, \"\\u0120\\\"[\": 12878, \"\\u0120operators\": 12879, \"\\u0120Fer\": 12880, \"\\u0120modes\": 12881, \"\\u0120Eve\": 12882, \"\\u0120discipline\": 12883, \"NET\": 12884, \"Hand\": 12885, \"\\u0120oral\": 12886, \"\\u0120WE\": 12887, \"email\": 12888, \"JP\": 12889, \"\\u0120Palestinians\": 12890, \"\\u0120hence\": 12891, \"\\u0120Less\": 12892, \"\\u0120overl\": 12893, \"dig\": 12894, \"\\u0120intimid\": 12895, \"\\u0120Coal\": 12896, \"\\u0120ranging\": 12897, \"tha\": 12898, \"\\u0120distant\": 12899, \"\\u0120fib\": 12900, \"\\u0120Index\": 12901, \"\\u0120Wonder\": 12902, \"\\u0120Pel\": 12903, \"hattan\": 12904, \"\\u0120Hug\": 12905, \"\\u00c3\\u0139\": 12906, \"rait\": 12907, \"\\u0120wrapped\": 12908, \"\\u0120RPG\": 12909, \"\\u0120chemicals\": 12910, \"\\u0120Money\": 12911, \"\\u0120frozen\": 12912, \"\\u0120indirect\": 12913, \"\\u0120Against\": 12914, \"End\": 12915, \"\\u0120uncomfortable\": 12916, \"\\u0120Gallery\": 12917, \"\\u0120Posted\": 12918, \"\\u00d8\\u00a7\": 12919, \"onduct\": 12920, \"\\u0120consequence\": 12921, \"\\u0120bitter\": 12922, \"\\u01201987\": 12923, \"pop\": 12924, \"\\u0120countless\": 12925, \"\\u0120Alaska\": 12926, \"ffff\": 12927, \"\\u0120departure\": 12928, \"\\u0120refund\": 12929, \"\\u0120Ian\": 12930, \"iated\": 12931, \"\\u0120seeks\": 12932, \"\\u0120mechanics\": 12933, \"\\u0120jurisdiction\": 12934, \"lynn\": 12935, \"\\u0120alike\": 12936, \"\\u0120Hunt\": 12937, \"athon\": 12938, \"\\u0120resolved\": 12939, \"\\u0120cache\": 12940, \"\\u0120distinction\": 12941, \"direct\": 12942, \"\\u0120encount\": 12943, \"oub\": 12944, \"beat\": 12945, \"\\u0120Country\": 12946, \"search\": 12947, \"\\u0120continuous\": 12948, \"\\u0120modest\": 12949, \"\\u0120Rail\": 12950, \"thood\": 12951, \"130\": 12952, \"BUG\": 12953, \"\\u0120criminals\": 12954, \"\\u0120indication\": 12955, \"\\u0120encountered\": 12956, \"last\": 12957, \"\\u0120Wy\": 12958, \"\\u0120ideology\": 12959, \"\\u0120PDF\": 12960, \"security\": 12961, \"])\": 12962, \"\\u0120Jimmy\": 12963, \"\\u0120EN\": 12964, \"\\u0120hiring\": 12965, \"Tem\": 12966, \"\\u0120pig\": 12967, \"aunt\": 12968, \"\\u0120Crystal\": 12969, \"\\u0120penalties\": 12970, \"\\u0120capability\": 12971, \"\\u0120py\": 12972, \"\\u0120productive\": 12973, \"\\u0120balanced\": 12974, \"\\u0120GeForce\": 12975, \"click\": 12976, \"olitan\": 12977, \"ods\": 12978, \"\\u0120afterwards\": 12979, \"\\u0120playoffs\": 12980, \"\\u0120Gill\": 12981, \"User\": 12982, \"\\u0120backs\": 12983, \"pub\": 12984, \"tag\": 12985, \"\\u0120absurd\": 12986, \"piring\": 12987, \"\\u0120citing\": 12988, \"\\u0120trillion\": 12989, \"\\u0120obligation\": 12990, \"\\u0120maxim\": 12991, \"ahoo\": 12992, \"cf\": 12993, \"umi\": 12994, \"\\u0120Alpha\": 12995, \"\\u0120Nelson\": 12996, \"\\u0120pursuant\": 12997, \"initely\": 12998, \"\\u0120fract\": 12999, \"entry\": 13000, \"bery\": 13001, \"\\u0120Thor\": 13002, \"Added\": 13003, \"\\u0120DJ\": 13004, \"\\u0120Gene\": 13005, \"\\u0120awkward\": 13006, \"Stud\": 13007, \"\\u0120wallet\": 13008, \"\\u0120Divine\": 13009, \"arios\": 13010, \"\\u0120releasing\": 13011, \"\\u0120edited\": 13012, \"\\u0120accomplished\": 13013, \"Best\": 13014, \"\\u0120edges\": 13015, \"\\u0120planes\": 13016, \"\\u0120feeding\": 13017, \"\\\"},\\\"\": 13018, \"\\u0120disclosure\": 13019, \"\\u0120grain\": 13020, \"airy\": 13021, \"oons\": 13022, \"ernand\": 13023, \"VR\": 13024, \"\\u0120reasonably\": 13025, \"\\u0120drum\": 13026, \"\\u0120partial\": 13027, \"\\u0120graphic\": 13028, \"\\u0120unprecedented\": 13029, \"\\u0120advised\": 13030, \"Micro\": 13031, \"\\u0120Assad\": 13032, \"points\": 13033, \"scar\": 13034, \"\\u0120Zone\": 13035, \"ttes\": 13036, \"\\u0120700\": 13037, \"vo\": 13038, \"\\u0120Hamp\": 13039, \"\\u0120fixes\": 13040, \"\\u0120caution\": 13041, \"\\u0120strings\": 13042, \"\\u0120panels\": 13043, \"\\u0120leak\": 13044, \"\\u0120pricing\": 13045, \"rowth\": 13046, \"\\u0120Error\": 13047, \"\\u0120Saints\": 13048, \"fix\": 13049, \"\\u0120observations\": 13050, \"\\u0120Abs\": 13051, \"\\u0120suggestion\": 13052, \"\\u0120Ukrainian\": 13053, \"\\u0120barrier\": 13054, \"\\u0120painted\": 13055, \"Bet\": 13056, \"imir\": 13057, \"\\u0120Spect\": 13058, \"pot\": 13059, \"orneys\": 13060, \"\\u0120compound\": 13061, \"\\u0120bears\": 13062, \"\\u0120Rush\": 13063, \"\\u0120luxury\": 13064, \"Sum\": 13065, \"\\u0120orbit\": 13066, \"\\u0120Marc\": 13067, \"\\u0120exempt\": 13068, \"\\u0120Trail\": 13069, \"\\u0120MO\": 13070, \"\\u0120Hans\": 13071, \"\\u0120Weapon\": 13072, \"ocused\": 13073, \"uminum\": 13074, \"\\u0120Jerry\": 13075, \"\\u0120bust\": 13076, \"\\u0120AG\": 13077, \"\\u0120Wiki\": 13078, \"\\u0120endless\": 13079, \"\\u0120Vlad\": 13080, \"\\u0120Bah\": 13081, \"\\u0120Radeon\": 13082, \"keys\": 13083, \"\\u0120Survey\": 13084, \"\\u0120Viol\": 13085, \"define\": 13086, \"lean\": 13087, \"\\u0120commod\": 13088, \"\\u0120revenues\": 13089, \"\\u00c5\\u012f\": 13090, \"\\u0120furniture\": 13091, \"\\u0120casting\": 13092, \"\\u0120diplomatic\": 13093, \"\\u0120Players\": 13094, \"\\u0120Killed\": 13095, \"\\u0120modify\": 13096, \"\\u0120innovative\": 13097, \"\\u0120Abu\": 13098, \"nor\": 13099, \"\\u0120bonds\": 13100, \"\\u0120coaching\": 13101, \"Mer\": 13102, \"\\u0120modules\": 13103, \"\\u0120Patriots\": 13104, \"\\u0120enhanced\": 13105, \"\\u0120proceedings\": 13106, \"\\u0120teammates\": 13107, \"\\u0120128\": 13108, \"ardo\": 13109, \"\\u0120compromise\": 13110, \"\\u0120Much\": 13111, \"\\u0120flew\": 13112, \"\\u0120Edge\": 13113, \"\\u0120unnecessary\": 13114, \"\\u0120doctrine\": 13115, \"report\": 13116, \"\\u0120Orlando\": 13117, \"\\u0120Profile\": 13118, \"\\u0120playoff\": 13119, \"friendly\": 13120, \"\\u0120complain\": 13121, \"\\u0120MC\": 13122, \"\\u0120Opt\": 13123, \"\\u0120GB\": 13124, \"\\u0120beaten\": 13125, \"\\u0120golf\": 13126, \"\\u0120placement\": 13127, \"Bit\": 13128, \"\\u0120newsletter\": 13129, \"\\u01202019\": 13130, \"visor\": 13131, \"rawl\": 13132, \"\\u0120iPad\": 13133, \"\\u0120acted\": 13134, \"\\u0120juice\": 13135, \"\\u0120decks\": 13136, \"PN\": 13137, \"success\": 13138, \"\\u0120Half\": 13139, \"\\u0120deleted\": 13140, \"\\u0120secrets\": 13141, \"\\u0120asylum\": 13142, \"Mart\": 13143, \"\\u0120Activ\": 13144, \"\\u0120Guy\": 13145, \"\\u0120Ts\": 13146, \"\\u0120dys\": 13147, \"\\u0120assuming\": 13148, \"\\u0120mana\": 13149, \"\\u0120subur\": 13150, \"\\u0120125\": 13151, \"Media\": 13152, \"ARY\": 13153, \"ride\": 13154, \"cp\": 13155, \"\\u0120difficulties\": 13156, \"\\u0120collecting\": 13157, \"\\u0120bankrupt\": 13158, \"non\": 13159, \"\\u0120composed\": 13160, \"\\u0120volt\": 13161, \"\\u0120militants\": 13162, \"\\u0120>>>\": 13163, \"\\u0120Mormon\": 13164, \"tor\": 13165, \"\\u0120particles\": 13166, \"\\u0120Bart\": 13167, \"ryption\": 13168, \"\\u0120admin\": 13169, \"\\u0120squee\": 13170, \"VIDIA\": 13171, \"\\u0120creator\": 13172, \"iameter\": 13173, \"icular\": 13174, \"NBC\": 13175, \"\\u0120grabbed\": 13176, \"\\u0120nodd\": 13177, \"\\u0120rated\": 13178, \"\\u0120rotation\": 13179, \"\\u0120grasp\": 13180, \"\\u0120excessive\": 13181, \"\\u0120EC\": 13182, \"\\u0120Whit\": 13183, \"\\u0120inventory\": 13184, \"aults\": 13185, \"\\u0120FB\": 13186, \"\\u0120ecosystem\": 13187, \"\\u0120billions\": 13188, \"\\u0120venture\": 13189, \"named\": 13190, \"\\u0120defender\": 13191, \"oute\": 13192, \"Instead\": 13193, \"irable\": 13194, \"War\": 13195, \"\\u0120assumption\": 13196, \"\\u0120bite\": 13197, \"\\u0120earthqu\": 13198, \"tail\": 13199, \"space\": 13200, \"\\u0120gifts\": 13201, \"boys\": 13202, \"\\u0120inevitable\": 13203, \"\\u0120structural\": 13204, \"\\u0120beneficial\": 13205, \"\\u0120compelling\": 13206, \"hole\": 13207, \"ervation\": 13208, \"\\u0120coat\": 13209, \"oj\": 13210, \"incarn\": 13211, \"\\u0120Years\": 13212, \"\\u0120determining\": 13213, \"\\u0120rhetoric\": 13214, \"\\u0120boundaries\": 13215, \"\\u0120whites\": 13216, \"Ant\": 13217, \"addy\": 13218, \")-\": 13219, \"raham\": 13220, \"etermin\": 13221, \"\\u0120harvest\": 13222, \"\\u0120Conc\": 13223, \"\\u0120laptop\": 13224, \"\\u0120Match\": 13225, \"\\u0120enjoying\": 13226, \"cca\": 13227, \"ollar\": 13228, \"\\u0120trips\": 13229, \"\\u0120addiction\": 13230, \"\\u0120Sak\": 13231, \"\\u0120powered\": 13232, \"\\u0120cous\": 13233, \"\\u0120Russians\": 13234, \"iere\": 13235, \"\\u0120retrie\": 13236, \"quality\": 13237, \"\\u0120differ\": 13238, \"\\u0120kingdom\": 13239, \"\\u0120Laur\": 13240, \"\\u0120Capitol\": 13241, \"\\u0120conclusions\": 13242, \"\\u0120Altern\": 13243, \"\\u0120Nav\": 13244, \"\\u0120transparent\": 13245, \"BER\": 13246, \"Group\": 13247, \"\\u0120Complete\": 13248, \"\\u0120infer\": 13249, \"\\u0120intrig\": 13250, \"\\u0120insane\": 13251, \"RO\": 13252, \"ophob\": 13253, \"isen\": 13254, \"qual\": 13255, \"Michael\": 13256, \"\\u0120museum\": 13257, \"\\u0120Pope\": 13258, \"\\u0120reset\": 13259, \"rative\": 13260, \"five\": 13261, \"\\u0120aggreg\": 13262, \"ittees\": 13263, \"ository\": 13264, \"\\u0120carb\": 13265, \"\\u0120Record\": 13266, \"\\u0120decides\": 13267, \"\\u0120Fix\": 13268, \"\\u0120exceptions\": 13269, \"\\u0120Commissioner\": 13270, \"uns\": 13271, \"\\u0120Environmental\": 13272, \"\\u0120legendary\": 13273, \"istence\": 13274, \"\\u0120tunnel\": 13275, \"km\": 13276, \"\\u0120insult\": 13277, \"\\u0120troll\": 13278, \"\\u0120shake\": 13279, \"\\u0120detention\": 13280, \"ques\": 13281, \"\\u0120Chrome\": 13282, \"\\u0120Files\": 13283, \"\\u0120subt\": 13284, \"\\u0120prospects\": 13285, \"\\u0120prol\": 13286, \"render\": 13287, \"proof\": 13288, \"\\u0120performances\": 13289, \"Str\": 13290, \"\\u0120href\": 13291, \"ername\": 13292, \"\\u0120achievement\": 13293, \"\\u0120fut\": 13294, \"Full\": 13295, \"\\u0120Leban\": 13296, \"google\": 13297, \"\\u00e3\\u0125\\u012a\": 13298, \"ampa\": 13299, \"Maybe\": 13300, \"\\u0120projected\": 13301, \"\\u0120Emb\": 13302, \"\\u0120colleg\": 13303, \"\\u0120awards\": 13304, \"\\u0120\\u00e2\\u0136\": 13305, \"Gold\": 13306, \"\\u0120Blake\": 13307, \"\\u0120Raj\": 13308, \"ifting\": 13309, \"\\u0120pending\": 13310, \"\\u0120instinct\": 13311, \"\\u0120developments\": 13312, \"Connect\": 13313, \"\\u0120Mand\": 13314, \"\\u0120WITH\": 13315, \"\\u0120Philippines\": 13316, \"profile\": 13317, \"\\u0120altogether\": 13318, \"\\u0120Bund\": 13319, \"\\u0120TD\": 13320, \"oooo\": 13321, \"amped\": 13322, \"iph\": 13323, \"\\u0120steam\": 13324, \"\\u0120oldest\": 13325, \"\\u0120detection\": 13326, \"ulpt\": 13327, \"\\u0120\\u00e7\": 13328, \"\\u0120Wayne\": 13329, \"2006\": 13330, \"fa\": 13331, \"\\u0120circles\": 13332, \"\\u0120Fu\": 13333, \"\\u0120donors\": 13334, \"appropriate\": 13335, \"\\u0120Dakota\": 13336, \"jamin\": 13337, \"\\u0120motivated\": 13338, \"\\u0120purchases\": 13339, \"\\u0120Louisiana\": 13340, \"\\u0120Spl\": 13341, \"\\u0120globe\": 13342, \"\\u0120105\": 13343, \"zip\": 13344, \"call\": 13345, \"\\u0120departments\": 13346, \"\\u0120sustainable\": 13347, \"105\": 13348, \"\\u0120OP\": 13349, \"ifiers\": 13350, \"\\u0120prevented\": 13351, \"\\u0120incomp\": 13352, \"\\u0120Commander\": 13353, \"\\u0120dominated\": 13354, \"\\u0120\\u00c2\\u00bb\": 13355, \"\\u0120invested\": 13356, \"\\u0120complexity\": 13357, \"\\u0120incl\": 13358, \"\\u0120ensuring\": 13359, \"\\u0120realm\": 13360, \"ync\": 13361, \"\\u0120Independent\": 13362, \"rained\": 13363, \"\\u0120Jen\": 13364, \"\\u0120Flight\": 13365, \"\\u0120athe\": 13366, \"\\u0120speculation\": 13367, \"\\u0120TE\": 13368, \"ocate\": 13369, \"tic\": 13370, \"\\u0120plaint\": 13371, \"herry\": 13372, \"\\u0120toy\": 13373, \"\\u0120111\": 13374, \"\\u0120plates\": 13375, \"status\": 13376, \"\\u0120Isa\": 13377, \"\\u0120devoted\": 13378, \"Cop\": 13379, \"\\u0120ES\": 13380, \"255\": 13381, \"urrency\": 13382, \"Main\": 13383, \"\\u0120slaves\": 13384, \"\\u0120pepper\": 13385, \"\\u0120quotes\": 13386, \"\\u0120ceiling\": 13387, \"\\u0120Fish\": 13388, \"\\u0120transformation\": 13389, \"\\u0120fraction\": 13390, \"\\u0120advantages\": 13391, \"\\u0120toile\": 13392, \"\\u0120stunning\": 13393, \"\\u0120moist\": 13394, \"breaking\": 13395, \"si\": 13396, \"\\u0120Location\": 13397, \"\\u0120Medium\": 13398, \"\\u0120texts\": 13399, \"\\u0120ugly\": 13400, \"\\u0120bio\": 13401, \".\\u00e2\\u0122\\u0136\": 13402, \"\\u0120Based\": 13403, \"\\u0120trains\": 13404, \"\\u0120Wing\": 13405, \"\\u0120Ancient\": 13406, \"\\u0120Records\": 13407, \"\\u0120Hope\": 13408, \"Special\": 13409, \"adesh\": 13410, \"obi\": 13411, \"[/\": 13412, \"\\u0120temporarily\": 13413, \"Ver\": 13414, \"hu\": 13415, \"oser\": 13416, \"\\u0120overnight\": 13417, \"\\u0120mamm\": 13418, \"\\u0120Treasury\": 13419, \"\\u0120Venezuel\": 13420, \"\\u0120Mega\": 13421, \"\\u0120tar\": 13422, \"\\u0120expects\": 13423, \"black\": 13424, \"orph\": 13425, \"\\\\\\\\\\\\\\\\\": 13426, \"\\u0120acceptance\": 13427, \"\\u0120radar\": 13428, \"sis\": 13429, \"\\u0120junior\": 13430, \"\\u0120frames\": 13431, \"\\u0120observation\": 13432, \"acies\": 13433, \"Power\": 13434, \"\\u0120Advanced\": 13435, \"Mag\": 13436, \"ologically\": 13437, \"\\u0120Mechan\": 13438, \"\\u0120sentences\": 13439, \"\\u0120analysts\": 13440, \"aughters\": 13441, \"forcement\": 13442, \"\\u0120vague\": 13443, \"\\u0120clause\": 13444, \"\\u0120directors\": 13445, \"\\u0120evaluate\": 13446, \"\\u0120cabinet\": 13447, \"Matt\": 13448, \"\\u0120Classic\": 13449, \"Ang\": 13450, \"\\u0120cler\": 13451, \"\\u0120Buck\": 13452, \"\\u0120researcher\": 13453, \"\\u0120160\": 13454, \"\\u0120poorly\": 13455, \"\\u0120experiencing\": 13456, \"\\u0120Ped\": 13457, \"\\u0120Manhattan\": 13458, \"\\u0120freed\": 13459, \"\\u0120themes\": 13460, \"advant\": 13461, \"\\u0120nin\": 13462, \"\\u0120praise\": 13463, \"104\": 13464, \"\\u0120Libya\": 13465, \"best\": 13466, \"\\u0120trusted\": 13467, \"\\u0120cease\": 13468, \"\\u0120dign\": 13469, \"Direct\": 13470, \"\\u0120bombing\": 13471, \"\\u0120migration\": 13472, \"\\u0120Sciences\": 13473, \"\\u0120municipal\": 13474, \"\\u0120Average\": 13475, \"\\u0120glory\": 13476, \"\\u0120revealing\": 13477, \"\\u0120arena\": 13478, \"\\u0120uncertainty\": 13479, \"\\u0120battlefield\": 13480, \"iao\": 13481, \"God\": 13482, \"\\u0120cinem\": 13483, \"rape\": 13484, \"elle\": 13485, \"apons\": 13486, \"\\u0120listing\": 13487, \"\\u0120waited\": 13488, \"\\u0120spotted\": 13489, \"keley\": 13490, \"\\u0120Audio\": 13491, \"eor\": 13492, \"arding\": 13493, \"idding\": 13494, \"igma\": 13495, \"\\u0120Neg\": 13496, \"\\u0120lone\": 13497, \"\\u0120----\": 13498, \"exe\": 13499, \"deg\": 13500, \"\\u0120transf\": 13501, \"\\u0120wash\": 13502, \"\\u0120slavery\": 13503, \"\\u0120exploring\": 13504, \"\\u0120WW\": 13505, \"atson\": 13506, \"\\u0120encl\": 13507, \"lies\": 13508, \"\\u0120Creek\": 13509, \"\\u0120wooden\": 13510, \"Manager\": 13511, \"\\u0120Brand\": 13512, \"ummy\": 13513, \"\\u0120Arthur\": 13514, \"\\u0120bureaucr\": 13515, \"\\u0120blend\": 13516, \"arians\": 13517, \"Further\": 13518, \"\\u0120supposedly\": 13519, \"\\u0120winds\": 13520, \"\\u01201979\": 13521, \"\\u0120gravity\": 13522, \"\\u0120analyses\": 13523, \"\\u0120Travel\": 13524, \"\\u0120Veter\": 13525, \"\\u0120dumb\": 13526, \"\\u0120alternate\": 13527, \"gal\": 13528, \"\\u0120consumed\": 13529, \"\\u0120effectiveness\": 13530, \".''\": 13531, \"\\u0120paths\": 13532, \"onda\": 13533, \"LA\": 13534, \"\\u0120Strong\": 13535, \"\\u0120enables\": 13536, \"\\u0120escaped\": 13537, \"\\u0120\\\"\\\"\": 13538, \"\\u0120112\": 13539, \"\\u01201983\": 13540, \"\\u0120smiled\": 13541, \"\\u0120tendency\": 13542, \"Fire\": 13543, \"\\u0120pars\": 13544, \"\\u0120Roc\": 13545, \"\\u0120lake\": 13546, \"\\u0120fitness\": 13547, \"\\u0120Ath\": 13548, \"\\u0120Horn\": 13549, \"\\u0120hier\": 13550, \"\\u0120impose\": 13551, \"mother\": 13552, \"\\u0120pension\": 13553, \"icut\": 13554, \"borne\": 13555, \"iciary\": 13556, \"._\": 13557, \"\\u0120SU\": 13558, \"\\u0120polar\": 13559, \"isy\": 13560, \"engu\": 13561, \"itialized\": 13562, \"ATA\": 13563, \"write\": 13564, \"\\u0120exercises\": 13565, \"\\u0120Diamond\": 13566, \"otypes\": 13567, \"\\u0120harmful\": 13568, \"onz\": 13569, \"\\u0120printing\": 13570, \"story\": 13571, \"\\u0120expertise\": 13572, \"\\u0120Ger\": 13573, \"\\u0120tragedy\": 13574, \"\\u0120Fly\": 13575, \"\\u0120divid\": 13576, \"ampire\": 13577, \"stock\": 13578, \"Mem\": 13579, \"\\u0120reign\": 13580, \"\\u0120unve\": 13581, \"\\u0120amend\": 13582, \"\\u0120Prophet\": 13583, \"\\u0120mutual\": 13584, \"\\u0120Fac\": 13585, \"\\u0120replacing\": 13586, \"Har\": 13587, \"\\u0120Circuit\": 13588, \"\\u0120throat\": 13589, \"\\u0120Shot\": 13590, \"\\u0120batteries\": 13591, \"\\u0120toll\": 13592, \"\\u0120addressing\": 13593, \"\\u0120Medicaid\": 13594, \"\\u0120pupp\": 13595, \"\\u0120Nar\": 13596, \"olk\": 13597, \"\\u0120equity\": 13598, \"MR\": 13599, \"\\u0120Hispan\": 13600, \"\\u0120Large\": 13601, \"mid\": 13602, \"Dev\": 13603, \"\\u0120exped\": 13604, \"\\u0120demo\": 13605, \"\\u0120Marshall\": 13606, \"ergus\": 13607, \"\\u0120fiber\": 13608, \"\\u0120divorce\": 13609, \"\\u0120Create\": 13610, \"\\u0120slower\": 13611, \"\\u0120Parker\": 13612, \"\\u0120Student\": 13613, \"\\u0120Training\": 13614, \"Return\": 13615, \"\\u0120Tru\": 13616, \"\\u0120cub\": 13617, \"\\u0120Reached\": 13618, \"\\u0120panic\": 13619, \"\\u0120quarters\": 13620, \"\\u0120rect\": 13621, \"\\u0120treating\": 13622, \"\\u0120rats\": 13623, \"\\u0120Christianity\": 13624, \"oler\": 13625, \"\\u0120sacred\": 13626, \"\\u0120declare\": 13627, \"ulative\": 13628, \"eting\": 13629, \"\\u0120delivering\": 13630, \"estone\": 13631, \"\\u0120tel\": 13632, \"\\u0120Larry\": 13633, \"\\u0120meta\": 13634, \"accept\": 13635, \"artz\": 13636, \"\\u0120Roger\": 13637, \"handed\": 13638, \"\\u0120header\": 13639, \"\\u0120trapped\": 13640, \"\\u0120Century\": 13641, \"\\u0120knocked\": 13642, \"\\u0120Oxford\": 13643, \"\\u0120survivors\": 13644, \"bot\": 13645, \"\\u0120demonstration\": 13646, \"\\u0120dirt\": 13647, \"\\u0120assists\": 13648, \"OME\": 13649, \"\\u0120Draft\": 13650, \"ortunate\": 13651, \"folio\": 13652, \"pered\": 13653, \"usters\": 13654, \"gt\": 13655, \"\\u0120Lock\": 13656, \"\\u0120judicial\": 13657, \"verted\": 13658, \"\\u0120secured\": 13659, \"outing\": 13660, \"\\u0120Books\": 13661, \"\\u0120hosting\": 13662, \"\\u0120lifted\": 13663, \"length\": 13664, \"\\u0120jer\": 13665, \"\\u0120wheels\": 13666, \"\\u0120Range\": 13667, \"umbnails\": 13668, \"\\u0120diagnosis\": 13669, \"tech\": 13670, \"\\u0120Stewart\": 13671, \"\\u0120Pract\": 13672, \"\\u0120nationwide\": 13673, \"\\u0120dear\": 13674, \"\\u0120obligations\": 13675, \"\\u0120grows\": 13676, \"\\u0120mandatory\": 13677, \"\\u0120suspicious\": 13678, \"!'\": 13679, \"Apr\": 13680, \"Great\": 13681, \"\\u0120mortgage\": 13682, \"\\u0120prosecutor\": 13683, \"\\u0120editorial\": 13684, \"\\u0120Kr\": 13685, \"\\u0120processed\": 13686, \"ungle\": 13687, \"\\u0120flexibility\": 13688, \"Earlier\": 13689, \"\\u0120Cart\": 13690, \"\\u0120Sug\": 13691, \"\\u0120focuses\": 13692, \"\\u0120startup\": 13693, \"\\u0120breach\": 13694, \"\\u0120Tob\": 13695, \"cycle\": 13696, \"\\u00e3\\u0122\\u012e\": 13697, \"rose\": 13698, \"\\u0120bizarre\": 13699, \"\\u00e3\\u0122\\u012f\": 13700, \"\\u0120vegetables\": 13701, \"$$\": 13702, \"\\u0120retreat\": 13703, \"oshi\": 13704, \"\\u0120Shop\": 13705, \"\\u0120Ground\": 13706, \"\\u0120Stop\": 13707, \"\\u0120Hawaii\": 13708, \"\\u0120Ay\": 13709, \"Perhaps\": 13710, \"\\u0120Beaut\": 13711, \"uffer\": 13712, \"enna\": 13713, \"\\u0120productivity\": 13714, \"Fixed\": 13715, \"control\": 13716, \"\\u0120absent\": 13717, \"\\u0120Campaign\": 13718, \"Green\": 13719, \"\\u0120identifying\": 13720, \"\\u0120regret\": 13721, \"\\u0120promoted\": 13722, \"\\u0120Seven\": 13723, \"\\u0120eru\": 13724, \"neath\": 13725, \"aughed\": 13726, \"\\u0120Pin\": 13727, \"\\u0120Living\": 13728, \"Cost\": 13729, \"omatic\": 13730, \"mega\": 13731, \"\\u0120Nig\": 13732, \"ocy\": 13733, \"\\u0120inbox\": 13734, \"\\u0120empire\": 13735, \"\\u0120horizont\": 13736, \"\\u0120branches\": 13737, \"\\u0120metaph\": 13738, \"Active\": 13739, \"edi\": 13740, \"\\u0120Film\": 13741, \"\\u0120Something\": 13742, \"\\u0120mods\": 13743, \"incial\": 13744, \"\\u0120Original\": 13745, \"Gen\": 13746, \"\\u0120spirits\": 13747, \"\\u0120earning\": 13748, \"Hist\": 13749, \"\\u0120riders\": 13750, \"\\u0120sacrific\": 13751, \"MT\": 13752, \"\\u0120VA\": 13753, \"\\u0120Salt\": 13754, \"\\u0120occupation\": 13755, \"\\u0120Mi\": 13756, \"\\u0120disg\": 13757, \"lict\": 13758, \"\\u0120nit\": 13759, \"\\u0120nodes\": 13760, \"eem\": 13761, \"\\u0120Pier\": 13762, \"\\u0120hatred\": 13763, \"psy\": 13764, \"\\u00e3\\u0125\\u012b\": 13765, \"\\u0120theater\": 13766, \"\\u0120sophisticated\": 13767, \"\\u0120defended\": 13768, \"\\u0120besides\": 13769, \"\\u0120thoroughly\": 13770, \"\\u0120Medicare\": 13771, \"\\u0120blamed\": 13772, \"arently\": 13773, \"\\u0120crying\": 13774, \"FOR\": 13775, \"priv\": 13776, \"\\u0120singing\": 13777, \"\\u0120Il\": 13778, \"\\u0120cute\": 13779, \"oided\": 13780, \"olitical\": 13781, \"\\u0120Neuro\": 13782, \"\\u00e5\\u00a4\": 13783, \"\\u0120donation\": 13784, \"\\u0120Eagles\": 13785, \"\\u0120Give\": 13786, \"Tom\": 13787, \"\\u0120substantially\": 13788, \"\\u0120License\": 13789, \"\\u0120Ja\": 13790, \"\\u0120grey\": 13791, \"\\u0120Animal\": 13792, \"\\u0120ER\": 13793, \"\\u0120Und\": 13794, \"\\u0120keen\": 13795, \"\\u0120conclude\": 13796, \"\\u0120Mississippi\": 13797, \"Engine\": 13798, \"\\u0120Studios\": 13799, \"Press\": 13800, \"overs\": 13801, \"llers\": 13802, \"\\u0120350\": 13803, \"\\u0120Rangers\": 13804, \"\\u0120rou\": 13805, \"erto\": 13806, \"Ep\": 13807, \"issa\": 13808, \"ivan\": 13809, \"\\u0120seal\": 13810, \"\\u0120Regist\": 13811, \"display\": 13812, \"\\u0120weaken\": 13813, \"uum\": 13814, \"\\u0120Commons\": 13815, \"\\u0120Say\": 13816, \"\\u0120cultures\": 13817, \"\\u0120laughed\": 13818, \"\\u0120slip\": 13819, \"\\u0120treatments\": 13820, \"izable\": 13821, \"mart\": 13822, \"\\u0120Rice\": 13823, \"\\u0120beast\": 13824, \"\\u0120obesity\": 13825, \"\\u0120Laure\": 13826, \"iga\": 13827, \"Which\": 13828, \"holder\": 13829, \"\\u0120elderly\": 13830, \"\\u0120pays\": 13831, \"\\u0120complained\": 13832, \"\\u0120crop\": 13833, \"\\u0120proc\": 13834, \"\\u0120explosive\": 13835, \"\\u0120Fan\": 13836, \"\\u0120Arsenal\": 13837, \"Author\": 13838, \"eful\": 13839, \"\\u0120meals\": 13840, \"\\u0120(-\": 13841, \"idays\": 13842, \"\\u0120imagination\": 13843, \"\\u0120annually\": 13844, \"\\u0120ms\": 13845, \"asures\": 13846, \"Head\": 13847, \"ikh\": 13848, \"matic\": 13849, \"\\u0120boyfriend\": 13850, \"\\u0120Computer\": 13851, \"\\u0120bump\": 13852, \"\\u0120surge\": 13853, \"\\u0120Craig\": 13854, \"\\u0120Kirk\": 13855, \"Del\": 13856, \"mediate\": 13857, \"\\u0120scenarios\": 13858, \"\\u0120Mut\": 13859, \"\\u0120Stream\": 13860, \"\\u0120competitors\": 13861, \"\\u00d9\\u0126\": 13862, \"\\u0120Stanford\": 13863, \"\\u0120Resources\": 13864, \"azed\": 13865, \"bage\": 13866, \"\\u0120organis\": 13867, \"\\u0120Release\": 13868, \"\\u0120separately\": 13869, \"\\u0120habits\": 13870, \"\\u0120measurements\": 13871, \"\\u0120Close\": 13872, \"\\u0120accompany\": 13873, \"\\u0120gly\": 13874, \"\\u0120tang\": 13875, \"\\u0120Rou\": 13876, \"\\u0120plugin\": 13877, \"\\u0120convey\": 13878, \"\\u0120Challenge\": 13879, \"oots\": 13880, \"jan\": 13881, \"\\u0120curs\": 13882, \"\\u0120Relations\": 13883, \"keeper\": 13884, \"\\u0120approaching\": 13885, \"ping\": 13886, \"Speaking\": 13887, \"\\u0120arrangement\": 13888, \"\\u0120VI\": 13889, \"arettes\": 13890, \"\\u0120affecting\": 13891, \"\\u0120permits\": 13892, \"because\": 13893, \"\\u0120useless\": 13894, \"\\u0120Hus\": 13895, \"!!!!\": 13896, \"\\u0120destroying\": 13897, \"Unfortunately\": 13898, \"\\u0120fascinating\": 13899, \"Sem\": 13900, \"\\u0120electoral\": 13901, \"\\u0120transparency\": 13902, \"\\u0120Chaos\": 13903, \"\\u0120volunteer\": 13904, \"\\u0120statistical\": 13905, \"\\u0120activated\": 13906, \"rox\": 13907, \"Web\": 13908, \"HE\": 13909, \"\\u0120Hampshire\": 13910, \"isive\": 13911, \"Map\": 13912, \"\\u0120trash\": 13913, \"\\u0120Lawrence\": 13914, \"stick\": 13915, \"Cr\": 13916, \"\\u0120rings\": 13917, \"EXT\": 13918, \"\\u0120operational\": 13919, \"opes\": 13920, \"Does\": 13921, \"\\u0120Evans\": 13922, \"\\u0120witnessed\": 13923, \"Port\": 13924, \"\\u0120launching\": 13925, \"econom\": 13926, \"wear\": 13927, \"\\u0120Particip\": 13928, \"umm\": 13929, \"cules\": 13930, \"\\u0120RAM\": 13931, \"\\u0120Tun\": 13932, \"\\u0120assured\": 13933, \"\\u0120binary\": 13934, \"\\u0120betray\": 13935, \"\\u0120exploration\": 13936, \"\\u0120Fel\": 13937, \"\\u0120admission\": 13938, \"itated\": 13939, \"Sy\": 13940, \"\\u0120avoided\": 13941, \"\\u0120Simulator\": 13942, \"\\u0120celebrated\": 13943, \"\\u0120Electric\": 13944, \"\\u00a5\\u0140\": 13945, \"\\u0120cluster\": 13946, \"itzerland\": 13947, \"health\": 13948, \"Line\": 13949, \"\\u0120Nash\": 13950, \"aton\": 13951, \"\\u0120spare\": 13952, \"\\u0120enterprise\": 13953, \"\\u0120DIS\": 13954, \"cludes\": 13955, \"\\u0120flights\": 13956, \"\\u0120regards\": 13957, \"\\u0120\\u00c3\\u0139\": 13958, \"half\": 13959, \"\\u0120trucks\": 13960, \"\\u0120contacts\": 13961, \"\\u0120uncons\": 13962, \"\\u0120Climate\": 13963, \"\\u0120immense\": 13964, \"NEW\": 13965, \"occ\": 13966, \"ective\": 13967, \"\\u0120embod\": 13968, \"\\u0120patrol\": 13969, \"\\u0120beside\": 13970, \"\\u0120viable\": 13971, \"\\u0120creep\": 13972, \"\\u0120triggered\": 13973, \"verning\": 13974, \"\\u0120comparable\": 13975, \"ql\": 13976, \"\\u0120gaining\": 13977, \"asses\": 13978, \"\\u0120();\": 13979, \"\\u0120Grey\": 13980, \"\\u0120MLS\": 13981, \"sized\": 13982, \"\\u0120prosper\": 13983, \"\\\"?\": 13984, \"\\u0120polling\": 13985, \"\\u0120shar\": 13986, \"\\u0120RC\": 13987, \"\\u0120firearm\": 13988, \"orient\": 13989, \"\\u0120fence\": 13990, \"\\u0120variations\": 13991, \"giving\": 13992, \"\\u0120Pi\": 13993, \"ospel\": 13994, \"\\u0120pledge\": 13995, \"\\u0120cure\": 13996, \"\\u0120spy\": 13997, \"\\u0120violated\": 13998, \"\\u0120rushed\": 13999, \"\\u0120stroke\": 14000, \"\\u0120Blog\": 14001, \"sels\": 14002, \"\\u0120Ec\": 14003, \",''\": 14004, \"\\u0120pale\": 14005, \"\\u0120Collins\": 14006, \"terror\": 14007, \"\\u0120Canadians\": 14008, \"\\u0120tune\": 14009, \"\\u0120laboratory\": 14010, \"\\u0120nons\": 14011, \"tarian\": 14012, \"\\u0120disability\": 14013, \"\\u0120Gam\": 14014, \"\\u0120singer\": 14015, \"alg\": 14016, \"\\u0120Senior\": 14017, \"\\u0120traded\": 14018, \"\\u0120Warrior\": 14019, \"\\u0120infring\": 14020, \"\\u0120Franklin\": 14021, \"\\u0120strain\": 14022, \"\\u0120Swedish\": 14023, \"\\u0120seventh\": 14024, \"\\u0120Benn\": 14025, \"\\u0120Tell\": 14026, \"\\u0120syndrome\": 14027, \"\\u0120wondered\": 14028, \"iden\": 14029, \"++++\": 14030, \"igo\": 14031, \"\\u0120purple\": 14032, \"\\u0120journalism\": 14033, \"\\u0120rebel\": 14034, \"\\u0120fu\": 14035, \"blog\": 14036, \"\\u0120invite\": 14037, \"rencies\": 14038, \"\\u0120Contact\": 14039, \"Israel\": 14040, \"\\u0120Content\": 14041, \"\\u0120cheer\": 14042, \"\\u0120bedroom\": 14043, \"\\u0120Engineering\": 14044, \"\\u0120Queens\": 14045, \"\\u0120dwell\": 14046, \"\\u0120PlayStation\": 14047, \"\\u0120Dim\": 14048, \"\\u0120Colon\": 14049, \"lr\": 14050, \"\\u0120operates\": 14051, \"\\u0120motivation\": 14052, \"USA\": 14053, \"astered\": 14054, \"Core\": 14055, \"\\u0120Truth\": 14056, \"olo\": 14057, \"OSE\": 14058, \"\\u0120Memory\": 14059, \"\\u0120predec\": 14060, \"\\u0120anarch\": 14061, \"\\u01201920\": 14062, \"\\u0120Yam\": 14063, \"\\u00c3\\u00a8\": 14064, \"bid\": 14065, \"\\u0120grateful\": 14066, \"\\u0120excitement\": 14067, \"\\u0120treasure\": 14068, \"\\u0120longest\": 14069, \"ctive\": 14070, \"\\u0120deserves\": 14071, \"\\u0120reserves\": 14072, \"\\u0120cops\": 14073, \"\\u0120Ottawa\": 14074, \"\\u0120Egyptian\": 14075, \"anked\": 14076, \"\\u0120artif\": 14077, \"\\u0120hypothesis\": 14078, \":/\": 14079, \"\\u0120purchasing\": 14080, \"\\u0120lovely\": 14081, \"HP\": 14082, \"\\u0120divide\": 14083, \"\\u0120strictly\": 14084, \"\\u0120questioning\": 14085, \"\\u0120taxpayers\": 14086, \"\\u0120Joy\": 14087, \"\\u0120rolls\": 14088, \"\\u0120Heavy\": 14089, \"\\u0120ports\": 14090, \"\\u0120magnetic\": 14091, \"\\u0120inflamm\": 14092, \"\\u0120brush\": 14093, \"tics\": 14094, \"\\u00e2\\u012a\\u0134\": 14095, \"\\u0120bottles\": 14096, \"ppy\": 14097, \"\\u0120padd\": 14098, \"\\u00e3\\u0124\\u00af\": 14099, \"million\": 14100, \"\\u0120devastating\": 14101, \"\\u0120compiled\": 14102, \"\\u0120medication\": 14103, \"\\u0120twelve\": 14104, \"\\u0120Perry\": 14105, \"Space\": 14106, \"imb\": 14107, \"your\": 14108, \"\\u0120leaked\": 14109, \"\\u0120Tar\": 14110, \"\\u0120unity\": 14111, \"\\u0120infected\": 14112, \"\\u0120traveled\": 14113, \"IDE\": 14114, \"\\u0120McDonald\": 14115, \"txt\": 14116, \"\\u0120Princ\": 14117, \"\\u0120interven\": 14118, \"\\u0120Taiwan\": 14119, \"\\u0120Pow\": 14120, \"\\u0120bearing\": 14121, \"\\u0120Thread\": 14122, \"\\u0120zones\": 14123, \"izards\": 14124, \"unks\": 14125, \"Chapter\": 14126, \"llor\": 14127, \"\\u0120\\u00c2\\u00b7\": 14128, \"\\u0120wounds\": 14129, \"\\u0120discretion\": 14130, \"\\u0120succeeded\": 14131, \"iking\": 14132, \"\\u0120iconic\": 14133, \"Call\": 14134, \"\\u0120screening\": 14135, \"\\u0120Mis\": 14136, \"icts\": 14137, \"\\u0120ministers\": 14138, \"\\u0120separation\": 14139, \"Player\": 14140, \"\\u0120bip\": 14141, \"\\u0120beloved\": 14142, \"\\u0120counting\": 14143, \"\\u0120Eye\": 14144, \"around\": 14145, \"inging\": 14146, \"\\u0120tablet\": 14147, \"\\u0120offence\": 14148, \"inance\": 14149, \"have\": 14150, \"\\u0120Info\": 14151, \"\\u0120Ninja\": 14152, \"\\u0120protective\": 14153, \"\\u0120Cass\": 14154, \"Mac\": 14155, \"\\u0120Quality\": 14156, \"North\": 14157, \"\\u0120ic\": 14158, \"\\u0120Cuba\": 14159, \"\\u0120Chronicle\": 14160, \"\\u0120Property\": 14161, \"\\u0120fastest\": 14162, \"otos\": 14163, \"\\u0120Germ\": 14164, \"OWN\": 14165, \"\\u0120boom\": 14166, \"\\u0120Stanley\": 14167, \"erguson\": 14168, \"\\u0120clever\": 14169, \"\\u0120enters\": 14170, \"mode\": 14171, \"terior\": 14172, \"\\u0120Sens\": 14173, \"\\u0120linear\": 14174, \"ARK\": 14175, \"\\u0120comparing\": 14176, \"\\u0120purely\": 14177, \"\\u0120safer\": 14178, \"\\u0120Potter\": 14179, \"\\u0120cups\": 14180, \"RT\": 14181, \"\\u0120gluc\": 14182, \"\\u0120attributed\": 14183, \"\\u0120dupl\": 14184, \"\\u0120Pap\": 14185, \"\\u0120precious\": 14186, \"\\u0120pa\": 14187, \"ictionary\": 14188, \"\\u0120Tig\": 14189, \"\\u0120Too\": 14190, \"olutions\": 14191, \"stan\": 14192, \"\\u0120robots\": 14193, \"\\u0120lobb\": 14194, \"\\u0120statute\": 14195, \"\\u0120prevention\": 14196, \"western\": 14197, \"160\": 14198, \"\\u0120Active\": 14199, \"\\u0120Maria\": 14200, \"hal\": 14201, \"None\": 14202, \"ellar\": 14203, \"\\u0120KB\": 14204, \"\\u0120Partners\": 14205, \"\\u0120Single\": 14206, \"\\u0120Following\": 14207, \"ango\": 14208, \"acious\": 14209, \"\\u0120thou\": 14210, \"\\u0120kg\": 14211, \"\\u0120influential\": 14212, \"\\u0120Friends\": 14213, \"Sur\": 14214, \"ainted\": 14215, \"\\u0120forums\": 14216, \"\\u0120starter\": 14217, \"\\u0120citizenship\": 14218, \"\\u0120Election\": 14219, \"onge\": 14220, \"otation\": 14221, \"osph\": 14222, \";;;;\": 14223, \"utical\": 14224, \"pur\": 14225, \"eren\": 14226, \"\\u0120accusations\": 14227, \"bitious\": 14228, \"abbit\": 14229, \"\\u0120Ord\": 14230, \"Posted\": 14231, \"irk\": 14232, \"\\u0120sensitivity\": 14233, \"iche\": 14234, \"\\u0120Amy\": 14235, \"\\u0120Fab\": 14236, \"\\u0120summit\": 14237, \"\\u0120pedest\": 14238, \"\\u0120rubber\": 14239, \"\\u0120agricultural\": 14240, \"\\u0120cancel\": 14241, \"AE\": 14242, \"\\u0120inaug\": 14243, \"\\u0120contam\": 14244, \"\\u0120firmly\": 14245, \"iw\": 14246, \"stage\": 14247, \"\\u0120Kan\": 14248, \"\\u0120tier\": 14249, \"\\u0120invention\": 14250, \"\\u0120translated\": 14251, \"\\u0120Rules\": 14252, \"Box\": 14253, \"Twitter\": 14254, \"IDS\": 14255, \"\\u0120pizza\": 14256, \"\\u0120debug\": 14257, \"\\u0120Drop\": 14258, \"vs\": 14259, \"\\u0120horses\": 14260, \"big\": 14261, \"\\u0120boring\": 14262, \"\\u0120hood\": 14263, \"\\u0120McCain\": 14264, \"atched\": 14265, \"\\u0120Bros\": 14266, \"\\u0120skip\": 14267, \"\\u0120essay\": 14268, \"stat\": 14269, \"\\u0120Legends\": 14270, \"\\u0120ammunition\": 14271, \"auc\": 14272, \"\\u0120shooter\": 14273, \"\\u0120unh\": 14274, \"\\u0120supplied\": 14275, \"\\u0120generic\": 14276, \"\\u0120SK\": 14277, \"iban\": 14278, \"yrics\": 14279, \"\\u0120255\": 14280, \"\\u0120climbing\": 14281, \"Former\": 14282, \"\\u0120flip\": 14283, \"\\u0120jumping\": 14284, \"\\u0120frustration\": 14285, \"\\u0120Terry\": 14286, \"\\u0120neighborhoods\": 14287, \"\\u0120median\": 14288, \"bean\": 14289, \"\\u0120brains\": 14290, \"Following\": 14291, \"\\u0120shaped\": 14292, \"\\u0120draws\": 14293, \"\\u0120altered\": 14294, \"Jack\": 14295, \"\\u0120recipes\": 14296, \"\\u0120skilled\": 14297, \"wealth\": 14298, \"achi\": 14299, \"election\": 14300, \"\\u0120behaviors\": 14301, \"deals\": 14302, \"\\u0120Until\": 14303, \"Fe\": 14304, \"\\u0120declaration\": 14305, \"marks\": 14306, \"\\u0120Between\": 14307, \"celona\": 14308, \"\\u0120reson\": 14309, \"\\u0120bubble\": 14310, \"Among\": 14311, \"\\u0120imperial\": 14312, \"GS\": 14313, \"\\u0120feminist\": 14314, \"2005\": 14315, \"\\u0120Kyle\": 14316, \"\\u0120accounting\": 14317, \"\\u0120Tele\": 14318, \"\\u0120Tyr\": 14319, \"\\u0120connecting\": 14320, \"\\u0120rehab\": 14321, \"\\u0120Pred\": 14322, \"sim\": 14323, \"\\u0120meantime\": 14324, \"\\u0120physician\": 14325, \"MW\": 14326, \"\\u0120Campbell\": 14327, \"\\u0120Brandon\": 14328, \"\\u0120contributing\": 14329, \"\\u0120Rule\": 14330, \"\\u0120Weight\": 14331, \"\\u0120Nap\": 14332, \"\\u0120interactive\": 14333, \"\\u0120vag\": 14334, \"\\u0120helmet\": 14335, \"\\u0120Comb\": 14336, \"four\": 14337, \"\\u0120shipped\": 14338, \"\\u0120completing\": 14339, \"\\u0120PD\": 14340, \"PDATE\": 14341, \"\\u0120spreading\": 14342, \"\\u0120scary\": 14343, \"erving\": 14344, \"\\u0120Gas\": 14345, \"\\u0120frank\": 14346, \"school\": 14347, \"\\u0120romantic\": 14348, \"\\u0120stabil\": 14349, \"Rob\": 14350, \"\\u0120accurately\": 14351, \"\\u0120acute\": 14352, \"\\u0120Hann\": 14353, \"\\u0120symbols\": 14354, \"\\u0120civilization\": 14355, \"\\u0120AW\": 14356, \"\\u0120lightning\": 14357, \"\\u0120considers\": 14358, \"\\u0120venue\": 14359, \"\\u0120\\u00d7\": 14360, \"\\u0120oven\": 14361, \"\\u0120SF\": 14362, \"his\": 14363, \"\\u0120nu\": 14364, \"\\u0120Learn\": 14365, \"\\u0120peoples\": 14366, \"\\u0120std\": 14367, \"\\u0120slee\": 14368, \"\\u0120slic\": 14369, \"\\u0120Statistics\": 14370, \"\\u0120corners\": 14371, \"\\u0120Baker\": 14372, \"\\u0120:)\": 14373, \"mentation\": 14374, \"olver\": 14375, \"\\u0120laughing\": 14376, \"\\u0120Todd\": 14377, \"onde\": 14378, \"\\u0120Hills\": 14379, \"\\u0120nuts\": 14380, \"\\u0120Woman\": 14381, \"plane\": 14382, \"\\u0120liver\": 14383, \"\\u0120Inside\": 14384, \"Sorry\": 14385, \"\\u0120agrees\": 14386, \"\\u0120fundament\": 14387, \"\\u0120Fisher\": 14388, \"\\u0120auction\": 14389, \"\\u0120threads\": 14390, \"glas\": 14391, \"\\u0120Basic\": 14392, \"\\u0120Nat\": 14393, \"\\u0120lacking\": 14394, \"\\u0120celebration\": 14395, \"ju\": 14396, \"\\u0120silly\": 14397, \"Euro\": 14398, \"\\u0120tatt\": 14399, \"ighty\": 14400, \"controlled\": 14401, \"Test\": 14402, \"\\u0120Singh\": 14403, \"\\u0120rage\": 14404, \"\\u0120rhyth\": 14405, \"offic\": 14406, \"\\u0120Phantom\": 14407, \"\\u0120headlines\": 14408, \"\\u0120responding\": 14409, \"\\u0120Morning\": 14410, \"\\u0120vitamin\": 14411, \"\\u0120boots\": 14412, \"\\u0120Site\": 14413, \"alin\": 14414, \"pi\": 14415, \"\\u0120viral\": 14416, \"\\u0120UC\": 14417, \"DER\": 14418, \"\\u0120Sex\": 14419, \"\\u0120stocks\": 14420, \"current\": 14421, \"\\u0120churches\": 14422, \"\\u0120Rare\": 14423, \"\\u0120Murphy\": 14424, \"\\u0120denial\": 14425, \"\\u0120Gaming\": 14426, \"\\u0120toug\": 14427, \"\\u0120nick\": 14428, \"\\u0120makers\": 14429, \"\\u0120Ronald\": 14430, \"\\u0120generous\": 14431, \"\\u0120Doc\": 14432, \"\\u0120Morris\": 14433, \"\\u0120transformed\": 14434, \"\\u0120Normal\": 14435, \"\\u0120104\": 14436, \"\\u0120Kickstarter\": 14437, \"\\u0120Upon\": 14438, \"Online\": 14439, \"\\u0120IRS\": 14440, \"\\u0120wrap\": 14441, \"\\u0120loving\": 14442, \"\\u0120arrives\": 14443, \"\\u0120Due\": 14444, \"\\u0120heter\": 14445, \"\\u0120Made\": 14446, \"\\u0120rental\": 14447, \"\\u0120belongs\": 14448, \"\\u0120attorneys\": 14449, \"\\u0120crops\": 14450, \"\\u0120matched\": 14451, \"ulum\": 14452, \"oline\": 14453, \"109\": 14454, \"\\u0120dispar\": 14455, \"\\u0120buyers\": 14456, \"\\u0120Cambridge\": 14457, \"\\u0120ethics\": 14458, \"roups\": 14459, \"\\u0120justified\": 14460, \"\\u0120marginal\": 14461, \"\\u0120respected\": 14462, \"winning\": 14463, \"\\u0120nodded\": 14464, \"\\u0120Serge\": 14465, \"\\u0120Former\": 14466, \"Craft\": 14467, \"################\": 14468, \"\\u0120Warner\": 14469, \"\\u0120dash\": 14470, \"ete\": 14471, \"\\u0120entert\": 14472, \"\\u0120Escape\": 14473, \"outheast\": 14474, \"\\u0120knees\": 14475, \"\\u0120Bomb\": 14476, \"\\u0120rug\": 14477, \"Pass\": 14478, \"\\u0120attitudes\": 14479, \"government\": 14480, \"\\u0120Prior\": 14481, \"\\u0120qualities\": 14482, \"\\u0120notification\": 14483, \"\\u0120Phone\": 14484, \"lie\": 14485, \"\\u0120anticipated\": 14486, \"\\u0120Combat\": 14487, \"\\u0120Barry\": 14488, \"\\u01201982\": 14489, \"Users\": 14490, \"oner\": 14491, \"\\u0120computing\": 14492, \"\\u0120Connecticut\": 14493, \"\\u0120lesser\": 14494, \"\\u0120peers\": 14495, \"\\u0120Cu\": 14496, \"\\u0120technically\": 14497, \"\\u0120submission\": 14498, \"\\u0120Universal\": 14499, \"\\u0120manually\": 14500, \"ourge\": 14501, \"\\u0120respondents\": 14502, \"\\u0120BTC\": 14503, \"\\u0120Host\": 14504, \"\\u0120fare\": 14505, \"\\u0120Bird\": 14506, \"\\u0120receipt\": 14507, \"also\": 14508, \"\\u0120jack\": 14509, \"\\u0120agriculture\": 14510, \"\\u0120skull\": 14511, \"\\u0120!=\": 14512, \"\\u0120passive\": 14513, \"\\u0120CI\": 14514, \"\\u0120societies\": 14515, \"\\u0120reminded\": 14516, \"\\u0120interference\": 14517, \"Buy\": 14518, \"\\u0120\\u00e2\\u013e\": 14519, \"gon\": 14520, \"\\u0120scrutiny\": 14521, \"\\u0120Witch\": 14522, \"\\u0120conducting\": 14523, \"\\u0120\\u00e3\\u0125\": 14524, \"\\u0120exchanges\": 14525, \"\\u0120Mitchell\": 14526, \"\\u0120inhabit\": 14527, \"\\u0120twist\": 14528, \"BD\": 14529, \"\\u0120wherever\": 14530, \"groupon\": 14531, \"\\u0120jokes\": 14532, \"\\u0120Benjamin\": 14533, \"\\u0120Random\": 14534, \"frame\": 14535, \"\\u0120Lions\": 14536, \"\\u0120highlighted\": 14537, \"\\u0120Arkansas\": 14538, \"Ent\": 14539, \"\\u0120pile\": 14540, \"\\u0120prelim\": 14541, \"gs\": 14542, \"minded\": 14543, \"\\u0120felony\": 14544, \"\\u0120GA\": 14545, \"\\u0120Luck\": 14546, \"\\u0120practically\": 14547, \"\\u0120Bos\": 14548, \"\\u0120actress\": 14549, \"Dam\": 14550, \"\\u0120Bou\": 14551, \"\\u0120visa\": 14552, \"\\u0120embedded\": 14553, \"\\u0120hybrid\": 14554, \"\\u0120earliest\": 14555, \"\\u0120sooner\": 14556, \"social\": 14557, \"\\u0120HA\": 14558, \"\\u0120steep\": 14559, \"\\u0120disadvant\": 14560, \"\\u0120exploit\": 14561, \"\\u0120Egg\": 14562, \"\\u0120Ultra\": 14563, \"\\u0120necessity\": 14564, \"Local\": 14565, \"iege\": 14566, \"\\u0120dated\": 14567, \"\\u0120masses\": 14568, \"\\u0120subscription\": 14569, \"pless\": 14570, \"\\u0120anonym\": 14571, \"\\u0120presumably\": 14572, \"Blue\": 14573, \"Their\": 14574, \"asketball\": 14575, \"\\u0120Philip\": 14576, \"\\u0120comed\": 14577, \"loaded\": 14578, \"rane\": 14579, \"\\u0120reflection\": 14580, \"China\": 14581, \"\\u0120extends\": 14582, \"\\u0120forming\": 14583, \"\\u0120unders\": 14584, \"2001\": 14585, \"\\u0120grat\": 14586, \"\\u0120concentrations\": 14587, \"\\u0120insulin\": 14588, \"\\u0120secular\": 14589, \"\\u0120whilst\": 14590, \"\\u0120winners\": 14591, \"Advertisements\": 14592, \"\\u0120deliberately\": 14593, \"\\u0120Working\": 14594, \"\\u0120sink\": 14595, \"etics\": 14596, \"dale\": 14597, \"\\u0120mandate\": 14598, \"\\u0120gram\": 14599, \"\\u0120vacation\": 14600, \"\\u0120warnings\": 14601, \"ripp\": 14602, \"\\u0120THAT\": 14603, \"\\u0120commentary\": 14604, \"\\u0120intu\": 14605, \"\\u0120aest\": 14606, \"\\u0120reasoning\": 14607, \"\\u0120breakdown\": 14608, \"\\u0120Zombie\": 14609, \"\\u0120-->\": 14610, \"\\u0120Political\": 14611, \"cott\": 14612, \"\\u0120thrust\": 14613, \"\\u0120technological\": 14614, \"\\u0120deciding\": 14615, \"\\u0120trafficking\": 14616, \"Long\": 14617, \"Welcome\": 14618, \"prising\": 14619, \"\\u0120Communications\": 14620, \"\\u0120endors\": 14621, \"\\u0120swift\": 14622, \"\\u0120metabol\": 14623, \"coins\": 14624, \"resa\": 14625, \"\\u0120HTTP\": 14626, \"\\u0120enroll\": 14627, \"\\u0120Happy\": 14628, \"usr\": 14629, \"intage\": 14630, \"\\u0120[\\\"\": 14631, \"uably\": 14632, \"\\u0120Material\": 14633, \"\\u0120repeal\": 14634, \"Sept\": 14635, \"kh\": 14636, \"\\u0120Modi\": 14637, \"\\u0120underneath\": 14638, \"\\u0120IL\": 14639, \"shore\": 14640, \"\\u0120diagnosed\": 14641, \"aceutical\": 14642, \"\\u0120shower\": 14643, \"aux\": 14644, \"\\u0120Switch\": 14645, \"\\u0120Strength\": 14646, \"\\u0120jihad\": 14647, \"national\": 14648, \"\\u0120trauma\": 14649, \"ussy\": 14650, \"oni\": 14651, \"\\u0120consolid\": 14652, \"\\u0120calories\": 14653, \"\\u0120Flynn\": 14654, \"agged\": 14655, \"168\": 14656, \"\\u0120Pink\": 14657, \"\\u0120fulfill\": 14658, \"\\u0120chains\": 14659, \"\\u0120notably\": 14660, \"\\u0120AV\": 14661, \"Life\": 14662, \"\\u0120Chuck\": 14663, \"mus\": 14664, \"\\u0120Urban\": 14665, \"\\u0120Hend\": 14666, \"\\u0120deposit\": 14667, \"\\u0120Sad\": 14668, \"\\u0120affair\": 14669, \"ORK\": 14670, \"ieval\": 14671, \"\\u0120FDA\": 14672, \"\\u0120trop\": 14673, \"\\u0120Overall\": 14674, \"\\u0120virtue\": 14675, \"\\u0120satisfaction\": 14676, \"aund\": 14677, \"\\u0120lun\": 14678, \"\\u0120Switzerland\": 14679, \"\\u0120Operation\": 14680, \"process\": 14681, \"\\u0120shook\": 14682, \"\\u0120counties\": 14683, \"leased\": 14684, \"\\u0120Charlotte\": 14685, \"112\": 14686, \"\\u0120transcript\": 14687, \"\\u0120redd\": 14688, \"push\": 14689, \"\\u0120Hey\": 14690, \"\\u0120Analysis\": 14691, \"[\\\"\": 14692, \"\\u0120alternatives\": 14693, \"ardless\": 14694, \"\\u0120eleph\": 14695, \"\\u0120prejud\": 14696, \"\\u0120Leaf\": 14697, \"Having\": 14698, \"\\u0120Hub\": 14699, \"\\u0120expressions\": 14700, \"\\u0120Volume\": 14701, \"\\u0120shocking\": 14702, \"\\u0120Reds\": 14703, \"\\u0120readily\": 14704, \"\\u0120planets\": 14705, \"adata\": 14706, \"\\u0120collapsed\": 14707, \"\\u0120Madrid\": 14708, \"\\u0120irrit\": 14709, \"ipper\": 14710, \"\\u0120Enc\": 14711, \"\\u0120Wire\": 14712, \"\\u0120buzz\": 14713, \"\\u0120GP\": 14714, \"asha\": 14715, \"\\u0120accidentally\": 14716, \"uru\": 14717, \"\\u0120frustrated\": 14718, \"\\u0120SA\": 14719, \"\\u0120hungry\": 14720, \"\\u0120Huff\": 14721, \"\\u0120labels\": 14722, \"anto\": 14723, \"\\u0120EP\": 14724, \"\\u0120barriers\": 14725, \")|\": 14726, \"\\u0120Berkeley\": 14727, \"\\u0120Jets\": 14728, \"\\u0120pairs\": 14729, \"\\u0120Lan\": 14730, \"James\": 14731, \"\\u0120Bear\": 14732, \"\\u0120humor\": 14733, \"\\u0120Liberty\": 14734, \"\\u0120magnitude\": 14735, \"\\u0120aging\": 14736, \"\\u0120Mason\": 14737, \"\\u0120friendship\": 14738, \"umbling\": 14739, \"\\u0120emerge\": 14740, \"\\u0120newspapers\": 14741, \"\\u0120ambitious\": 14742, \"\\u0120Richards\": 14743, \"aternal\": 14744, \"\\u01201981\": 14745, \"\\u0120cookies\": 14746, \"\\u0120sculpt\": 14747, \"\\u0120pursuit\": 14748, \"Location\": 14749, \"\\u0120scripts\": 14750, \"pc\": 14751, \"\\u0120arrangements\": 14752, \"\\u0120diameter\": 14753, \"\\u0120loses\": 14754, \"amation\": 14755, \"\\u0120liqu\": 14756, \"\\u0120Jake\": 14757, \"arette\": 14758, \"\\u0120understands\": 14759, \"\\u0120Zen\": 14760, \"vm\": 14761, \"\\u0120approve\": 14762, \"\\u0120wip\": 14763, \"\\u0120ultra\": 14764, \"\\u0120intend\": 14765, \"\\u0120DI\": 14766, \"ascular\": 14767, \"\\u0120stays\": 14768, \"\\u0120Kor\": 14769, \"\\u0120Kl\": 14770, \"\\u0120investing\": 14771, \"La\": 14772, \"\\u0120believing\": 14773, \"bad\": 14774, \"mouth\": 14775, \"\\u0120taxpayer\": 14776, \"\\u00e3\\u0125\\u0125\": 14777, \"\\u0120Quebec\": 14778, \"\\u0120lap\": 14779, \"\\u0120Swiss\": 14780, \"drop\": 14781, \"\\u0120drain\": 14782, \"iri\": 14783, \"etc\": 14784, \"ften\": 14785, \"\\u0120Nex\": 14786, \"\\u0120straw\": 14787, \"\\u0120screaming\": 14788, \"\\u0120counted\": 14789, \"\\u0120damaging\": 14790, \"\\u0120ambassador\": 14791, \"century\": 14792, \"\\u0120prox\": 14793, \"\\u0120arrests\": 14794, \"uv\": 14795, \"ilateral\": 14796, \"\\u0120Charg\": 14797, \"\\u0120prescribed\": 14798, \"\\u0120independently\": 14799, \"\\u0120fierce\": 14800, \"\\u0120Baby\": 14801, \"\\u0120brave\": 14802, \"\\u0120suits\": 14803, \"=>\": 14804, \"\\u0120baseline\": 14805, \"\\u0120Rate\": 14806, \"\\u0120islands\": 14807, \"\\u0120((\": 14808, \"green\": 14809, \"ixels\": 14810, \"\\u0120namely\": 14811, \"\\u0120Village\": 14812, \"than\": 14813, \"amy\": 14814, \"Version\": 14815, \"gmail\": 14816, \"entials\": 14817, \"\\u0120Sud\": 14818, \"\\u0120Melbourne\": 14819, \"\\u0120arriving\": 14820, \"\\u0120quantum\": 14821, \"eff\": 14822, \"ropolitan\": 14823, \"Tri\": 14824, \"\\u0120funeral\": 14825, \"\\u0120IR\": 14826, \"\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\": 14827, \"\\u0120Cob\": 14828, \"itably\": 14829, \"\\u0120turb\": 14830, \"\\u0120combo\": 14831, \"Review\": 14832, \"\\u0120deployment\": 14833, \"uity\": 14834, \"\\u0120Bott\": 14835, \"\\u0120invisible\": 14836, \"\\u0120rendering\": 14837, \"\\u0120unlocked\": 14838, \"\\u0120aqu\": 14839, \"\\u0120Vladimir\": 14840, \"\\u0120pad\": 14841, \"\\u0120Brain\": 14842, \"\\u0120Legacy\": 14843, \"dragon\": 14844, \"\\u0120Kurdish\": 14845, \"\\u0120sounded\": 14846, \"\\u0120detained\": 14847, \"\\u0120DM\": 14848, \"gary\": 14849, \"\\u0120daughters\": 14850, \"\\u0120disturbing\": 14851, \"uka\": 14852, \"\\u0120Parad\": 14853, \"\\u0120tast\": 14854, \"\\u0120unfortunate\": 14855, \"\\u0120ul\": 14856, \"emin\": 14857, \"\\u0120attendance\": 14858, \"trl\": 14859, \"\\u0120parks\": 14860, \"\\u0120Memorial\": 14861, \"\\u0120Alice\": 14862, \"othy\": 14863, \"guard\": 14864, \"\\u0120Dise\": 14865, \"\\u0120Shan\": 14866, \"\\u0120Forum\": 14867, \"Rich\": 14868, \"\\u0120shifted\": 14869, \"uez\": 14870, \"\\u0120lighter\": 14871, \"\\u0120Magn\": 14872, \"\\u0120cod\": 14873, \"Sch\": 14874, \"hammad\": 14875, \"Pub\": 14876, \"350\": 14877, \"\\u0120Pokemon\": 14878, \"\\u0120prototype\": 14879, \"\\u0120unre\": 14880, \"Base\": 14881, \"\\u0120Students\": 14882, \"\\u0120Reply\": 14883, \"\\u0120Communist\": 14884, \"\\u0120gau\": 14885, \"\\u0120Tyler\": 14886, \"IZ\": 14887, \"\\u0120participated\": 14888, \"\\u0120suprem\": 14889, \"\\u0120Details\": 14890, \"\\u0120vessels\": 14891, \"rod\": 14892, \"\\u0120tribe\": 14893, \"keep\": 14894, \"\\u0120assumptions\": 14895, \"\\u0120pound\": 14896, \"\\u0120crude\": 14897, \"\\u0120Available\": 14898, \"\\u0120swimming\": 14899, \"\\u0120inclusion\": 14900, \"\\u0120advances\": 14901, \"culation\": 14902, \"\\u0120conservation\": 14903, \"\\u0120overd\": 14904, \"\\u0120Buffalo\": 14905, \"Article\": 14906, \"edge\": 14907, \"\\u0120awa\": 14908, \"\\u0120Madison\": 14909, \"\\u0120sidew\": 14910, \"\\u0120catast\": 14911, \"\\u0120Krist\": 14912, \"ucle\": 14913, \"\\u0120Highway\": 14914, \"\\u0120Terror\": 14915, \"\\u0120activation\": 14916, \"\\u0120unconscious\": 14917, \"\\u0120Satan\": 14918, \"\\u0120Susan\": 14919, \"illery\": 14920, \"\\u0120arranged\": 14921, \"iop\": 14922, \"\\u0120rumors\": 14923, \"urring\": 14924, \"think\": 14925, \"\\u0120Keith\": 14926, \"\\u0120Kind\": 14927, \"\\u0120avoiding\": 14928, \"byn\": 14929, \"nut\": 14930, \"\\u0120Speaker\": 14931, \"rus\": 14932, \"names\": 14933, \"\\u0120guilt\": 14934, \"\\u0120Olympics\": 14935, \"\\u0120sail\": 14936, \"\\u0120Mes\": 14937, \"levant\": 14938, \"\\u0120Columbus\": 14939, \"aft\": 14940, \"City\": 14941, \"South\": 14942, \"\\u0120Harvey\": 14943, \"\\u0120Pun\": 14944, \"Several\": 14945, \"\\u0120mentally\": 14946, \"\\u0120impress\": 14947, \"mount\": 14948, \"\\u0120Ubuntu\": 14949, \"\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\": 14950, \"\\u0120Superman\": 14951, \"\\u0120MPs\": 14952, \"\\u0120intentions\": 14953, \"\\u0120Racing\": 14954, \"\\u0120likelihood\": 14955, \"\\u0120240\": 14956, \"Total\": 14957, \"\\u0120toys\": 14958, \"\\u0120Watson\": 14959, \"\\u0120urge\": 14960, \"Lear\": 14961, \"\\u0120Paper\": 14962, \"\\u0120occurring\": 14963, \"\\u0120Beng\": 14964, \"\\u0120Cert\": 14965, \"\\u0120stones\": 14966, \"Tim\": 14967, \"\\u0120Twin\": 14968, \"zb\": 14969, \"\\u0120Dynam\": 14970, \"\\u0120politician\": 14971, \"kens\": 14972, \"\\u0120Enterprise\": 14973, \"UTERS\": 14974, \"\\u0120abol\": 14975, \"\\u0120refresh\": 14976, \"\\u0120arbitrary\": 14977, \"pection\": 14978, \"\\u0120troubles\": 14979, \"\\u0120});\": 14980, \"tv\": 14981, \"\\u0120pilots\": 14982, \"\\u0120distribute\": 14983, \"\\u0120audit\": 14984, \"\\u0120pause\": 14985, \"original\": 14986, \"\\u0120rivals\": 14987, \"\\u00c2\\u00a3\": 14988, \"Fig\": 14989, \"TL\": 14990, \"abil\": 14991, \"rying\": 14992, \"Lin\": 14993, \"ioned\": 14994, \"lon\": 14995, \"\\u0120fancy\": 14996, \"\\u0120crashed\": 14997, \"\\u0120tract\": 14998, \"\\u0120shed\": 14999, \"\\u0120consume\": 15000, \"Based\": 15001, \"download\": 15002, \"init\": 15003, \"\\u0120voltage\": 15004, \"Introdu\": 15005, \"\\u0120condemned\": 15006, \"\\u0120Finance\": 15007, \"respect\": 15008, \"\\u0120excluded\": 15009, \"\\u0120establishing\": 15010, \"heric\": 15011, \"\\u0120heritage\": 15012, \"\\u0120spectacular\": 15013, \"\\u0120unst\": 15014, \"\\u0120Snowden\": 15015, \"\\u0120Lane\": 15016, \"San\": 15017, \"\\u0120protections\": 15018, \"struction\": 15019, \"incinn\": 15020, \"\\u0120macro\": 15021, \"Custom\": 15022, \"iosity\": 15023, \"\\u0120esp\": 15024, \"\\u0120functioning\": 15025, \"\\u0120mush\": 15026, \"\\u0120puzzle\": 15027, \"\\u0120ethical\": 15028, \"Mal\": 15029, \"\\u0120governing\": 15030, \"\\u0120Ferguson\": 15031, \"\\u0120restored\": 15032, \"\\u0120stressed\": 15033, \"\\u0120Counter\": 15034, \"\\u0120Kas\": 15035, \"clip\": 15036, \"ANS\": 15037, \"\\u0120seiz\": 15038, \"UK\": 15039, \"byss\": 15040, \"oldown\": 15041, \"api\": 15042, \"\\u0120permanently\": 15043, \"ounters\": 15044, \"West\": 15045, \"Through\": 15046, \"Light\": 15047, \"atoes\": 15048, \"\\u0120neat\": 15049, \"\\u0120cord\": 15050, \"urer\": 15051, \"\\u0120severely\": 15052, \"\\u0120Aven\": 15053, \"\\u0120interrog\": 15054, \"\\u0120triple\": 15055, \"Given\": 15056, \"Number\": 15057, \"\\u0120arise\": 15058, \"\\u0120sher\": 15059, \"plant\": 15060, \"\\u0120flower\": 15061, \"\\u0120Cou\": 15062, \"\\u0120ate\": 15063, \"\\u0120newer\": 15064, \"bul\": 15065, \"\\u0120meanwhile\": 15066, \"\\u0120Lair\": 15067, \"\\u0120adjustment\": 15068, \"\\u0120Copyright\": 15069, \"\\u0120divers\": 15070, \"iological\": 15071, \"\\u0120gamers\": 15072, \"oat\": 15073, \"\\u0120historically\": 15074, \"\\u0120analog\": 15075, \"\\u0120longtime\": 15076, \"\\u0120prescription\": 15077, \"\\u0120Mist\": 15078, \"\\u0120Hyper\": 15079, \"\\u0120Maine\": 15080, \"\\u0120Deity\": 15081, \"\\u0120multipl\": 15082, \"\\u0120Reincarn\": 15083, \"\\u0120Hyd\": 15084, \"\\u0120Pic\": 15085, \"Sil\": 15086, \"rants\": 15087, \"\\u0120Cris\": 15088, \".;\": 15089, \"({\": 15090, \"ependence\": 15091, \"\\u0120recy\": 15092, \"ateur\": 15093, \"\\u0120quad\": 15094, \"\\u0120glob\": 15095, \"\\u0120conced\": 15096, \"team\": 15097, \"\\u0120capitalist\": 15098, \"\\u0120Lot\": 15099, \"\\u0120royal\": 15100, \"\\u0120Cyber\": 15101, \"\\u0120blacks\": 15102, \"metic\": 15103, \"riv\": 15104, \"\\u0120Danny\": 15105, \"\\u0120spo\": 15106, \"\\u0120RO\": 15107, \"\\u0120animated\": 15108, \"rypted\": 15109, \"\\u0120Deputy\": 15110, \"\\u0120rendered\": 15111, \"FE\": 15112, \"\\u0120streak\": 15113, \"\\u0120clouds\": 15114, \"\\u0120Doug\": 15115, \"~~~~~~~~\": 15116, \"\\u0120discour\": 15117, \"\\u0120Veh\": 15118, \"\\u0120psychology\": 15119, \"\\u0120Journey\": 15120, \"\\u0120crystal\": 15121, \"\\u0120Frost\": 15122, \"\\u0120suspicion\": 15123, \"\\u0120relate\": 15124, \"orus\": 15125, \"\\u0120Crypt\": 15126, \"\\u0120NVIDIA\": 15127, \"comed\": 15128, \"uting\": 15129, \"incinnati\": 15130, \"\\u0120vulnerability\": 15131, \"ostic\": 15132, \"\\u0120isolation\": 15133, \"\\u0120cooling\": 15134, \"\\u0120Coalition\": 15135, \"\\u0120119\": 15136, \"Four\": 15137, \"\\u0120Deal\": 15138, \"\\u0120\\u00e2\\u012b\": 15139, \"semble\": 15140, \"rament\": 15141, \"\\u0120Barcelona\": 15142, \"\\u0120102\": 15143, \"\\u0120cocaine\": 15144, \"ocalypse\": 15145, \"Feb\": 15146, \"ogenic\": 15147, \"\\u0120mutation\": 15148, \"\\u0120cryptoc\": 15149, \"\\u0120Kel\": 15150, \"\\u0120Git\": 15151, \"ais\": 15152, \"\\u0120sisters\": 15153, \"ANK\": 15154, \"\\u0120activate\": 15155, \"Ter\": 15156, \"\\u0120dread\": 15157, \"ylon\": 15158, \"\\u0120propri\": 15159, \"Aust\": 15160, \"\\u0120Default\": 15161, \"\\u0120outdoor\": 15162, \"\\u0120sheer\": 15163, \"ceive\": 15164, \"\\u0120gently\": 15165, \"\\u00d0\\u00be\": 15166, \"Program\": 15167, \"\\u0120\\u00e2\\u0128\\u0134\": 15168, \"\\u0120vegan\": 15169, \"\\u0120Crus\": 15170, \"\\u0120responsibilities\": 15171, \"\\u0120HR\": 15172, \"OLD\": 15173, \"\\u0120prevents\": 15174, \"\\u0120stiff\": 15175, \"\\u0120Were\": 15176, \"\\u0120athletic\": 15177, \"\\u0120Score\": 15178, \"\\u0120):\": 15179, \"\\u0120columns\": 15180, \"\\u0120Loc\": 15181, \"available\": 15182, \"\\u0120Fram\": 15183, \"\\u0120Sessions\": 15184, \"\\u0120companion\": 15185, \"\\u0120packs\": 15186, \"140\": 15187, \"\\u0120Knights\": 15188, \"\\u0120fart\": 15189, \"\\u0120streams\": 15190, \"\\u0120shore\": 15191, \"\\u0120appeals\": 15192, \"\\u0120Performance\": 15193, \"haul\": 15194, \"\\u0120Stra\": 15195, \"\\u0120Nag\": 15196, \"103\": 15197, \"\\u0120Transportation\": 15198, \"BB\": 15199, \"Ev\": 15200, \"zan\": 15201, \"Public\": 15202, \"\\u0120twin\": 15203, \"ulsion\": 15204, \"Mult\": 15205, \"\\u0120electro\": 15206, \"\\u0120statue\": 15207, \"ationally\": 15208, \"\\u0120Nort\": 15209, \"\\u0120inspection\": 15210, \"/*\": 15211, \"igue\": 15212, \"\\u0120compassion\": 15213, \"\\u0120Tales\": 15214, \"\\u0120Stein\": 15215, \"\\u0120Screen\": 15216, \"\\u0120Bug\": 15217, \"\\u0120Lion\": 15218, \"girl\": 15219, \"\\u0120withdrawal\": 15220, \"\\u0120objectives\": 15221, \"\\u0120bloody\": 15222, \"\\u0120preliminary\": 15223, \"\\u0120jacket\": 15224, \"\\u0120dimensions\": 15225, \"\\u0120Cool\": 15226, \"\\u0120Occup\": 15227, \"\\u0120wreck\": 15228, \"\\u0120doubled\": 15229, \"anking\": 15230, \"\\u01201975\": 15231, \"\\u0120glasses\": 15232, \"\\u0120Wang\": 15233, \"prov\": 15234, \"Path\": 15235, \"connected\": 15236, \"\\u0120Multi\": 15237, \"\\u0120Norway\": 15238, \"agonist\": 15239, \"\\u0120feared\": 15240, \"\\u0120touching\": 15241, \"\\u0120arguably\": 15242, \"\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\": 15243, \"\\u0120NCAA\": 15244, \"chem\": 15245, \"\\u0120spat\": 15246, \"\\u0120WWE\": 15247, \"\\u0120Cel\": 15248, \"igger\": 15249, \"\\u0120attacker\": 15250, \"\\u0120Join\": 15251, \"object\": 15252, \"etta\": 15253, \"\\u0120eliminated\": 15254, \"det\": 15255, \"\\u0120destruct\": 15256, \"\\u0120Lucas\": 15257, \"ctuary\": 15258, \"180\": 15259, \"\\u0120Brady\": 15260, \"\\u0120Blues\": 15261, \"Bay\": 15262, \"aukee\": 15263, \"\\u0120timeline\": 15264, \"\\u0120delegates\": 15265, \"written\": 15266, \"ufficient\": 15267, \"\\u0120shapes\": 15268, \"Copyright\": 15269, \"ouble\": 15270, \"service\": 15271, \"\\u0120pione\": 15272, \"\\u0120colleges\": 15273, \"\\u0120rows\": 15274, \"\\u0120spite\": 15275, \"\\u0120assessed\": 15276, \"360\": 15277, \"\\u0120lease\": 15278, \"\\u0120confidential\": 15279, \"cker\": 15280, \"\\u0120Manning\": 15281, \"\\u0120Voice\": 15282, \"\\u0120sealed\": 15283, \"\\u0120calculate\": 15284, \"NO\": 15285, \"\\u0120Assistant\": 15286, \"\\u0120teenager\": 15287, \"ulent\": 15288, \"atherine\": 15289, \"\\u0120mock\": 15290, \"\\u0120diamond\": 15291, \"\\u0120fest\": 15292, \"\\u0120switched\": 15293, \"\\u0120resume\": 15294, \"\\u0120Puerto\": 15295, \"\\u0120lanes\": 15296, \"iration\": 15297, \"\\u0120Similarly\": 15298, \"\\u0120rod\": 15299, \"\\u0120Sel\": 15300, \"\\u0120Palace\": 15301, \"\\u0120Limited\": 15302, \"eous\": 15303, \"\\u0120variant\": 15304, \"\\u0120ward\": 15305, \"\\u0120))\": 15306, \"Show\": 15307, \"OOK\": 15308, \"Alex\": 15309, \"\\u0120Nep\": 15310, \"bris\": 15311, \"\\u0120Wikipedia\": 15312, \"\\u0120exceptional\": 15313, \"\\u0120manages\": 15314, \"\\u0120Draw\": 15315, \"Again\": 15316, \"\\u0120copper\": 15317, \"utt\": 15318, \"\\u0120exports\": 15319, \"\\u0120portfolio\": 15320, \"\\u0120elevated\": 15321, \"Rated\": 15322, \"\\u0120Otherwise\": 15323, \"\\u0120Tact\": 15324, \"\\u0120Shel\": 15325, \"\\u0120TX\": 15326, \"\\\"\\u00e2\\u0122\\u0136\": 15327, \"\\u0120resur\": 15328, \"\\u0120Wa\": 15329, \"venant\": 15330, \"\\u0120monetary\": 15331, \"people\": 15332, \"Email\": 15333, \"\\u0120fifty\": 15334, \"\\u0120Sweet\": 15335, \"\\u0120Malaysia\": 15336, \"\\u0120confusing\": 15337, \"\\u0120Rio\": 15338, \"uda\": 15339, \"utenant\": 15340, \"\\\");\": 15341, \"\\u0120praised\": 15342, \"\\u0120volumes\": 15343, \"turn\": 15344, \"\\u0120mature\": 15345, \"\\u0120nonprofit\": 15346, \"\\u0120passionate\": 15347, \"\\u0120Private\": 15348, \"\\u0120103\": 15349, \"\\u0120descend\": 15350, \"\\u00e7\\u00a5\\u0140\": 15351, \"uffy\": 15352, \"headed\": 15353, \"Whether\": 15354, \"rien\": 15355, \"zech\": 15356, \"beit\": 15357, \"\\u0120chrom\": 15358, \"\\u0120McM\": 15359, \"\\u0120dancing\": 15360, \"\\u0120eleg\": 15361, \"\\u0120Noticed\": 15362, \"115\": 15363, \"\\u0120advocacy\": 15364, \"ENTS\": 15365, \"ambling\": 15366, \"\\u0120Minor\": 15367, \"\\u0120Finn\": 15368, \"\\u0120priorities\": 15369, \"\\u0120thereof\": 15370, \"\\u0120Stage\": 15371, \"\\u0120Rogers\": 15372, \"\\u0120substitute\": 15373, \"\\u0120Jar\": 15374, \"\\u0120Jefferson\": 15375, \"\\u0120lightly\": 15376, \"102\": 15377, \"\\u0120Lisa\": 15378, \"uits\": 15379, \"ysical\": 15380, \"\\u0120shifts\": 15381, \"\\u0120drones\": 15382, \"\\u0120workplace\": 15383, \"\\u0120resid\": 15384, \"ensed\": 15385, \"ahn\": 15386, \"\\u0120preferences\": 15387, \"server\": 15388, \"\\u0120debates\": 15389, \"doc\": 15390, \"\\u0120Gods\": 15391, \"\\u0120helicopter\": 15392, \"\\u0120honour\": 15393, \"\\u0120considerably\": 15394, \"eded\": 15395, \"\\u0120Female\": 15396, \"\\u0120Anne\": 15397, \"\\u0120reun\": 15398, \"\\u0120Face\": 15399, \"\\u0120Hallow\": 15400, \"\\u0120Budget\": 15401, \"\\u0120condemn\": 15402, \"\\u0120tender\": 15403, \"Prof\": 15404, \"ocratic\": 15405, \"\\u0120Turner\": 15406, \"\\u0120Agric\": 15407, \"\\u01201976\": 15408, \"\\u0120apt\": 15409, \"disc\": 15410, \"\\u0120Fighter\": 15411, \"\\u0120Aur\": 15412, \"\\u0120garbage\": 15413, \"input\": 15414, \"\\u0120Karl\": 15415, \"\\u0120Oliver\": 15416, \"\\u0120Language\": 15417, \"kn\": 15418, \"Non\": 15419, \"\\u0120Clar\": 15420, \"\\u0120traditions\": 15421, \"\\u0120advertisement\": 15422, \"\\u0120Sor\": 15423, \"\\u0120archive\": 15424, \"\\u0120villages\": 15425, \"750\": 15426, \"\\u0120implementing\": 15427, \"waukee\": 15428, \"\\u0120dietary\": 15429, \"\\u0120switching\": 15430, \"Republic\": 15431, \"\\u0120velocity\": 15432, \"\\u0120cit\": 15433, \"\\u0120Awards\": 15434, \"\\u0120financing\": 15435, \"\\u0120lasted\": 15436, \")]\": 15437, \"\\u0120reminder\": 15438, \"Person\": 15439, \"\\u0120precision\": 15440, \"\\u0120designers\": 15441, \"\\u0120Fried\": 15442, \"\\u0120Border\": 15443, \"\\u0120tragic\": 15444, \"\\u0120wield\": 15445, \"\\u0120initiatives\": 15446, \"\\u0120Tank\": 15447, \"wer\": 15448, \"\\u0120joins\": 15449, \"Ro\": 15450, \"inery\": 15451, \"\\u0120arrow\": 15452, \"\\u0120generating\": 15453, \"founder\": 15454, \"\\u0120searches\": 15455, \"\\u0120randomly\": 15456, \"Access\": 15457, \"\\u0120batch\": 15458, \"\\u0120posed\": 15459, \"lat\": 15460, \"\\u0120pursuing\": 15461, \"asa\": 15462, \"\\u0120testified\": 15463, \"forming\": 15464, \"\\u0120Shar\": 15465, \"wiki\": 15466, \"\\u0120Either\": 15467, \"Sometimes\": 15468, \"\\u0120senators\": 15469, \"\\u0120Johnny\": 15470, \"\\u0120Taliban\": 15471, \"\\u0120GPS\": 15472, \"\\\":\\\"/\": 15473, \"\\u00e3\\u0123\\u00ae\\u00e5\": 15474, \"\\u0120analyzed\": 15475, \"\\u0120Rubio\": 15476, \"\\u0120Movement\": 15477, \"opard\": 15478, \"iii\": 15479, \"Stand\": 15480, \"fight\": 15481, \"\\u0120ignoring\": 15482, \"iang\": 15483, \"\\u0120GN\": 15484, \"soever\": 15485, \"\\u0120STAT\": 15486, \"\\u0120refusing\": 15487, \"\\u0120sweat\": 15488, \"\\u0120bay\": 15489, \"PORT\": 15490, \"irmed\": 15491, \"aky\": 15492, \"\\u0120dispro\": 15493, \"\\u0120labeled\": 15494, \"\\u0120108\": 15495, \"Hello\": 15496, \"\\u0120pleasant\": 15497, \"aba\": 15498, \"\\u0120triumph\": 15499, \"\\u0120aboard\": 15500, \"\\u0120incom\": 15501, \"\\u0120Crow\": 15502, \"lett\": 15503, \"\\u0120folk\": 15504, \"\\u0120chase\": 15505, \"``\": 15506, \"\\u0120Brus\": 15507, \"\\u0120teens\": 15508, \"cue\": 15509, \"\\u0120terrain\": 15510, \"hyd\": 15511, \"ilight\": 15512, \"ORY\": 15513, \"Support\": 15514, \"ews\": 15515, \"lli\": 15516, \"raints\": 15517, \"\\u0120Cand\": 15518, \"\\u0120abused\": 15519, \"achment\": 15520, \"larg\": 15521, \"Bas\": 15522, \"\\u0120Cancer\": 15523, \"\\u01201978\": 15524, \"\\u0120supporter\": 15525, \"access\": 15526, \"\\u0120Termin\": 15527, \"\\u0120Tampa\": 15528, \"\\u0120ANY\": 15529, \"\\u0120newest\": 15530, \"\\u0120Criminal\": 15531, \"edu\": 15532, \"\\u01201930\": 15533, \"\\u0120admits\": 15534, \"\\u0120ende\": 15535, \"\\u0120failures\": 15536, \"urate\": 15537, \"fulness\": 15538, \"cycl\": 15539, \"\\u0120Subject\": 15540, \"\\u0120infinite\": 15541, \"three\": 15542, \"WA\": 15543, \"pit\": 15544, \"\\u0120Install\": 15545, \"Rad\": 15546, \"iliation\": 15547, \"GM\": 15548, \"\\u0120continent\": 15549, \"\\u0120accommodate\": 15550, \"\\u0120Clay\": 15551, \"\\u0120pup\": 15552, \"\\u0120Function\": 15553, \"\\u0120hammer\": 15554, \"\\u0120Alberta\": 15555, \"\\u0120revised\": 15556, \"\\u0120minorities\": 15557, \"\\u0120measurement\": 15558, \"Connell\": 15559, \"\\u0120disable\": 15560, \"\\u0120Mix\": 15561, \"Incre\": 15562, \"\\u0120fork\": 15563, \"\\u0120Rosen\": 15564, \"\\u0120implies\": 15565, \"umblr\": 15566, \"ANG\": 15567, \"\\u0120proteins\": 15568, \"\\u0120aggression\": 15569, \"\\u0120facilitate\": 15570, \"SN\": 15571, \"\\u0120illegally\": 15572, \"uer\": 15573, \"\\u0120academ\": 15574, \"\\u0120puzz\": 15575, \"\\u0120Shift\": 15576, \"pay\": 15577, \"ollo\": 15578, \"\\u0120audiences\": 15579, \"Build\": 15580, \"\\u0120noble\": 15581, \"\\u0120syntax\": 15582, \"\\u00e2\\u013a\\u0127\": 15583, \"\\u0120beam\": 15584, \"\\u0120Bed\": 15585, \"\\u0120Ald\": 15586, \"\\u0120origins\": 15587, \"video\": 15588, \"\\u01201977\": 15589, \"\\u0120Assault\": 15590, \"\\u0120garage\": 15591, \"Team\": 15592, \"\\u0120verdict\": 15593, \"\\u0120dwar\": 15594, \"\\u0120Virtual\": 15595, \"event\": 15596, \"Keep\": 15597, \"\\u0120sentiment\": 15598, \"\\u0120wildlife\": 15599, \"shirt\": 15600, \"\\u0120burg\": 15601, \"\\u0120recommendation\": 15602, \"represent\": 15603, \"\\u0120gallery\": 15604, \"owners\": 15605, \"\\u0120scholar\": 15606, \"\\u0120convenience\": 15607, \"\\u0120Swift\": 15608, \"\\u0120convinc\": 15609, \"Cap\": 15610, \"\\u0120warfare\": 15611, \"\\u0120Visual\": 15612, \"\\u0120constitute\": 15613, \"\\u0120abort\": 15614, \"\\u0120Weather\": 15615, \"\\u0120Looking\": 15616, \"\\u0120Hem\": 15617, \"\\u0120martial\": 15618, \"\\u0120incoming\": 15619, \"etition\": 15620, \"\\u0120tolerance\": 15621, \"\\u0120Created\": 15622, \"\\u0120flows\": 15623, \"\\u0120Elder\": 15624, \"\\u0120souls\": 15625, \"\\u0120foul\": 15626, \"\\u0120Pain\": 15627, \"\\u0120CAN\": 15628, \"\\u0120220\": 15629, \"bc\": 15630, \"hend\": 15631, \"\\u0120genius\": 15632, \"Real\": 15633, \"\\u0120Wr\": 15634, \"ometer\": 15635, \"pad\": 15636, \"\\u0120limiting\": 15637, \"\\u0120Si\": 15638, \"\\u0120Lore\": 15639, \"\\u0120Adventures\": 15640, \"\\u0120varied\": 15641, \"Disc\": 15642, \"fin\": 15643, \"\\u0120Personal\": 15644, \"Chris\": 15645, \"\\u0120invented\": 15646, \"\\u0120dive\": 15647, \"\\u0120Rise\": 15648, \"\\u0120oz\": 15649, \"\\u0120Comics\": 15650, \"\\u0120expose\": 15651, \"\\u0120Reb\": 15652, \"letters\": 15653, \"site\": 15654, \"imated\": 15655, \"\\u0120hacking\": 15656, \"\\u0120educated\": 15657, \"\\u0120Nobody\": 15658, \"\\u0120depri\": 15659, \"\\u0120incentive\": 15660, \"\\u00e3\\u0124\\u00b7\": 15661, \"\\u0120oversight\": 15662, \"\\u0120tribes\": 15663, \"\\u0120Belgium\": 15664, \"\\u0120licensing\": 15665, \"ourt\": 15666, \"Product\": 15667, \"ahl\": 15668, \"\\u0120Gem\": 15669, \"\\u0120specialist\": 15670, \"\\u0120cra\": 15671, \"anners\": 15672, \"\\u0120Corbyn\": 15673, \"\\u01201973\": 15674, \"READ\": 15675, \"\\u0120summar\": 15676, \"\\u0120overlook\": 15677, \"\\u0120Application\": 15678, \"\\u0120inappropriate\": 15679, \"\\u0120downloaded\": 15680, \"Que\": 15681, \"\\u0120Bears\": 15682, \"\\u0120thumb\": 15683, \"\\u0120Character\": 15684, \"\\u0120Reincarnated\": 15685, \"\\u0120Sid\": 15686, \"\\u0120demonstrates\": 15687, \"sky\": 15688, \"\\u0120Bloomberg\": 15689, \"\\u0120Array\": 15690, \"\\u0120Results\": 15691, \"\\u0120Fourth\": 15692, \"\\u0120EDT\": 15693, \"\\u0120Oscar\": 15694, \"cend\": 15695, \"\\u0120106\": 15696, \"\\u0120NULL\": 15697, \"\\u0120HERE\": 15698, \"match\": 15699, \"\\u0120Brun\": 15700, \"\\u0120glucose\": 15701, \"ieg\": 15702, \"egu\": 15703, \"\\u0120certified\": 15704, \"\\u0120relie\": 15705, \"\\u0120humanitarian\": 15706, \"\\u0120prayers\": 15707, \"King\": 15708, \"\\u0120nan\": 15709, \"hou\": 15710, \"108\": 15711, \"ulu\": 15712, \"\\u0120renewable\": 15713, \"\\u0120distinguish\": 15714, \"\\u0120dense\": 15715, \"\\u0120Vent\": 15716, \"\\u0120Package\": 15717, \"\\u0120Boss\": 15718, \"\\u0120editors\": 15719, \"\\u0120migr\": 15720, \"Tra\": 15721, \"\\u0120Peters\": 15722, \"\\u0120Arctic\": 15723, \"2004\": 15724, \"\\u0120Cape\": 15725, \"\\u0120locally\": 15726, \"\\u0120lasting\": 15727, \"\\u0120handy\": 15728, \".).\": 15729, \"Pan\": 15730, \"\\u0120RES\": 15731, \"Index\": 15732, \"\\u0120tensions\": 15733, \"\\u0120formerly\": 15734, \"\\u0120ideological\": 15735, \"\\u0120sensors\": 15736, \"\\u0120dealers\": 15737, \"\\u0120defines\": 15738, \"Sk\": 15739, \"\\u0120proceeds\": 15740, \"\\u0120proxy\": 15741, \"azines\": 15742, \"\\u0120Bash\": 15743, \"\\u0120Pad\": 15744, \"\\u0120Craft\": 15745, \"ealous\": 15746, \"\\u0120sheets\": 15747, \"ometry\": 15748, \"June\": 15749, \"clock\": 15750, \"TT\": 15751, \"\\u0120Theatre\": 15752, \"\\u0120Buzz\": 15753, \"\\u0120chapters\": 15754, \"\\u0120millenn\": 15755, \"\\u0120dough\": 15756, \"\\u0120Congressional\": 15757, \"\\u0120imagined\": 15758, \"avior\": 15759, \"\\u0120clinic\": 15760, \"\\u01201945\": 15761, \"\\u0120holder\": 15762, \"root\": 15763, \"olester\": 15764, \"\\u0120restart\": 15765, \"BN\": 15766, \"\\u0120Hamas\": 15767, \"\\u0120Job\": 15768, \"\\u0120orb\": 15769, \"\\u0120ram\": 15770, \"\\u0120disclose\": 15771, \"\\u0120translate\": 15772, \"\\u0120immigrant\": 15773, \"\\u0120annoying\": 15774, \"\\u0120treaty\": 15775, \"anium\": 15776, \"\\u0120Tea\": 15777, \"\\u0120Legion\": 15778, \"\\u0120crowds\": 15779, \"\\u0120Bec\": 15780, \"\\u0120Aer\": 15781, \"ohyd\": 15782, \"Bro\": 15783, \"Looking\": 15784, \"\\u0120lbs\": 15785, \"\\u0120aggress\": 15786, \"\\u0120seam\": 15787, \"\\u0120intercept\": 15788, \"\\u0120MI\": 15789, \"mercial\": 15790, \"activ\": 15791, \"\\u0120Cit\": 15792, \"\\u0120dimension\": 15793, \"\\u0120consistency\": 15794, \"\\u0120rushing\": 15795, \"\\u0120Douglas\": 15796, \"\\u0120trim\": 15797, \"Install\": 15798, \"icker\": 15799, \"\\u0120shy\": 15800, \"106\": 15801, \"\\u0120mentions\": 15802, \"pelled\": 15803, \"\\u0120Tak\": 15804, \"cost\": 15805, \"\\u0120classroom\": 15806, \"\\u0120fortune\": 15807, \"driven\": 15808, \"\\u0120unle\": 15809, \"\\u0120Wheel\": 15810, \"\\u0120investor\": 15811, \"\\u0120Masters\": 15812, \"kit\": 15813, \"\\u0120associations\": 15814, \"\\u0120Evolution\": 15815, \"oping\": 15816, \"uscript\": 15817, \"\\u0120provincial\": 15818, \"\\u0120Walter\": 15819, \"avi\": 15820, \"SO\": 15821, \"\\u0120unlimited\": 15822, \"English\": 15823, \"\\u0120Cards\": 15824, \"\\u0120Ebola\": 15825, \"nered\": 15826, \"\\u0120revenge\": 15827, \"\\u0120outright\": 15828, \"umper\": 15829, \"\\u0120fitting\": 15830, \"\\u0120Solid\": 15831, \"\\u0120formally\": 15832, \"\\u0120problematic\": 15833, \"\\u0120hazard\": 15834, \"\\u0120encryption\": 15835, \"\\u0120straightforward\": 15836, \"\\u0120AK\": 15837, \"\\u0120pse\": 15838, \"\\u0120Orb\": 15839, \"\\u0120Chamber\": 15840, \"\\u0120Mak\": 15841, \"Contents\": 15842, \"\\u0120loyalty\": 15843, \"\\u0120lyrics\": 15844, \"\\u0120Sym\": 15845, \"\\u0120welcomed\": 15846, \"\\u0120cooked\": 15847, \"\\u0120monop\": 15848, \"\\u0120nurse\": 15849, \"\\u0120misleading\": 15850, \"\\u0120eternal\": 15851, \"\\u0120shifting\": 15852, \"\\u0120+=\": 15853, \"Vis\": 15854, \"\\u0120institutional\": 15855, \"illary\": 15856, \"\\u0120pant\": 15857, \"VERT\": 15858, \"\\u0120ACC\": 15859, \"\\u0120Enh\": 15860, \"\\u0120incon\": 15861, \"\\u0120REUTERS\": 15862, \"\\u0120donated\": 15863, \"\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\": 15864, \"Intern\": 15865, \"\\u0120exhibit\": 15866, \"\\u0120tire\": 15867, \"\\u0120Ric\": 15868, \"\\u0120Champion\": 15869, \"\\u0120Muhammad\": 15870, \"NING\": 15871, \"\\u0120Soccer\": 15872, \"\\u0120mobility\": 15873, \"\\u0120varying\": 15874, \"\\u0120Movie\": 15875, \"\\u0120lord\": 15876, \"oak\": 15877, \"Field\": 15878, \"\\u0120vector\": 15879, \"usions\": 15880, \"\\u0120scrap\": 15881, \"\\u0120enabling\": 15882, \"make\": 15883, \"Tor\": 15884, \".*\": 15885, \"||\": 15886, \"\\u0120Website\": 15887, \"\\u0120NPC\": 15888, \"\\u0120socialist\": 15889, \"\\u0120Billy\": 15890, \"\\u0120Additional\": 15891, \"\\u0120cargo\": 15892, \"\\u0120farms\": 15893, \"\\u0120Soon\": 15894, \"\\u0120Prize\": 15895, \"\\u0120midnight\": 15896, \"\\u0120900\": 15897, \"seen\": 15898, \"\\u0120Spot\": 15899, \"\\u0120sheep\": 15900, \"\\u0120sponsored\": 15901, \"\\u0120Hi\": 15902, \"\\u0120Jump\": 15903, \"\\u01201967\": 15904, \"Microsoft\": 15905, \"\\u0120Agent\": 15906, \"\\u0120charts\": 15907, \"dir\": 15908, \"\\u0120adjacent\": 15909, \"\\u0120tricks\": 15910, \"\\u0120manga\": 15911, \"\\u0120exagger\": 15912, \"/>\": 15913, \"football\": 15914, \"\\u0120FCC\": 15915, \"GC\": 15916, \"\\u0120Tier\": 15917, \"andra\": 15918, \"OUND\": 15919, \"%),\": 15920, \"\\u0120fruits\": 15921, \"VC\": 15922, \"\\u0120AA\": 15923, \"Rober\": 15924, \"\\u0120midst\": 15925, \"\\u00e2\\u0139\": 15926, \"anka\": 15927, \"\\u0120legislature\": 15928, \"\\u0120Neil\": 15929, \"\\u0120tourists\": 15930, \"\\\"\\\"\": 15931, \"\\u0120Warning\": 15932, \"\\u0120Nevertheless\": 15933, \"\\u0120Official\": 15934, \"\\u0120Whatever\": 15935, \"\\u0120mold\": 15936, \"\\u0120drafted\": 15937, \"\\u0120substances\": 15938, \"\\u0120breed\": 15939, \"\\u0120tags\": 15940, \"\\u0120Task\": 15941, \"\\u0120verb\": 15942, \"\\u0120manufactured\": 15943, \"comments\": 15944, \"\\u0120Polish\": 15945, \"Prov\": 15946, \"\\u0120determines\": 15947, \"Obama\": 15948, \"kers\": 15949, \"\\u0120utterly\": 15950, \"\\u0120sect\": 15951, \"sche\": 15952, \"\\u0120Gates\": 15953, \"\\u0120Chap\": 15954, \"\\u0120aluminum\": 15955, \"\\u0120zombie\": 15956, \"\\u0120Touch\": 15957, \"\\u0120UP\": 15958, \"\\u0120satisfy\": 15959, \"\\u0120predomin\": 15960, \"ascript\": 15961, \"\\u0120elaborate\": 15962, \"\\u01201968\": 15963, \"\\u0120measuring\": 15964, \"\\u0120Vari\": 15965, \"anyahu\": 15966, \"\\u0120sir\": 15967, \"ulates\": 15968, \"idges\": 15969, \"ickets\": 15970, \"\\u0120Spencer\": 15971, \"TM\": 15972, \"oubted\": 15973, \"\\u0120prey\": 15974, \"\\u0120installing\": 15975, \"\\u0120Cab\": 15976, \"reed\": 15977, \"reated\": 15978, \"Supp\": 15979, \"\\u0120wrist\": 15980, \"\\u0120Kerry\": 15981, \"107\": 15982, \"\\u0120Kle\": 15983, \"\\u0120Rachel\": 15984, \"\\u0120cotton\": 15985, \"\\u0120ARE\": 15986, \"\\u0120Ele\": 15987, \"Control\": 15988, \"\\u0120loads\": 15989, \"\\u0120Dod\": 15990, \"anas\": 15991, \"bone\": 15992, \"\\u0120classical\": 15993, \"\\u0120Regional\": 15994, \"\\u0120Integ\": 15995, \"VM\": 15996, \"\\u0120desires\": 15997, \"\\u0120autism\": 15998, \"supported\": 15999, \"\\u0120Message\": 16000, \"\\u0120compact\": 16001, \"writer\": 16002, \"\\u0120109\": 16003, \"\\u0120Hurricane\": 16004, \"cision\": 16005, \"\\u0120cycles\": 16006, \"\\u0120drill\": 16007, \"\\u0120colleague\": 16008, \"\\u0120maker\": 16009, \"German\": 16010, \"\\u0120mistaken\": 16011, \"Sun\": 16012, \"\\u0120Gay\": 16013, \"\\u0120whatsoever\": 16014, \"\\u0120sells\": 16015, \"\\u0120Airl\": 16016, \"liv\": 16017, \"\\u0120Option\": 16018, \"\\u0120solved\": 16019, \"\\u0120sectors\": 16020, \"\\u0120horizontal\": 16021, \"\\u0120equation\": 16022, \"\\u0120Skill\": 16023, \"\\u0120Bio\": 16024, \"gement\": 16025, \"\\u0120Snap\": 16026, \"\\u0120Legal\": 16027, \"\\u0120trademark\": 16028, \"\\u0120makeup\": 16029, \"\\u0120assembled\": 16030, \"\\u0120saves\": 16031, \"\\u0120Halloween\": 16032, \"\\u0120Vermont\": 16033, \"\\u0120FROM\": 16034, \"\\u0120farming\": 16035, \"\\u0120Podcast\": 16036, \"acceptable\": 16037, \"\\u0120Higher\": 16038, \"\\u0120asleep\": 16039, \"ullivan\": 16040, \"\\u0120referen\": 16041, \"\\u0120Lev\": 16042, \"\\u0120bullets\": 16043, \"oko\": 16044, \"HC\": 16045, \"\\u0120stairs\": 16046, \"\\u0120maintains\": 16047, \"\\u0120Lower\": 16048, \"\\u0120Vi\": 16049, \"\\u0120marine\": 16050, \"\\u0120acres\": 16051, \"\\u0120coordinator\": 16052, \"\\u0120Joh\": 16053, \"\\u0120counterparts\": 16054, \"\\u0120Brothers\": 16055, \"\\u0120indict\": 16056, \"bra\": 16057, \"\\u0120chunk\": 16058, \"\\u0120cents\": 16059, \"Home\": 16060, \"\\u0120Month\": 16061, \"\\u0120accordingly\": 16062, \"ifles\": 16063, \"\\u0120Germans\": 16064, \"\\u0120Syn\": 16065, \"Hub\": 16066, \"\\u0120eyeb\": 16067, \"\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\": 16068, \"\\u0120ranges\": 16069, \"\\u0120Holland\": 16070, \"\\u0120Robot\": 16071, \"fc\": 16072, \"Mike\": 16073, \"\\u0120plasma\": 16074, \"\\u0120swap\": 16075, \"\\u0120athlete\": 16076, \"\\u0120Rams\": 16077, \",'\\\"\": 16078, \"\\u0120infections\": 16079, \"\\u0120corrid\": 16080, \"\\u0120vib\": 16081, \"\\u0120patches\": 16082, \"\\u0120traditionally\": 16083, \"\\u0120revelation\": 16084, \"\\u0120sweep\": 16085, \"\\u0120glance\": 16086, \"\\u0120inex\": 16087, \"2003\": 16088, \"\\u0120Raw\": 16089, \"working\": 16090, \"osures\": 16091, \"\\u0120Dat\": 16092, \"\\u0120Lynch\": 16093, \"\\u0120leverage\": 16094, \"\\u0120Reid\": 16095, \"\\u0120correlation\": 16096, \"iances\": 16097, \"avascript\": 16098, \"\\u0120repository\": 16099, \"retty\": 16100, \"\\u01201972\": 16101, \"240\": 16102, \"\\u0120oun\": 16103, \"pol\": 16104, \"\\u0120Reed\": 16105, \"\\u0120tactical\": 16106, \"isite\": 16107, \"Apple\": 16108, \"\\u0120Quinn\": 16109, \"\\u0120raped\": 16110, \"illo\": 16111, \"Europe\": 16112, \"\\u0120algorithms\": 16113, \"\\u0120Rodrig\": 16114, \"iu\": 16115, \"\\u0120illum\": 16116, \"\\u0120fame\": 16117, \"\\u0120introducing\": 16118, \"\\u0120delays\": 16119, \"\\u0120Raiders\": 16120, \"\\u0120whistle\": 16121, \"\\u0120novels\": 16122, \"\\u0120Really\": 16123, \"\\u0120deriv\": 16124, \"\\u0120publications\": 16125, \"\\u0120Neither\": 16126, \"\\u0120Commerce\": 16127, \"\\u0120aston\": 16128, \"language\": 16129, \"Notes\": 16130, \"\\u0120Roth\": 16131, \"\\u0120Fear\": 16132, \"\\u0120mate\": 16133, \"\\u0120parade\": 16134, \"\\u0120QB\": 16135, \"\\u0120maneu\": 16136, \"\\u0120Cincinnati\": 16137, \"mitting\": 16138, \"\\u0120waist\": 16139, \"\\u0120Rew\": 16140, \"\\u0120discont\": 16141, \"\\u00d0\\u00b0\": 16142, \"\\u0120staring\": 16143, \"\\u0120alias\": 16144, \"\\u0120securities\": 16145, \"\\u0120toilet\": 16146, \"\\u0120Jedi\": 16147, \"\\u0120unlaw\": 16148, \"vised\": 16149, \"////////\": 16150, \"](\": 16151, \"\\u0120Weiss\": 16152, \"\\u0120prest\": 16153, \"\\u0120Compan\": 16154, \"\\u0120memo\": 16155, \"\\u0120Grace\": 16156, \"July\": 16157, \"\\u0120Elite\": 16158, \"center\": 16159, \"\\u0120Stay\": 16160, \"\\u0120galaxy\": 16161, \"\\u0120tooth\": 16162, \"\\u0120Settings\": 16163, \"\\u0120subjected\": 16164, \"\\u00e3\\u0124\\u00a6\": 16165, \"\\u0120lineback\": 16166, \"\\u0120retailers\": 16167, \"\\u0120Want\": 16168, \"\\u0120dangers\": 16169, \"Air\": 16170, \"\\u0120voluntary\": 16171, \"eway\": 16172, \"\\u0120interpreted\": 16173, \"otine\": 16174, \"\\u00c3\\u00a7\": 16175, \"\\u0120pel\": 16176, \"Service\": 16177, \"\\u0120Eventually\": 16178, \"\\u0120careers\": 16179, \"\\u0120threaten\": 16180, \"\\u0120memor\": 16181, \"\\u0120Bradley\": 16182, \"ancies\": 16183, \"sn\": 16184, \"\\u0120Unknown\": 16185, \"National\": 16186, \"\\u0120shadows\": 16187, \"ailand\": 16188, \"\\u0120Dash\": 16189, \"Everyone\": 16190, \"izzard\": 16191, \"March\": 16192, \"=(\": 16193, \"\\u0120pulls\": 16194, \"\\u0120stranger\": 16195, \"\\u0120backwards\": 16196, \"\\u0120Bernard\": 16197, \"imensional\": 16198, \"\\u0120chron\": 16199, \"\\u0120theoretical\": 16200, \"ktop\": 16201, \"\\u0120ware\": 16202, \"\\u0120Investig\": 16203, \"\\u0120Initi\": 16204, \"\\u0120Operations\": 16205, \"oven\": 16206, \"ocide\": 16207, \"*/\": 16208, \"\\u0120flames\": 16209, \"\\u0120Cash\": 16210, \"shit\": 16211, \"\\u0120cab\": 16212, \"\\u0120Analy\": 16213, \"\\u0120Seah\": 16214, \"\\u0120defining\": 16215, \"\\u0120ordering\": 16216, \"\\u0120immun\": 16217, \"\\u0120persistent\": 16218, \"ACH\": 16219, \"Russian\": 16220, \"mans\": 16221, \"\\u0120hind\": 16222, \"\\u0120photography\": 16223, \"\\u00c2\\u00a9\": 16224, \"\\u0120hug\": 16225, \"\\u0120107\": 16226, \"\\u0120Hence\": 16227, \"iots\": 16228, \"udeau\": 16229, \"\\u0120subsidies\": 16230, \"\\u0120routinely\": 16231, \"\\u0120Device\": 16232, \"itic\": 16233, \"\\u0120disgust\": 16234, \"lander\": 16235, \"\\u01201940\": 16236, \"\\u0120assignment\": 16237, \"\\u0120Besides\": 16238, \"wick\": 16239, \"\\u0120Dust\": 16240, \"usc\": 16241, \"structed\": 16242, \"111\": 16243, \"develop\": 16244, \"\\u0120fond\": 16245, \"\\u0120intersection\": 16246, \"\\u0120dignity\": 16247, \"\\u0120commissioner\": 16248, \"Without\": 16249, \"reach\": 16250, \"\\u0120cartoon\": 16251, \"\\u0120scales\": 16252, \"\\u00e3\\u0125\\u0143\": 16253, \"FIG\": 16254, \"\\u0120surveys\": 16255, \"\\u0120Indonesia\": 16256, \"\\u0120artwork\": 16257, \"\\u0120unch\": 16258, \"\\u0120cycling\": 16259, \"unct\": 16260, \"auer\": 16261, \"orate\": 16262, \"\\u0120Obviously\": 16263, \"\\u0120characterized\": 16264, \"feld\": 16265, \"\\u0120affirm\": 16266, \"\\u0120innings\": 16267, \"\\u0120\\u00e9\": 16268, \"\\u0120aliens\": 16269, \"\\u0120cloth\": 16270, \"etooth\": 16271, \"\\u0120Certain\": 16272, \"\\u00c2\\u00a7\": 16273, \"\\u0120digest\": 16274, \"know\": 16275, \"\\u0120XL\": 16276, \"\\u0120predictions\": 16277, \"\\u0120din\": 16278, \"WAR\": 16279, \"\\u0120aftermath\": 16280, \"Example\": 16281, \"\\u0120Success\": 16282, \"\\u0120Thr\": 16283, \"IGN\": 16284, \"\\u0120miner\": 16285, \"Bus\": 16286, \"\\u0120clarity\": 16287, \"heimer\": 16288, \"\\u0120OUT\": 16289, \"\\u0120Send\": 16290, \"\\u0120Circle\": 16291, \"\\u0120Diet\": 16292, \"\\u0120pronounced\": 16293, \"\\u0120creators\": 16294, \"\\u0120earthquake\": 16295, \"attery\": 16296, \"geons\": 16297, \"\\u0120od\": 16298, \"\\u0120laying\": 16299, \"orp\": 16300, \"Ult\": 16301, \"project\": 16302, \"\\u0120undermin\": 16303, \"\\u0120sequel\": 16304, \"Sam\": 16305, \"\\u0120Darkness\": 16306, \"\\u0120reception\": 16307, \"bull\": 16308, \"YS\": 16309, \"\\u0120Vir\": 16310, \"\\u0120sequences\": 16311, \"\\u0120Coin\": 16312, \"\\u0120outfit\": 16313, \"\\u0120Wait\": 16314, \"119\": 16315, \"\\u0120delivers\": 16316, \"......\": 16317, \"\\u0120blown\": 16318, \"\\u0120Esc\": 16319, \"\\u0120Math\": 16320, \"perm\": 16321, \"\\u0120Ul\": 16322, \"\\u0120glim\": 16323, \"\\u0120facial\": 16324, \"\\u0120greenhouse\": 16325, \"\\u0120tokens\": 16326, \"/-\": 16327, \"\\u0120Annual\": 16328, \"\\u0120ONE\": 16329, \"\\u0120teenage\": 16330, \"\\u0120Physical\": 16331, \"\\u0120Lang\": 16332, \"\\u0120Celt\": 16333, \"\\u0120sued\": 16334, \"ividually\": 16335, \"\\u0120patience\": 16336, \"chair\": 16337, \"regular\": 16338, \"\\u0120aug\": 16339, \"inv\": 16340, \"except\": 16341, \"\\u0120Lil\": 16342, \"\\u0120nest\": 16343, \"fd\": 16344, \"sum\": 16345, \"\\u0120Chase\": 16346, \"Russia\": 16347, \"\\u0120Jennifer\": 16348, \"\\u0120offseason\": 16349, \"Overall\": 16350, \"Fore\": 16351, \"\\u0120riot\": 16352, \"Aud\": 16353, \"former\": 16354, \"\\u0120defenders\": 16355, \"\\u0120CT\": 16356, \"iotic\": 16357, \"ribly\": 16358, \"\\u0120automated\": 16359, \"\\u0120penis\": 16360, \"\\u0120insist\": 16361, \"\\u0120diagram\": 16362, \"\\u0120SQL\": 16363, \"\\u0120Garc\": 16364, \"\\u0120witch\": 16365, \"client\": 16366, \"ierra\": 16367, \"ambers\": 16368, \"\\u0120recount\": 16369, \"far\": 16370, \"Very\": 16371, \"osterone\": 16372, \"\\u0120appreciated\": 16373, \"\\u0120Perfect\": 16374, \"Section\": 16375, \"\\u0120doses\": 16376, \"ocaust\": 16377, \"\\u0120costly\": 16378, \"\\u0120grams\": 16379, \"\\u0120Shi\": 16380, \"\\u0120wrestling\": 16381, \"\\u01201971\": 16382, \"\\u0120trophy\": 16383, \"\\u0120nerve\": 16384, \"\\u0120Kaz\": 16385, \"\\u0120Experience\": 16386, \"\\u0120pledged\": 16387, \"\\u0120playback\": 16388, \"\\u0120creativity\": 16389, \"bye\": 16390, \"\\u0120attackers\": 16391, \"\\u0120holders\": 16392, \"\\u0120Coach\": 16393, \"\\u0120PhD\": 16394, \"\\u0120transfers\": 16395, \"\\u0120colored\": 16396, \"\\u0120Hindu\": 16397, \"\\u0120drown\": 16398, \"\\u0120listened\": 16399, \"\\u0120WA\": 16400, \"iasm\": 16401, \"PO\": 16402, \"\\u0120appealing\": 16403, \"\\u0120disclosed\": 16404, \"\\u0120Chicken\": 16405, \"agging\": 16406, \"\\u0120pleaded\": 16407, \"\\u0120navigation\": 16408, \"\\u0120Returns\": 16409, \"\\u0120[[\": 16410, \"ROR\": 16411, \"EA\": 16412, \"\\u0120photographer\": 16413, \"\\u0120Rider\": 16414, \"ippers\": 16415, \"\\u0120slice\": 16416, \"\\u0120erect\": 16417, \"\\u0120hed\": 16418, \"issance\": 16419, \"\\u0120Vikings\": 16420, \"urious\": 16421, \"\\u0120appet\": 16422, \"oubtedly\": 16423, \"Child\": 16424, \"\\u0120authentic\": 16425, \"oos\": 16426, \"\\u0120Making\": 16427, \"\\u0120announcing\": 16428, \"\\u0120bod\": 16429, \"\\u0120meter\": 16430, \"\\u0120Nine\": 16431, \"\\u0120Rogue\": 16432, \"\\u0120workforce\": 16433, \"\\u0120renewed\": 16434, \"\\u0120organisations\": 16435, \"acs\": 16436, \"PLE\": 16437, \"Short\": 16438, \"\\u0120compounds\": 16439, \"\\u0120Visit\": 16440, \"\\u0120envelop\": 16441, \"earth\": 16442, \"\\u0120supportive\": 16443, \"ggle\": 16444, \"\\u0120Brussels\": 16445, \"\\u0120Guild\": 16446, \"Create\": 16447, \"REL\": 16448, \"\\u0120averaged\": 16449, \"\\u01201969\": 16450, \"riages\": 16451, \"\\u0120lengthy\": 16452, \"\\u0120forgot\": 16453, \"Okay\": 16454, \"\\u0120Erd\": 16455, \"\\u0120dealer\": 16456, \"\\u0120recession\": 16457, \"DD\": 16458, \"\\u0120desperately\": 16459, \"\\u0120hunger\": 16460, \"\\u0120sticks\": 16461, \"\\u0120mph\": 16462, \"\\u0120Faith\": 16463, \"\\u0120intentionally\": 16464, \"\\u0120demol\": 16465, \"ueller\": 16466, \"\\u0120Sale\": 16467, \"\\u0120debris\": 16468, \"spring\": 16469, \"\\u0120leap\": 16470, \">>>>\": 16471, \"\\u0120containers\": 16472, \"selling\": 16473, \"ranean\": 16474, \"attering\": 16475, \"\\u0120commented\": 16476, \"\\u0120CM\": 16477, \"onut\": 16478, \"\\u0120woods\": 16479, \"especially\": 16480, \"\\u0120organize\": 16481, \"ivic\": 16482, \"\\u0120Woods\": 16483, \"anga\": 16484, \"squ\": 16485, \"\\u0120maj\": 16486, \"amon\": 16487, \"\\u0120axis\": 16488, \"\\u01201974\": 16489, \"\\u0120Denmark\": 16490, \"\\u0120warrior\": 16491, \"\\u0120Pand\": 16492, \"\\u0120outlined\": 16493, \"\\u0120BO\": 16494, \"insula\": 16495, \"zilla\": 16496, \"ebook\": 16497, \"\\u0120dare\": 16498, \"\\u0120searched\": 16499, \"\\u0120navigate\": 16500, \"Sn\": 16501, \"writing\": 16502, \"\\u0120united\": 16503, \"Japan\": 16504, \"\\u0120Hebrew\": 16505, \"\\u0120flame\": 16506, \"\\u0120relies\": 16507, \"\\u0120catching\": 16508, \"\\u0120Sho\": 16509, \"\\u0120imprisonment\": 16510, \"\\u0120pockets\": 16511, \"\\u0120closure\": 16512, \"\\u0120Fam\": 16513, \"tim\": 16514, \"adequ\": 16515, \"Activity\": 16516, \"\\u0120recruiting\": 16517, \"\\u0120WATCH\": 16518, \"\\u0120Argentina\": 16519, \"dest\": 16520, \"\\u0120apologize\": 16521, \"oro\": 16522, \"\\u0120lacks\": 16523, \"\\u0120tuned\": 16524, \"\\u0120Griffin\": 16525, \"\\u0120infamous\": 16526, \"\\u0120celebrity\": 16527, \"sson\": 16528, \"\\u0120----------------------------------------------------------------\": 16529, \"\\u0120Isis\": 16530, \"\\u0120Display\": 16531, \"\\u0120credibility\": 16532, \"\\u0120economies\": 16533, \"\\u0120headline\": 16534, \"\\u0120Cowboys\": 16535, \"\\u0120indef\": 16536, \"\\u0120lately\": 16537, \"\\u0120incentives\": 16538, \"button\": 16539, \"\\u0120Mob\": 16540, \"Aut\": 16541, \"\\u0120resigned\": 16542, \"\\u0120Om\": 16543, \"camp\": 16544, \"\\u0120profiles\": 16545, \"\\u0120schemes\": 16546, \"olphins\": 16547, \"ayed\": 16548, \"Clinton\": 16549, \"enh\": 16550, \"\\u0120Yahoo\": 16551, \"\\u0120abst\": 16552, \"\\u0120ank\": 16553, \"suits\": 16554, \"\\u0120wished\": 16555, \"\\u0120Marco\": 16556, \"udden\": 16557, \"\\u0120sphere\": 16558, \"\\u0120Bishop\": 16559, \"\\u0120incorporated\": 16560, \"\\u0120Plant\": 16561, \"114\": 16562, \"\\u0120hated\": 16563, \"pic\": 16564, \"\\u0120donate\": 16565, \"\\u0120lined\": 16566, \"\\u0120beans\": 16567, \"\\u0120stealing\": 16568, \"\\u0120costume\": 16569, \"\\u0120sheriff\": 16570, \"\\u0120forty\": 16571, \"\\u0120intact\": 16572, \"\\u0120adapted\": 16573, \"\\u0120travelling\": 16574, \"bart\": 16575, \"\\u0120nicely\": 16576, \"\\u0120dried\": 16577, \"\\u0120scal\": 16578, \"osity\": 16579, \"NOTE\": 16580, \"\\u0120Bh\": 16581, \"\\u0120Broncos\": 16582, \"\\u0120Ign\": 16583, \"\\u0120intimate\": 16584, \"\\u0120chemistry\": 16585, \"\\u0120optimal\": 16586, \"Deb\": 16587, \"\\u0120Generation\": 16588, \"\\u0120],\": 16589, \"ichi\": 16590, \"\\u0120Wii\": 16591, \"\\u0120YOUR\": 16592, \"ventions\": 16593, \"Write\": 16594, \"\\u0120popul\": 16595, \"unning\": 16596, \"\\u0120Wor\": 16597, \"Vol\": 16598, \"\\u0120queen\": 16599, \"heads\": 16600, \"KK\": 16601, \"\\u0120analyze\": 16602, \"opic\": 16603, \"earchers\": 16604, \"\\u0120dot\": 16605, \"legraph\": 16606, \"astically\": 16607, \"\\u0120upgrades\": 16608, \"\\u0120cares\": 16609, \"\\u0120extending\": 16610, \"\\u0120freeze\": 16611, \"\\u0120inability\": 16612, \"\\u0120organs\": 16613, \"\\u0120pretend\": 16614, \"\\u0120outlet\": 16615, \"113\": 16616, \"olan\": 16617, \"\\u0120Mall\": 16618, \"uling\": 16619, \"talk\": 16620, \"\\u0120expressing\": 16621, \"\\u0120Always\": 16622, \"\\u0120Begin\": 16623, \"files\": 16624, \"\\u0120licenses\": 16625, \"%%\": 16626, \"\\u0120Mitt\": 16627, \"\\u0120filters\": 16628, \"\\u0120Milwaukee\": 16629, \"GN\": 16630, \"\\u0120unfold\": 16631, \"Mo\": 16632, \"\\u0120nutrition\": 16633, \"ppo\": 16634, \"Bo\": 16635, \"\\u0120founding\": 16636, \"\\u0120undermine\": 16637, \"\\u0120easiest\": 16638, \"\\u0120Czech\": 16639, \"\\u0120Mack\": 16640, \"\\u0120sexuality\": 16641, \"\\u0120Nixon\": 16642, \"Win\": 16643, \"\\u0120Arn\": 16644, \"\\u0120Kin\": 16645, \"\\u00e3\\u0124\\u00a3\": 16646, \"icer\": 16647, \"\\u0120fortun\": 16648, \"\\u0120surfaces\": 16649, \"aghd\": 16650, \"\\u0120carriers\": 16651, \"\\u0120PART\": 16652, \"\\u0120Tib\": 16653, \"\\u0120interval\": 16654, \"\\u0120frustrating\": 16655, \"\\u0120Ship\": 16656, \"\\u0120Armed\": 16657, \"ffe\": 16658, \"\\u0120boats\": 16659, \"\\u0120Abraham\": 16660, \"inis\": 16661, \"\\u0120suited\": 16662, \"thread\": 16663, \"iov\": 16664, \"abul\": 16665, \"\\u0120Venezuela\": 16666, \"\\u0120tom\": 16667, \"super\": 16668, \"\\u0120castle\": 16669, \"although\": 16670, \"ioxide\": 16671, \"eches\": 16672, \"\\u0120evolutionary\": 16673, \"\\u0120negotiate\": 16674, \"\\u0120confronted\": 16675, \"Remember\": 16676, \"\\u0120170\": 16677, \"Such\": 16678, \"\\u0120911\": 16679, \"mult\": 16680, \"\\u0120Abyss\": 16681, \"urry\": 16682, \"kees\": 16683, \"spec\": 16684, \"\\u0120Barbara\": 16685, \"\\u0120belonging\": 16686, \"\\u0120villain\": 16687, \"istani\": 16688, \"\\u0120accountable\": 16689, \"\\u0120portions\": 16690, \"\\u0120Decl\": 16691, \"Ur\": 16692, \"\\u0120Kate\": 16693, \"gre\": 16694, \"\\u0120magazines\": 16695, \"UCK\": 16696, \"\\u0120regulate\": 16697, \"omon\": 16698, \"\\u0120Almost\": 16699, \"\\u0120overview\": 16700, \"\\u0120scram\": 16701, \"\\u0120loot\": 16702, \"\\u0120Fitz\": 16703, \"\\u0120characteristic\": 16704, \"\\u0120Snake\": 16705, \"say\": 16706, \"\\u0120Rico\": 16707, \"\\u0120trait\": 16708, \"\\u0120Joined\": 16709, \"aucus\": 16710, \"\\u0120adaptation\": 16711, \"\\u0120Airlines\": 16712, \"\\u0120archae\": 16713, \"\\u0120Ide\": 16714, \"\\u0120bikes\": 16715, \"\\u0120literary\": 16716, \"\\u0120influences\": 16717, \"\\u0120Used\": 16718, \"Creat\": 16719, \"\\u0120plea\": 16720, \"\\u0120Defence\": 16721, \"\\u0120Assass\": 16722, \"\\u0120pond\": 16723, \"ULT\": 16724, \")\\\"\": 16725, \"\\u0120evaluated\": 16726, \"\\u0120obtaining\": 16727, \"\\u0120demographic\": 16728, \"\\u0120vigil\": 16729, \"aley\": 16730, \"\\u0120spouse\": 16731, \"\\u0120Seahawks\": 16732, \"respons\": 16733, \"\\u0120Belt\": 16734, \"umatic\": 16735, \"\\u0120rises\": 16736, \"runner\": 16737, \"\\u0120Michelle\": 16738, \"\\u0120potent\": 16739, \"race\": 16740, \"\\u0120PAC\": 16741, \"Find\": 16742, \"olesterol\": 16743, \"ISS\": 16744, \"\\u0120Introduced\": 16745, \"resses\": 16746, \"ignment\": 16747, \"Os\": 16748, \"\\u0120Tu\": 16749, \"\\u0120Dex\": 16750, \"icides\": 16751, \"\\u0120sparked\": 16752, \"\\u0120Laura\": 16753, \"\\u0120Bryant\": 16754, \"\\u0120smiling\": 16755, \"\\u0120Nexus\": 16756, \"\\u0120defendants\": 16757, \"\\u0120Catal\": 16758, \"\\u0120dishes\": 16759, \"shaped\": 16760, \"\\u0120prolong\": 16761, \"mt\": 16762, \"($\": 16763, \"\\u00e3\\u0122\\u0124\": 16764, \"\\u0120calculations\": 16765, \"\\u0120Same\": 16766, \"\\u0120piv\": 16767, \"HH\": 16768, \"\\u0120cancelled\": 16769, \"\\u0120grin\": 16770, \"\\u0120territories\": 16771, \"istically\": 16772, \"Come\": 16773, \"\\u0120Parent\": 16774, \"Project\": 16775, \"\\u0120neglig\": 16776, \"\\u0120Privacy\": 16777, \"\\u0120ammo\": 16778, \"LECT\": 16779, \"olutely\": 16780, \"\\u0120Epic\": 16781, \"\\u0120misunder\": 16782, \"wal\": 16783, \"April\": 16784, \"mos\": 16785, \"pathy\": 16786, \"\\u0120Carson\": 16787, \"\\u0120albums\": 16788, \"\\u0120Easy\": 16789, \"\\u0120pistol\": 16790, \"<<\": 16791, \"\\u0120\\\\(\": 16792, \"target\": 16793, \"help\": 16794, \"\\u0120interpre\": 16795, \"conscious\": 16796, \"\\u0120Housing\": 16797, \"\\u0120Joint\": 16798, \"127\": 16799, \"\\u0120beers\": 16800, \"science\": 16801, \"\\u0120Firefox\": 16802, \"effective\": 16803, \"\\u0120Cabin\": 16804, \"\\u0120Okay\": 16805, \"\\u0120Applic\": 16806, \"\\u0120spacecraft\": 16807, \"\\u0120SR\": 16808, \"vet\": 16809, \"\\u0120Strange\": 16810, \"SB\": 16811, \"\\u0120corps\": 16812, \"iberal\": 16813, \"efficient\": 16814, \"\\u0120prevalence\": 16815, \"\\u0120economists\": 16816, \"118\": 16817, \"Thread\": 16818, \"ordable\": 16819, \"ODE\": 16820, \"\\u0120Cant\": 16821, \"=-=-\": 16822, \"ifiable\": 16823, \"\\u0120Around\": 16824, \"\\u0120pole\": 16825, \"\\u0120willingness\": 16826, \"CLA\": 16827, \"\\u0120Kid\": 16828, \"\\u0120complement\": 16829, \"\\u0120scattered\": 16830, \"\\u0120inmates\": 16831, \"\\u0120bleeding\": 16832, \"every\": 16833, \"\\u0120queue\": 16834, \"\\u0120Train\": 16835, \"\\u0120hij\": 16836, \"\\u0120melee\": 16837, \"pleted\": 16838, \"\\u0120digit\": 16839, \"\\u0120gem\": 16840, \"official\": 16841, \"\\u0120lifting\": 16842, \"\\u00d0\\u00b5\": 16843, \"Requ\": 16844, \"itutes\": 16845, \"\\u0120packaging\": 16846, \"\\u0120Workers\": 16847, \"hran\": 16848, \"\\u0120Lebanon\": 16849, \"olesc\": 16850, \"\\u0120punished\": 16851, \"\\u0120Juan\": 16852, \"\\u0120jam\": 16853, \"\\u0120Document\": 16854, \"\\u0120mapping\": 16855, \"icates\": 16856, \"\\u0120inevitably\": 16857, \"\\u0120vanilla\": 16858, \"\\u0120Ton\": 16859, \"\\u0120watches\": 16860, \"\\u0120leagues\": 16861, \"\\u0120initiated\": 16862, \"degree\": 16863, \"portion\": 16864, \"\\u0120recalls\": 16865, \"\\u0120ruin\": 16866, \"\\u0120melt\": 16867, \"IAN\": 16868, \"\\u0120hem\": 16869, \"Exp\": 16870, \"\\u0120baking\": 16871, \"\\u0120Colomb\": 16872, \"atible\": 16873, \"\\u0120radius\": 16874, \"plug\": 16875, \"\\u0120IF\": 16876, \"etically\": 16877, \"\\u0120fict\": 16878, \"HER\": 16879, \"\\u0120Tap\": 16880, \"atinum\": 16881, \"\\u0120ink\": 16882, \"\\u0120coh\": 16883, \"\\u0120Wizard\": 16884, \"both\": 16885, \"tex\": 16886, \"\\u0120spends\": 16887, \"\\u0120Currently\": 16888, \"\\u0120Pit\": 16889, \"\\u0120neurons\": 16890, \"ignt\": 16891, \"\\u0120rall\": 16892, \"\\u0120buses\": 16893, \"building\": 16894, \"\\u0120adjustments\": 16895, \"\\u0120cried\": 16896, \"iblical\": 16897, \"atted\": 16898, \"\\u0120Zion\": 16899, \"\\u0120Matter\": 16900, \"\\u0120meditation\": 16901, \"\\u0120Dennis\": 16902, \"\\u0120ours\": 16903, \"\\u0120Tab\": 16904, \"\\u0120rankings\": 16905, \"ortal\": 16906, \"\\u0120advers\": 16907, \"\\u0120surrender\": 16908, \"\\u0120Gob\": 16909, \"cium\": 16910, \"omas\": 16911, \"imeter\": 16912, \"\\u0120multiplayer\": 16913, \"\\u0120heroin\": 16914, \"\\u0120optimistic\": 16915, \"\\u0120indicator\": 16916, \"\\u0120Brig\": 16917, \"\\u0120grocery\": 16918, \"\\u0120applicant\": 16919, \"\\u0120Rocket\": 16920, \"vid\": 16921, \"Exception\": 16922, \"pent\": 16923, \"\\u0120organizing\": 16924, \"\\u0120encounters\": 16925, \"\\u0120TOD\": 16926, \"\\u0120jewel\": 16927, \"Save\": 16928, \"\\u0120Christie\": 16929, \"\\u0120heating\": 16930, \"\\u0120lazy\": 16931, \"\\u0120CP\": 16932, \"\\u0120cousin\": 16933, \"Config\": 16934, \"\\u0120regener\": 16935, \"\\u0120nearest\": 16936, \"\\u0120achieving\": 16937, \"ENS\": 16938, \"throw\": 16939, \"\\u0120Richmond\": 16940, \"antle\": 16941, \"2002\": 16942, \"\\u0120anten\": 16943, \"bird\": 16944, \"133\": 16945, \"\\u0120narc\": 16946, \"raint\": 16947, \"unny\": 16948, \"\\u0120Hispanic\": 16949, \"ournaments\": 16950, \"\\u0120prophe\": 16951, \"\\u0120Thailand\": 16952, \"\\u0120Ti\": 16953, \"\\u0120injection\": 16954, \"\\u0120inherit\": 16955, \"ravis\": 16956, \"\\u0120medi\": 16957, \"\\u0120whoever\": 16958, \"\\u0120DEBUG\": 16959, \"GP\": 16960, \"\\u0120Hud\": 16961, \"Card\": 16962, \"prom\": 16963, \"\\u0120por\": 16964, \"\\u0120overhead\": 16965, \"Law\": 16966, \"\\u0120violate\": 16967, \"\\u0120heated\": 16968, \"\\u0120descriptions\": 16969, \"\\u0120achievements\": 16970, \"\\u0120Beer\": 16971, \"\\u0120Quant\": 16972, \"Was\": 16973, \"\\u0120eighth\": 16974, \"\\u0120Iv\": 16975, \"\\u0120specialized\": 16976, \"UPDATE\": 16977, \"\\u0120Delta\": 16978, \"Pop\": 16979, \"Jul\": 16980, \"\\u0120Ask\": 16981, \"ophy\": 16982, \"\\u0120newsletters\": 16983, \"\\u0120Tool\": 16984, \"\\u0120gard\": 16985, \"\\u0120Confeder\": 16986, \"\\u0120GMT\": 16987, \"\\u0120Abbott\": 16988, \"\\u0120immunity\": 16989, \"\\u0120VM\": 16990, \"Islam\": 16991, \"\\u0120implicit\": 16992, \"wd\": 16993, \"\\u01201944\": 16994, \"ravity\": 16995, \"ometric\": 16996, \"\\u0120surviving\": 16997, \"urai\": 16998, \"\\u0120Prison\": 16999, \"\\u0120rust\": 17000, \"\\u0120Sketch\": 17001, \"\\u0120bees\": 17002, \"\\u0120Theory\": 17003, \"\\u0120merit\": 17004, \"Tex\": 17005, \"chat\": 17006, \"\\u0120mim\": 17007, \"\\u0120paste\": 17008, \"\\u0120Koch\": 17009, \"\\u0120ignorance\": 17010, \"\\u0120Shoot\": 17011, \"\\u0120basement\": 17012, \"United\": 17013, \"\\u0120Advis\": 17014, \"height\": 17015, \"\\u0120foster\": 17016, \"\\u0120detain\": 17017, \"information\": 17018, \"\\u0120neural\": 17019, \"';\": 17020, \"\\u0120proves\": 17021, \"allery\": 17022, \"\\u0120invitation\": 17023, \"umbers\": 17024, \"\\u0120cattle\": 17025, \"\\u0120bicycle\": 17026, \"zi\": 17027, \"\\u0120consultant\": 17028, \"\\u0120apology\": 17029, \"\\u0120Tiger\": 17030, \"\\u0120123\": 17031, \"999\": 17032, \"\\u0120individually\": 17033, \"rt\": 17034, \"igion\": 17035, \"\\u0120Brazilian\": 17036, \"\\u0120disturb\": 17037, \"\\u0120entrepreneurs\": 17038, \"\\u0120forests\": 17039, \"cerpt\": 17040, \"plates\": 17041, \"pher\": 17042, \"clipse\": 17043, \"\\u0120twitter\": 17044, \"\\u0120acids\": 17045, \"ographical\": 17046, \"hum\": 17047, \"\\u0120Bald\": 17048, \"ifully\": 17049, \"\\u0120compiler\": 17050, \"\\u0120DA\": 17051, \"\\u0120donor\": 17052, \"asi\": 17053, \"\\u0120tribal\": 17054, \"lash\": 17055, \"\\u0120Config\": 17056, \"\\u0120applicants\": 17057, \"\\u0120salaries\": 17058, \"135\": 17059, \"Putin\": 17060, \"\\u0120Focus\": 17061, \"irs\": 17062, \"\\u0120misconduct\": 17063, \"\\u0120Haz\": 17064, \"\\u0120eaten\": 17065, \"Mobile\": 17066, \"Muslim\": 17067, \"\\u0120Marcus\": 17068, \"viol\": 17069, \"\\u0120favorable\": 17070, \"\\u0120stub\": 17071, \"adin\": 17072, \"\\u0120Hob\": 17073, \"\\u0120faithful\": 17074, \"\\u0120electronics\": 17075, \"\\u0120vacuum\": 17076, \"wait\": 17077, \"backed\": 17078, \"economic\": 17079, \"dist\": 17080, \"\\u0120tenure\": 17081, \"\\u0120sincere\": 17082, \"\\u0120Together\": 17083, \"\\u0120Wave\": 17084, \"\\u0120progression\": 17085, \"\\u0120denying\": 17086, \"\\u0120distress\": 17087, \"braska\": 17088, \"third\": 17089, \"\\u0120mixing\": 17090, \"\\u0120colonial\": 17091, \"\\u0120privately\": 17092, \"\\u0120unrest\": 17093, \"aternity\": 17094, \"\\u0120premises\": 17095, \"anti\": 17096, \"gregation\": 17097, \"\\u0120licence\": 17098, \"\\u0120Hind\": 17099, \"\\u0120Samuel\": 17100, \"\\u0120convincing\": 17101, \"\\u0120Ace\": 17102, \"\\u0120Rust\": 17103, \"\\u0120Netanyahu\": 17104, \"\\u0120handles\": 17105, \"\\u0120Patch\": 17106, \"oriented\": 17107, \"aho\": 17108, \"\\u0120Gonz\": 17109, \"\\u0120hackers\": 17110, \"claimer\": 17111, \"\\u0120customs\": 17112, \"\\u0120Gran\": 17113, \"fighters\": 17114, \"\\u0120luc\": 17115, \"\\u0120manuscript\": 17116, \"arenthood\": 17117, \"\\u0120devil\": 17118, \"\\u0120warriors\": 17119, \"\\u0120offenders\": 17120, \"William\": 17121, \"\\u0120holidays\": 17122, \"\\u0120nightmare\": 17123, \"\\u0120lever\": 17124, \"ifferent\": 17125, \"Stat\": 17126, \"\\u0120exhibition\": 17127, \"puted\": 17128, \"\\u0120Pure\": 17129, \"\\u0120alpha\": 17130, \"\\u0120enthusiasm\": 17131, \"\\u0120Representatives\": 17132, \"EAR\": 17133, \"\\u0120Typ\": 17134, \"\\u0120wheat\": 17135, \"\\u0120Alf\": 17136, \"\\u0120correction\": 17137, \"\\u0120evangel\": 17138, \"ATT\": 17139, \"Miss\": 17140, \"\\u0120soup\": 17141, \"\\u0120implied\": 17142, \"param\": 17143, \"\\u0120sexy\": 17144, \"\\u0120Lux\": 17145, \"\\u0120republic\": 17146, \"patch\": 17147, \"ablish\": 17148, \"\\u0120icons\": 17149, \"\\u0120fathers\": 17150, \"\\u0120GET\": 17151, \"\\u0120Carib\": 17152, \"\\u0120regulated\": 17153, \"\\u0120Cohen\": 17154, \"\\u0120Bobby\": 17155, \"\\u0120ner\": 17156, \"\\u0120bent\": 17157, \"ventory\": 17158, \"\\u0120Along\": 17159, \"\\u0120EST\": 17160, \"\\u0120Wallace\": 17161, \"\\u0120murders\": 17162, \"rise\": 17163, \"kell\": 17164, \"\\u0120Commonwealth\": 17165, \"\\u0120nasty\": 17166, \"eta\": 17167, \"\\u0120MIT\": 17168, \"\\u0120administered\": 17169, \"\\u0120genuinely\": 17170, \"Editor\": 17171, \"nick\": 17172, \"\\u0120hydro\": 17173, \"********************************\": 17174, \"\\u0120Ble\": 17175, \"\\u0120fines\": 17176, \"\\u0120gorge\": 17177, \"ausible\": 17178, \"rh\": 17179, \"\\u0120apple\": 17180, \"mentioned\": 17181, \"\\u0120rope\": 17182, \"otyp\": 17183, \"HR\": 17184, \"\\u0120disappointing\": 17185, \"\\u0120cage\": 17186, \"nik\": 17187, \"\\u0120doubts\": 17188, \"\\u0120FREE\": 17189, \"prints\": 17190, \"\\u0120MUST\": 17191, \"\\u0120vendors\": 17192, \"\\u0120Inqu\": 17193, \"\\u0120liberals\": 17194, \"\\u0120contractor\": 17195, \"\\u0120upside\": 17196, \"children\": 17197, \"\\u0120tricky\": 17198, \"\\u0120regulators\": 17199, \"charged\": 17200, \"liter\": 17201, \"\\u0120***\": 17202, \"\\u0120rebell\": 17203, \"lang\": 17204, \"\\u0120locals\": 17205, \"\\u0120physicians\": 17206, \"\\u0120hey\": 17207, \"arse\": 17208, \"tm\": 17209, \"\\u0120Lex\": 17210, \"\\u0120behavioral\": 17211, \"successful\": 17212, \"FX\": 17213, \"\\u0120brick\": 17214, \"ovic\": 17215, \"\\u0120conform\": 17216, \"\\u0120reviewing\": 17217, \"\\u0120insights\": 17218, \"\\u0120biology\": 17219, \"\\u0120Remove\": 17220, \"\\u0120Extra\": 17221, \"\\u0120committing\": 17222, \"induced\": 17223, \"ignty\": 17224, \"igm\": 17225, \"\\u0120atomic\": 17226, \"Common\": 17227, \"\\u0120EM\": 17228, \"\\u0120Pere\": 17229, \"\\u0120Items\": 17230, \"eh\": 17231, \"\\u0120preserved\": 17232, \"\\u0120Hood\": 17233, \"\\u0120prisoner\": 17234, \"\\u0120bankruptcy\": 17235, \"\\u0120gren\": 17236, \"ushes\": 17237, \"\\u0120exploitation\": 17238, \"\\u0120signatures\": 17239, \"\\u0120finan\": 17240, \"],\\\"\": 17241, \"\\u0120MR\": 17242, \"\\u0120meg\": 17243, \"remlin\": 17244, \"\\u0120musicians\": 17245, \"\\u0120selecting\": 17246, \"\\u0120examining\": 17247, \"INK\": 17248, \"lated\": 17249, \"Hi\": 17250, \"\\u0120artic\": 17251, \"\\u0120pets\": 17252, \"\\u0120impair\": 17253, \"\\u0120MAN\": 17254, \"\\u0120tablets\": 17255, \"include\": 17256, \"Range\": 17257, \"\\u0120caut\": 17258, \"\\u0120logs\": 17259, \"\\u0120mounting\": 17260, \"\\u0120unaware\": 17261, \"\\u0120dynamics\": 17262, \"\\u0120Palestine\": 17263, \"\\u0120Quarter\": 17264, \"\\u0120Purple\": 17265, \"\\u0120ma\": 17266, \"\\u0120Import\": 17267, \"\\u0120collections\": 17268, \"ciation\": 17269, \"\\u0120successor\": 17270, \"\\u0120clone\": 17271, \"\\u0120aiming\": 17272, \"\\u0120possessed\": 17273, \"\\u0120sticking\": 17274, \"\\u0120shaking\": 17275, \"\\u0120locate\": 17276, \"\\u0120Hockey\": 17277, \"Turn\": 17278, \"170\": 17279, \"\\u0120fifteen\": 17280, \"\\u0120Harrison\": 17281, \"\\u0120continuously\": 17282, \"\\u0120TC\": 17283, \"\\u0120Valent\": 17284, \"\\u0120Rescue\": 17285, \"\\u0120bypass\": 17286, \"amount\": 17287, \"\\u0120mast\": 17288, \"\\u0120protects\": 17289, \"\\u0120artistic\": 17290, \"\\u0120sometime\": 17291, \"\\u0120shoe\": 17292, \"\\u0120shouted\": 17293, \"ificant\": 17294, \"etitive\": 17295, \"\\u0120Register\": 17296, \"\\u0120Jin\": 17297, \"\\u0120concentrated\": 17298, \"lington\": 17299, \"onies\": 17300, \"\\u0120generator\": 17301, \"yrim\": 17302, \"\\u0120Armen\": 17303, \"\\u0120clearing\": 17304, \"ido\": 17305, \"\\u0120TW\": 17306, \"alph\": 17307, \"\\u0120ladies\": 17308, \"Hard\": 17309, \"\\u0120dialog\": 17310, \"\\u0120inputs\": 17311, \"\\u00e6\\u013e\": 17312, \"\\u0120poses\": 17313, \"\\u0120slots\": 17314, \"\\u0120Premium\": 17315, \"\\u0120leaks\": 17316, \"\\u0120bosses\": 17317, \"\\u0120113\": 17318, \"course\": 17319, \"Acc\": 17320, \"\\u0120Newton\": 17321, \"\\u0120Austria\": 17322, \"\\u0120Mage\": 17323, \"\\u0120teaches\": 17324, \"abad\": 17325, \"\\u0120wears\": 17326, \"\\u0120cyl\": 17327, \"\\u0120curse\": 17328, \"\\u0120Sales\": 17329, \"\\u0120Wings\": 17330, \"\\u0120psy\": 17331, \"\\u0120gaps\": 17332, \"\\u0120Iceland\": 17333, \"\\u0120Pinterest\": 17334, \"\\u0120landlord\": 17335, \"\\u0120definitions\": 17336, \"\\u0120Ker\": 17337, \"\\u0120sufficiently\": 17338, \"\\u0120Pence\": 17339, \"\\u0120Architect\": 17340, \"\\u0120surpass\": 17341, \"\\u0120114\": 17342, \"\\u0120superhero\": 17343, \"\\u0120Disease\": 17344, \"\\u0120priests\": 17345, \"\\u0120Culture\": 17346, \"\\u0120definitive\": 17347, \"\\u0120secretly\": 17348, \"\\u0120Dance\": 17349, \"install\": 17350, \"chief\": 17351, \"\\u0120Jessica\": 17352, \"Would\": 17353, \"Updated\": 17354, \"\\u0120locker\": 17355, \"\\u0120Kay\": 17356, \"\\u0120memorial\": 17357, \"\\u00e8\\u00a6\": 17358, \"fat\": 17359, \"\\u0120disgu\": 17360, \"\\u0120flavors\": 17361, \"\\u0120Baseball\": 17362, \"\\u0120Resistance\": 17363, \"\\u0120kicks\": 17364, \"\\u0120env\": 17365, \"\\u0120teenagers\": 17366, \"Dark\": 17367, \"\\u0120CAR\": 17368, \"\\u0120halt\": 17369, \"\\u0120LG\": 17370, \"\\u0120Gabriel\": 17371, \"\\u0120fever\": 17372, \"\\u0120satur\": 17373, \"\\u0120mall\": 17374, \"\\u0120affiliate\": 17375, \"\\u0120Sleep\": 17376, \"\\u0120Specific\": 17377, \"\\u0120Vel\": 17378, \"\\u0120jar\": 17379, \"\\u0120Sacred\": 17380, \"\\u0120Edwards\": 17381, \"\\u0120ACL\": 17382, \"\\u0120retained\": 17383, \"\\u0120Giant\": 17384, \"\\u0120limitation\": 17385, \"inces\": 17386, \"\\u0120refusal\": 17387, \"\\u0120Tale\": 17388, \"\\u0120Butler\": 17389, \"\\u0120accidents\": 17390, \"\\u0120CSS\": 17391, \"\\u0120imported\": 17392, \"\\u0120Copy\": 17393, \"\\u00ce\\u00b1\": 17394, \"ERT\": 17395, \"zel\": 17396, \"\\u0120divisions\": 17397, \"hots\": 17398, \"\\u0120Alb\": 17399, \"\\u0120DS\": 17400, \"Loader\": 17401, \"Washington\": 17402, \"atisf\": 17403, \"\\u0120Creative\": 17404, \"\\\\.\": 17405, \"\\u0120Autom\": 17406, \"redict\": 17407, \"\\u0120receptor\": 17408, \"\\u0120Carlos\": 17409, \"Method\": 17410, \"oka\": 17411, \"\\u0120malicious\": 17412, \"\\u0120stepping\": 17413, \",[\": 17414, \"\\u0120Dad\": 17415, \"\\u0120attraction\": 17416, \"\\u0120Effects\": 17417, \"\\u0120Pirate\": 17418, \"\\u0120Cer\": 17419, \"\\u0120Industry\": 17420, \"\\u0120Rud\": 17421, \"\\u0120charter\": 17422, \"\\u0120dining\": 17423, \"\\u0120insists\": 17424, \"\\u0120configure\": 17425, \"\\u0120(#\": 17426, \"\\u0120Simple\": 17427, \"\\u0120Scroll\": 17428, \"UTC\": 17429, \"175\": 17430, \"\\u0120Kon\": 17431, \"\\u0120marketplace\": 17432, \"\\u0120\\u00e3\\u0124\": 17433, \"\\u0120refres\": 17434, \"\\u0120gates\": 17435, \"erred\": 17436, \"\\u0120Pod\": 17437, \"\\u0120behave\": 17438, \"Frank\": 17439, \"node\": 17440, \"\\u0120endorsed\": 17441, \"hett\": 17442, \"asive\": 17443, \"\\u0120Homeland\": 17444, \"\\u0120rides\": 17445, \"\\u0120Leave\": 17446, \"erness\": 17447, \"\\u0120flooding\": 17448, \"AFP\": 17449, \"\\u0120risen\": 17450, \"\\u0120continually\": 17451, \"\\u0120unanim\": 17452, \"\\u0120Contract\": 17453, \"\\u0120Pas\": 17454, \"\\u0120guided\": 17455, \"\\u0120Chile\": 17456, \"bd\": 17457, \"\\u0120succ\": 17458, \"ptic\": 17459, \"\\u0120committees\": 17460, \"\\u0120Luther\": 17461, \"\\u0120Anyone\": 17462, \"\\u0120sab\": 17463, \"124\": 17464, \"\\u0120pixel\": 17465, \"\\u0120Bak\": 17466, \"\\u0120Tag\": 17467, \"\\u0120Bennett\": 17468, \"Enter\": 17469, \"small\": 17470, \"\\u0120Presidential\": 17471, \"\\u0120pul\": 17472, \"\\u0120contrace\": 17473, \"archive\": 17474, \"\\u0120coastal\": 17475, \"\\u0120Kids\": 17476, \"192\": 17477, \"\\u00e2\\u0122\\u00b2\": 17478, \"icky\": 17479, \"INGTON\": 17480, \"\\u0120wolf\": 17481, \"\\u0120Stalin\": 17482, \"Tur\": 17483, \"idget\": 17484, \"amas\": 17485, \"\\u0120Unless\": 17486, \"\\u0120sponsor\": 17487, \"\\u0120morph\": 17488, \"\\u0120Choose\": 17489, \"\\u0120runner\": 17490, \"\\u0120unbel\": 17491, \"\\u0120mud\": 17492, \"\\u0120Mana\": 17493, \"\\u0120dubbed\": 17494, \"\\u0120godd\": 17495, \"urers\": 17496, \"window\": 17497, \"\\u0120relied\": 17498, \"\\u0120celebrating\": 17499, \"osc\": 17500, \"\\u0120135\": 17501, \"\\u0120lobbying\": 17502, \"\\u0120incomplete\": 17503, \"\\u0120restriction\": 17504, \"\\u0120incap\": 17505, \"itus\": 17506, \"\\u0120expectation\": 17507, \"\\u0120Apollo\": 17508, \"\\u0120intens\": 17509, \"\\u0120sync\": 17510, \"GH\": 17511, \"\\u0120manipulation\": 17512, \"BY\": 17513, \"\\u0120spear\": 17514, \"\\u0120breasts\": 17515, \"\\u0120volcan\": 17516, \"ilia\": 17517, \"Material\": 17518, \"\\u0120formats\": 17519, \"\\u0120Bast\": 17520, \"\\u0120parliamentary\": 17521, \"\\u0120snake\": 17522, \"\\u0120servants\": 17523, \"\\u0120Trudeau\": 17524, \"\\u0120Grim\": 17525, \"\\u0120Arabic\": 17526, \"\\u0120SCP\": 17527, \"\\u0120Boys\": 17528, \"station\": 17529, \"\\u0120prospective\": 17530, \"orde\": 17531, \"initialized\": 17532, \"\\u0120bored\": 17533, \"ABLE\": 17534, \"\\u0120accessed\": 17535, \"\\u0120taxi\": 17536, \"\\u0120Shell\": 17537, \"aiden\": 17538, \"ursed\": 17539, \"inates\": 17540, \"\\u0120Insurance\": 17541, \"\\u0120Pete\": 17542, \"September\": 17543, \"650\": 17544, \"\\u0120adventures\": 17545, \"\\u0120Cover\": 17546, \"\\u0120tribute\": 17547, \"\\u0120sketch\": 17548, \"\\u0120empower\": 17549, \"\\u0120\\u00d8\": 17550, \"\\u0120Glenn\": 17551, \"\\u0120Daw\": 17552, \"=\\\\\\\"\": 17553, \"\\u0120Politics\": 17554, \"\\u0120guides\": 17555, \"\\u0120dioxide\": 17556, \"\\u0120Gore\": 17557, \"\\u0120Bright\": 17558, \"\\u0120Sierra\": 17559, \"\\u0120valued\": 17560, \"cond\": 17561, \"\\u0120pointer\": 17562, \"Select\": 17563, \"\\u0120risky\": 17564, \"\\u0120absorb\": 17565, \"images\": 17566, \"\\u0120refuses\": 17567, \"\\u0120bonuses\": 17568, \"___\": 17569, \"\\u0120hilar\": 17570, \"\\u0120Features\": 17571, \"220\": 17572, \"\\u0120Collector\": 17573, \"Foot\": 17574, \"\\u01201964\": 17575, \"culus\": 17576, \"\\u0120dawn\": 17577, \"\\u0120workout\": 17578, \"\\u0120LO\": 17579, \"\\u0120philosophical\": 17580, \"\\u0120Sandy\": 17581, \"\\u0120Youth\": 17582, \"\\u0120liable\": 17583, \"Af\": 17584, \"blue\": 17585, \"\\u0120overturn\": 17586, \"lessness\": 17587, \"\\u0120Tribune\": 17588, \"\\u0120Ing\": 17589, \"\\u0120factories\": 17590, \"\\u0120catches\": 17591, \"\\u0120prone\": 17592, \"\\u0120matrix\": 17593, \"\\u0120login\": 17594, \"\\u0120inacc\": 17595, \"\\u0120exert\": 17596, \"sys\": 17597, \"\\u0120needle\": 17598, \"\\u0120Qur\": 17599, \"\\u0120notified\": 17600, \"oulder\": 17601, \"tx\": 17602, \"\\u0120reminds\": 17603, \"\\u0120publishers\": 17604, \"\\u0120nort\": 17605, \"\\u0120git\": 17606, \"\\u0120flies\": 17607, \"\\u0120Emily\": 17608, \"\\u0120flowing\": 17609, \"\\u0120Alien\": 17610, \"\\u0120Strateg\": 17611, \"\\u0120hardest\": 17612, \"\\u0120modification\": 17613, \"API\": 17614, \"\\u0120MY\": 17615, \"\\u0120crashes\": 17616, \"stairs\": 17617, \"number\": 17618, \"\\u0120urging\": 17619, \"channel\": 17620, \"\\u0120Falcon\": 17621, \"\\u0120inhabitants\": 17622, \"\\u0120terrifying\": 17623, \"\\u0120utilize\": 17624, \"\\u0120banner\": 17625, \"\\u0120cigarettes\": 17626, \"\\u0120senses\": 17627, \"\\u0120Holmes\": 17628, \"\\u0120practition\": 17629, \"\\u0120Phillips\": 17630, \"otto\": 17631, \"\\u0120compile\": 17632, \"Model\": 17633, \"\\u0120Ko\": 17634, \"\\u0120[]\": 17635, \"Americans\": 17636, \"\\u0120Terms\": 17637, \"\\u0120medications\": 17638, \"\\u0120Ana\": 17639, \"\\u0120fundamentally\": 17640, \"\\u0120Notice\": 17641, \"\\u0120weaker\": 17642, \"\\u01200000\": 17643, \"\\u0120garlic\": 17644, \"\\u0120outbreak\": 17645, \"\\u0120economist\": 17646, \"\\u0120Birth\": 17647, \"\\u0120obstacles\": 17648, \"arcer\": 17649, \"\\u0120Orthodox\": 17650, \"\\u0120placebo\": 17651, \"\\u0120Crew\": 17652, \"aspberry\": 17653, \"\\u0120Angels\": 17654, \"\\u0120discharge\": 17655, \"\\u0120destructive\": 17656, \"117\": 17657, \"\\u0120Rising\": 17658, \"\\u0120dairy\": 17659, \"late\": 17660, \"\\u0120collision\": 17661, \"\\u0120Tigers\": 17662, \"eanor\": 17663, \"ocumented\": 17664, \"\\u0120Invalid\": 17665, \"\\u0120dont\": 17666, \"\\u0120Liter\": 17667, \"\\u0120Va\": 17668, \"\\u0120hydrogen\": 17669, \"\\u0120variants\": 17670, \"\\u0120Browns\": 17671, \"\\u01201965\": 17672, \"\\u0120indigenous\": 17673, \"\\u0120trades\": 17674, \"\\u0120remainder\": 17675, \"\\u0120swept\": 17676, \"\\u0120Impact\": 17677, \"\\u0120redist\": 17678, \"\\u0120unint\": 17679, \"graduate\": 17680, \"\\u00e3\\u0125\\u0137\": 17681, \"\\u0120WILL\": 17682, \"\\u00e3\\u0123\\u00ae\\u00e7\": 17683, \"\\u0120Critical\": 17684, \"\\u0120fisher\": 17685, \"\\u0120vicious\": 17686, \"\\u0120reversed\": 17687, \"Year\": 17688, \"\\u0120Sox\": 17689, \"\\u0120shootings\": 17690, \"\\u0120filming\": 17691, \"\\u0120touchdowns\": 17692, \"aires\": 17693, \"mel\": 17694, \"\\u0120grandfather\": 17695, \"\\u0120affection\": 17696, \"ingle\": 17697, \"\\u0120overly\": 17698, \"Additional\": 17699, \"\\u0120supreme\": 17700, \"\\u0120Grad\": 17701, \"\\u0120sporting\": 17702, \"\\u0120mercy\": 17703, \"\\u0120Brooks\": 17704, \"ounty\": 17705, \"\\u0120performs\": 17706, \"\\u0120tightly\": 17707, \"\\u0120demons\": 17708, \"\\u0120killings\": 17709, \"\\u0120faction\": 17710, \"\\u0120Nova\": 17711, \"auts\": 17712, \"\\u0120undoubtedly\": 17713, \"arin\": 17714, \"\\u0120underway\": 17715, \"rak\": 17716, \"\\u0120liv\": 17717, \"\\u0120Region\": 17718, \"\\u0120briefing\": 17719, \"sers\": 17720, \"cloud\": 17721, \"\\u0120Mik\": 17722, \"usp\": 17723, \"\\u0120prediction\": 17724, \"azor\": 17725, \"\\u0120portable\": 17726, \"\\u0120Gand\": 17727, \"\\u0120presenting\": 17728, \"\\u01201080\": 17729, \"\\u00c2\\u00bb\": 17730, \"ushi\": 17731, \"\\u0120Spark\": 17732, \"thereum\": 17733, \"\\u0120justification\": 17734, \"\\u0120Ny\": 17735, \"\\u0120contractors\": 17736, \"mingham\": 17737, \"\\u0120Style\": 17738, \"\\u00e5\\u0127\": 17739, \"\\u0120Chronicles\": 17740, \"\\u0120Picture\": 17741, \"\\u0120proving\": 17742, \"\\u0120wives\": 17743, \"sett\": 17744, \"\\u0120molecules\": 17745, \"\\u0120Fairy\": 17746, \"\\u0120consisting\": 17747, \"\\u0120pier\": 17748, \"alone\": 17749, \"inition\": 17750, \"\\u0120nucle\": 17751, \"json\": 17752, \"\\u0120gotta\": 17753, \"\\u0120mobil\": 17754, \"\\u0120verbal\": 17755, \"arium\": 17756, \"\\u0120monument\": 17757, \"ucked\": 17758, \"\\u0120256\": 17759, \"Tech\": 17760, \"minecraft\": 17761, \"\\u0120Track\": 17762, \"\\u0120tile\": 17763, \"\\u0120compatibility\": 17764, \"asis\": 17765, \"\\u0120sadd\": 17766, \"\\u0120instructed\": 17767, \"\\u0120Mueller\": 17768, \"\\u0120lethal\": 17769, \"\\u0120hormone\": 17770, \"\\u0120orche\": 17771, \"else\": 17772, \"\\u0120skelet\": 17773, \"\\u0120entertaining\": 17774, \"\\u0120minimize\": 17775, \"again\": 17776, \"\\u0120undergo\": 17777, \"\\u0120constraints\": 17778, \"\\u0120cigarette\": 17779, \"\\u0120Islamist\": 17780, \"\\u0120travels\": 17781, \"\\u0120Panthers\": 17782, \"lings\": 17783, \"Care\": 17784, \"\\u0120lawsuits\": 17785, \"uras\": 17786, \"\\u0120cryst\": 17787, \"\\u0120lowered\": 17788, \"\\u0120aerial\": 17789, \"\\u0120combinations\": 17790, \"\\u0120haun\": 17791, \"\\u0120cha\": 17792, \"\\u0120vine\": 17793, \"\\u0120quantities\": 17794, \"\\u0120linking\": 17795, \"bank\": 17796, \"\\u0120soy\": 17797, \"Bill\": 17798, \"\\u0120Angela\": 17799, \"\\u0120recipient\": 17800, \"\\u0120Protest\": 17801, \"\\u0120socket\": 17802, \"\\u0120solidarity\": 17803, \"\\u0120\\u00e2\\u0128\": 17804, \"mill\": 17805, \"\\u0120varies\": 17806, \"\\u0120Pakistani\": 17807, \"Dragon\": 17808, \"\\u0120une\": 17809, \"\\u0120horizon\": 17810, \"\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\": 17811, \"\\u0120provinces\": 17812, \"\\u0120frankly\": 17813, \"\\u0120enacted\": 17814, \"notes\": 17815, \"['\": 17816, \"\\u0120192\": 17817, \"ocracy\": 17818, \"\\u0120endorsement\": 17819, \"\\u0120overtime\": 17820, \"True\": 17821, \"Lab\": 17822, \"licted\": 17823, \"\\u0120DNC\": 17824, \"\\u0120beats\": 17825, \"\\u0120Jamie\": 17826, \"152\": 17827, \"\\u0120INT\": 17828, \"Contact\": 17829, \"\\u0120accounted\": 17830, \"hash\": 17831, \"\\u0120Packers\": 17832, \"pires\": 17833, \"\\u0120lesbian\": 17834, \"\\u0120amendments\": 17835, \"\\u0120hopeful\": 17836, \"\\u0120Finland\": 17837, \"\\u0120spotlight\": 17838, \"\\u0120configured\": 17839, \"\\u0120troubled\": 17840, \"\\u0120gaze\": 17841, \"\\u0120Calgary\": 17842, \"\\u0120reliability\": 17843, \"\\u0120insurg\": 17844, \"swer\": 17845, \"buy\": 17846, \"\\u0120Skin\": 17847, \"\\u0120pixels\": 17848, \"\\u0120handgun\": 17849, \"\\u0120paras\": 17850, \"\\u0120categor\": 17851, \"\\u0120EL\": 17852, \"\\u0120Rex\": 17853, \"Indeed\": 17854, \"\\u0120kinda\": 17855, \"\\u0120conjunction\": 17856, \"\\u0120Bryan\": 17857, \"\\u0120Manufact\": 17858, \"yang\": 17859, \"Plus\": 17860, \"SQL\": 17861, \"ishment\": 17862, \"\\u0120dominate\": 17863, \"\\u0120nail\": 17864, \"\\u0120oath\": 17865, \"\\u0120erupt\": 17866, \"\\u0120Fine\": 17867, \"itbart\": 17868, \"\\u0120Chip\": 17869, \"\\u0120Abd\": 17870, \"\\u0120Nam\": 17871, \"\\u0120buyer\": 17872, \"\\u0120dissent\": 17873, \"Leaks\": 17874, \"Contin\": 17875, \"\\u0120rider\": 17876, \"\\u0120Someone\": 17877, \"\\u0120illusion\": 17878, \"cin\": 17879, \"\\u0120Boeing\": 17880, \"\\u0120inadequ\": 17881, \"ovation\": 17882, \"iants\": 17883, \"\\u0120rebuild\": 17884, \"450\": 17885, \"\\u0120Destiny\": 17886, \"SW\": 17887, \"\\u0120Till\": 17888, \"Hit\": 17889, \"iaz\": 17890, \"\\u0120Bangl\": 17891, \"achers\": 17892, \"\\u0120Reform\": 17893, \"\\u0120segments\": 17894, \"\\u0120systematic\": 17895, \"dc\": 17896, \"\\u0120Conservatives\": 17897, \"\\u0120portal\": 17898, \"hor\": 17899, \"\\u0120Dragonbound\": 17900, \"\\u0120dragged\": 17901, \"omo\": 17902, \"\\u0120thee\": 17903, \"advert\": 17904, \"\\u0120Reports\": 17905, \"\\u0120Et\": 17906, \"\\u0120barrels\": 17907, \"August\": 17908, \"\\u0120comparisons\": 17909, \"\\u0120hex\": 17910, \"\\u0120anthrop\": 17911, \"\\\"[\": 17912, \"borough\": 17913, \"abi\": 17914, \"\\u0120pictured\": 17915, \"playing\": 17916, \"\\u0120Address\": 17917, \"\\u0120Mirror\": 17918, \"Smith\": 17919, \"\\u0120tires\": 17920, \"\\u0120NPR\": 17921, \"AAAA\": 17922, \"\\u0120classification\": 17923, \"\\u0120Than\": 17924, \"\\u0120Harm\": 17925, \"\\u0120RA\": 17926, \"\\u0120rejection\": 17927, \"mination\": 17928, \"\\u0120ranged\": 17929, \"\\u0120Falls\": 17930, \"DI\": 17931, \"Host\": 17932, \"\\u00e3\\u0124\\u00b4\": 17933, \"\\u0120Example\": 17934, \"listed\": 17935, \"thirds\": 17936, \"\\u0120safegu\": 17937, \"brand\": 17938, \"\\u0120probable\": 17939, \"Canada\": 17940, \"ITION\": 17941, \"\\u0120Qaeda\": 17942, \"\\u0120chick\": 17943, \"\\u0120imports\": 17944, \"hit\": 17945, \"loc\": 17946, \"WW\": 17947, \"\\u0120blew\": 17948, \"\\u0120anytime\": 17949, \"\\u0120wholes\": 17950, \"iked\": 17951, \"\\u0120calculation\": 17952, \"create\": 17953, \"\\u0120Ori\": 17954, \"\\u0120upgraded\": 17955, \"\\u0120appar\": 17956, \"utory\": 17957, \"\\u0120Mol\": 17958, \"Brit\": 17959, \"\\u0120Jong\": 17960, \"INAL\": 17961, \"\\u0120Starting\": 17962, \"\\u0120dice\": 17963, \"urtle\": 17964, \"\\u0120relying\": 17965, \"closure\": 17966, \"\\u0120profitable\": 17967, \"\\u0120slaughter\": 17968, \"\\u0120Manual\": 17969, \"caster\": 17970, \"\\u0120\\\"$\": 17971, \"\\u0120feather\": 17972, \"\\u0120Simply\": 17973, \"ieves\": 17974, \"\\u0120deterior\": 17975, \"\\u0120PCI\": 17976, \"\\u0120stamp\": 17977, \"\\u0120flaws\": 17978, \"\\u0120shade\": 17979, \"hammer\": 17980, \"\\u0120passport\": 17981, \"\\u0120conting\": 17982, \"amel\": 17983, \"\\u0120observers\": 17984, \"\\u0120neglect\": 17985, \"\\u0120RB\": 17986, \"\\u0120Brotherhood\": 17987, \"\\u0120skeptical\": 17988, \"family\": 17989, \"usk\": 17990, \"\\u0120emotionally\": 17991, \"\\u00e2\\u013b\": 17992, \"\\u0120Beta\": 17993, \"asonable\": 17994, \"idity\": 17995, \"\\u0120Mul\": 17996, \"\\u0120kicking\": 17997, \"\\u0120Carm\": 17998, \"ollah\": 17999, \"VERTIS\": 18000, \"\\u0120Athen\": 18001, \"\\u0120ladder\": 18002, \"\\u0120Bullet\": 18003, \"\\u00e5\\u00a3\": 18004, \"0001\": 18005, \"\\u0120Wildlife\": 18006, \"\\u0120Mask\": 18007, \"\\u0120Nan\": 18008, \"Rev\": 18009, \"\\u0120unacceptable\": 18010, \"legal\": 18011, \"\\u0120crowded\": 18012, \"agi\": 18013, \"\\u0120Cox\": 18014, \"je\": 18015, \"\\u0120morality\": 18016, \"\\u0120fuels\": 18017, \"\\u0120cables\": 18018, \"\\u0120mankind\": 18019, \"\\u0120Caribbean\": 18020, \"\\u0120anchor\": 18021, \"\\u0120byte\": 18022, \"\\u0120Often\": 18023, \"\\u0120Oz\": 18024, \"\\u0120crafted\": 18025, \"\\u0120historian\": 18026, \"\\u0120Wu\": 18027, \"\\u0120towers\": 18028, \"\\u0120Citizens\": 18029, \"\\u0120helm\": 18030, \"\\u0120credentials\": 18031, \"\\u0120singular\": 18032, \"\\u0120Jesse\": 18033, \"\\u0120tackles\": 18034, \"\\u0120contempt\": 18035, \"\\u0120afore\": 18036, \"\\u0120Shadows\": 18037, \"\\u0120nil\": 18038, \"\\u0120urgent\": 18039, \"apple\": 18040, \"blood\": 18041, \"\\u0120von\": 18042, \"\\u0120offline\": 18043, \"\\u0120breathe\": 18044, \"\\u0120jumps\": 18045, \"\\u0120irrelevant\": 18046, \"oxic\": 18047, \"omal\": 18048, \"important\": 18049, \"Jim\": 18050, \"\\u0120gloves\": 18051, \"arming\": 18052, \"depth\": 18053, \"\\u0120talents\": 18054, \"ookie\": 18055, \"\\u0120SB\": 18056, \"\\u0120palm\": 18057, \"uffs\": 18058, \"esta\": 18059, \"IGH\": 18060, \"\\u0120canon\": 18061, \"\\u0120Verizon\": 18062, \"\\u0120Ple\": 18063, \"\\u0120coupled\": 18064, \"velt\": 18065, \"\\u0120fundraising\": 18066, \"\\u0120Getting\": 18067, \"\\u0120DLC\": 18068, \"\\u0120mathematical\": 18069, \"\\u0120HS\": 18070, \"\\u0120Cardinals\": 18071, \"telling\": 18072, \"\\u0120sponsors\": 18073, \"\\u0120\\u00cf\": 18074, \"\\u0120Bulls\": 18075, \"option\": 18076, \"\\u0120propose\": 18077, \"\\u0120memorable\": 18078, \"\\u0120embraced\": 18079, \"\\u0120declining\": 18080, \"Health\": 18081, \"eda\": 18082, \"\\u0120};\": 18083, \"\\u0120spam\": 18084, \"mile\": 18085, \"\\u0120pitcher\": 18086, \"\\u0120Eight\": 18087, \"\\u0120caring\": 18088, \"utic\": 18089, \"role\": 18090, \"\\u0120airline\": 18091, \"ernandez\": 18092, \"\\u0120Athlet\": 18093, \"\\u0120certification\": 18094, \"uxe\": 18095, \"riger\": 18096, \"\\u0120empir\": 18097, \"\\u0120sensation\": 18098, \"\\u0120dism\": 18099, \"\\u0120bolt\": 18100, \"\\u0120evolve\": 18101, \"House\": 18102, \"\\u0120consultation\": 18103, \"\\u0120Duty\": 18104, \"\\u0120touches\": 18105, \"\\u0120Nathan\": 18106, \"\\u0120faint\": 18107, \"had\": 18108, \"\\\"(\": 18109, \"\\u0120Consumer\": 18110, \"\\u0120Extreme\": 18111, \"\\u0120127\": 18112, \"\\u0120Herm\": 18113, \"\\u0120Sacrament\": 18114, \"izoph\": 18115, \"\\u0120anxious\": 18116, \"ulously\": 18117, \"\\u0120socially\": 18118, \"\\u0120UTC\": 18119, \"\\u0120solving\": 18120, \"\\u0120Letter\": 18121, \"History\": 18122, \"educ\": 18123, \"Price\": 18124, \"));\": 18125, \"\\u0120reload\": 18126, \"amic\": 18127, \"\\u0120pork\": 18128, \"\\u0120discourse\": 18129, \"\\u0120tournaments\": 18130, \"airo\": 18131, \"\\u0120Kur\": 18132, \"\\u0120Costa\": 18133, \"\\u0120violating\": 18134, \"\\u0120interfere\": 18135, \"\\u0120recreational\": 18136, \"uffle\": 18137, \"\\u0120speeches\": 18138, \"\\u0120needing\": 18139, \"\\u0120remembers\": 18140, \"\\u0120credited\": 18141, \"nia\": 18142, \"focused\": 18143, \"amera\": 18144, \"\\u0120bru\": 18145, \"umbs\": 18146, \"\\u0120Cuban\": 18147, \"\\u0120preceding\": 18148, \"\\u0120nonsense\": 18149, \"acial\": 18150, \"\\u0120smartphones\": 18151, \"\\u0120Stories\": 18152, \"Sports\": 18153, \"\\u0120Emergency\": 18154, \"ouncing\": 18155, \"efined\": 18156, \"\\u0120ber\": 18157, \"\\u0120consulting\": 18158, \"\\u0120masters\": 18159, \"heastern\": 18160, \".\\\"[\": 18161, \"\\u0120Running\": 18162, \"\\u0120suscept\": 18163, \"\\u0120Feng\": 18164, \"America\": 18165, \"prises\": 18166, \"stitial\": 18167, \"\\u0120Weekly\": 18168, \"\\u0120Greater\": 18169, \"modules\": 18170, \"ifter\": 18171, \"Graphics\": 18172, \"uler\": 18173, \"\\u0120wholly\": 18174, \"\\u0120suppress\": 18175, \"\\u0120concealed\": 18176, \"\\u0120happily\": 18177, \"\\u0120accepts\": 18178, \"\\u0120Enjoy\": 18179, \"\\u0120rivers\": 18180, \"\\u0120Except\": 18181, \"225\": 18182, \"\\u0120NHS\": 18183, \"\\u0120McConnell\": 18184, \"\\u0120pussy\": 18185, \"ferred\": 18186, \"utable\": 18187, \"\\u0120attain\": 18188, \"\\u0120>=\": 18189, \"\\u0120deposits\": 18190, \"rophic\": 18191, \"\\u0120notorious\": 18192, \"\\u0120Shaw\": 18193, \"ilitation\": 18194, \"\\u0120epidemic\": 18195, \"allic\": 18196, \"\\u0120smallest\": 18197, \"ovich\": 18198, \"\\u0120accessories\": 18199, \"perties\": 18200, \"\\u0120surplus\": 18201, \"\\u0120Mech\": 18202, \"\\u0120ambig\": 18203, \"\\u0120Immigration\": 18204, \"\\u0120chim\": 18205, \"eval\": 18206, \"\\u0120practicing\": 18207, \"\\u0120Mystery\": 18208, \"\\u0120domains\": 18209, \"\\u0120Silicon\": 18210, \"apps\": 18211, \"\\u0120kilometers\": 18212, \"ea\": 18213, \"\\u0120Smash\": 18214, \"\\u0120warranty\": 18215, \"\\u0120nost\": 18216, \"sil\": 18217, \"rev\": 18218, \"Jon\": 18219, \"\\u0120Dublin\": 18220, \"\\u0120tastes\": 18221, \"\\u0120bout\": 18222, \"great\": 18223, \"error\": 18224, \"\\u0120switches\": 18225, \"\\u0120Bapt\": 18226, \"DO\": 18227, \"oki\": 18228, \"\\u0120sourced\": 18229, \"produ\": 18230, \"\\u0120attachment\": 18231, \"\\u0120Issue\": 18232, \"\\u0120Question\": 18233, \"Join\": 18234, \"\\u0120fitted\": 18235, \"\\u0120unlawful\": 18236, \"^^\": 18237, \"erek\": 18238, \"\\u0120authentication\": 18239, \"\\u0120stole\": 18240, \"\\u0120accountability\": 18241, \"label\": 18242, \"Search\": 18243, \"\\u0120albeit\": 18244, \"atican\": 18245, \"funded\": 18246, \"\\u0120Adding\": 18247, \"\\u0120IQ\": 18248, \"\\u0120submar\": 18249, \"lit\": 18250, \"aque\": 18251, \"\\u0120Learning\": 18252, \"\\u0120integer\": 18253, \"Master\": 18254, \"\\u0120Chrom\": 18255, \"\\u0120premier\": 18256, \"Op\": 18257, \"\\u0120Liu\": 18258, \"\\u0120blessed\": 18259, \"\\u0120Globe\": 18260, \"\\u0120Response\": 18261, \"\\u0120legitim\": 18262, \"\\u0120Merkel\": 18263, \"\\u0120disposal\": 18264, \"\\u00c2\\u00b4\": 18265, \"\\u0120gauge\": 18266, \"peat\": 18267, \"\\u0120induced\": 18268, \"\\u0120questionable\": 18269, \"arthy\": 18270, \"\\u0120Vit\": 18271, \"\\u0120Feed\": 18272, \"Until\": 18273, \"Ut\": 18274, \"worthy\": 18275, \"RY\": 18276, \"\\u0120Herald\": 18277, \"\\u0120Hammer\": 18278, \"\\u0120medal\": 18279, \"\\u0120Rivers\": 18280, \"\\u0120Hack\": 18281, \"\\u0120clarify\": 18282, \"\\u0120tracked\": 18283, \"\\u0120autonomous\": 18284, \"\\u0120tenant\": 18285, \"\\u0120Qatar\": 18286, \"erie\": 18287, \"\\u0120grim\": 18288, \"\\u0120Monitor\": 18289, \"\\u0120resistant\": 18290, \"\\u0120Spec\": 18291, \"\\u0120Wells\": 18292, \"NAS\": 18293, \"148\": 18294, \"\\u0120miners\": 18295, \"iotics\": 18296, \"\\u0120misses\": 18297, \"116\": 18298, \"gian\": 18299, \"git\": 18300, \"\\u0120Eyes\": 18301, \"pres\": 18302, \"\\u0120graduated\": 18303, \"\\u0120angel\": 18304, \"\\u0120synchron\": 18305, \"\\u0120efficiently\": 18306, \"\\u0120transmitted\": 18307, \"Harry\": 18308, \"\\u0120globally\": 18309, \"ENCE\": 18310, \"\\u0120Montana\": 18311, \"raged\": 18312, \"\\u0120Prevention\": 18313, \"\\u0120piss\": 18314, \"\\u0120Ll\": 18315, \"\\u0120shelf\": 18316, \"\\u0120BJP\": 18317, \"\\u0120Testament\": 18318, \"\\u0120Late\": 18319, \"iker\": 18320, \"\\u0120Happ\": 18321, \"\\u0120Julian\": 18322, \"hall\": 18323, \"\\u0120spont\": 18324, \"\\u0120shutdown\": 18325, \"\\u0120inconsistent\": 18326, \"\\u0120subscribers\": 18327, \"\\u0120skeleton\": 18328, \"\\u0120Nebraska\": 18329, \"\\u0120inspire\": 18330, \"\\u0120Void\": 18331, \"Feed\": 18332, \"\\u0120angles\": 18333, \"\\u0120Springs\": 18334, \"\\u0120benchmark\": 18335, \"\\u0120vaccines\": 18336, \"izophren\": 18337, \"sexual\": 18338, \"uffed\": 18339, \"\\u0120shine\": 18340, \"\\u0120Kath\": 18341, \"\\u0120gesture\": 18342, \"inea\": 18343, \"\\u0120rip\": 18344, \"\\u0120oppression\": 18345, \"\\u0120conscience\": 18346, \"bt\": 18347, \"\\u0120Lum\": 18348, \"\\u0120incidence\": 18349, \"\\u0120Fa\": 18350, \"wr\": 18351, \"\\u0120mineral\": 18352, \"\\u0120Spurs\": 18353, \"alky\": 18354, \"\\u0120thunder\": 18355, \"\\u0120opio\": 18356, \"Being\": 18357, \"\\u0120Palm\": 18358, \"\\u0120wasted\": 18359, \"\\u0120lb\": 18360, \"iaries\": 18361, \"\\u0120Initiative\": 18362, \"\\u0120curric\": 18363, \"\\u0120marker\": 18364, \"\\u0120McL\": 18365, \"\\u0120extensions\": 18366, \"\\u0120Pv\": 18367, \"\\u0120Arms\": 18368, \"\\u0120offerings\": 18369, \"\\u0120defenses\": 18370, \"\\u0120vendor\": 18371, \"\\u0120contradict\": 18372, \"\\u0120Colin\": 18373, \"\\u0120reddit\": 18374, \"\\u0120peripher\": 18375, \"122\": 18376, \"\\u0120sins\": 18377, \"Edit\": 18378, \"ICT\": 18379, \"Soft\": 18380, \"\\u0120Shah\": 18381, \"\\u0120administrator\": 18382, \"\\u0120Trip\": 18383, \"\\u0120pornography\": 18384, \"\\u0120tuition\": 18385, \"inence\": 18386, \"\\u0120Progress\": 18387, \"\\u0120catalog\": 18388, \"\\u0120suite\": 18389, \"\\u0120hike\": 18390, \"\\u0120reproductive\": 18391, \"engine\": 18392, \"\\u0120drought\": 18393, \"\\u0120Noah\": 18394, \"\\u0120230\": 18395, \"\\u0120dude\": 18396, \"\\u0120relaxed\": 18397, \"\\u0120partition\": 18398, \"\\u0120participant\": 18399, \"\\u0120telesc\": 18400, \"\\u0120feas\": 18401, \"\\u0120FF\": 18402, \"owner\": 18403, \"\\u0120sweeping\": 18404, \"\\u0120lenses\": 18405, \"\\u0120matchup\": 18406, \"\\u0120Repl\": 18407, \"ournals\": 18408, \"\\u0120credible\": 18409, \"\\u0120grandmother\": 18410, \"\\u0120thermal\": 18411, \"\\u0120subscribing\": 18412, \"\\u0120identities\": 18413, \"colm\": 18414, \"UCT\": 18415, \"\\u0120reluctant\": 18416, \"users\": 18417, \"\\u0120Cort\": 18418, \"\\u0120assisted\": 18419, \"OSS\": 18420, \"ATIONS\": 18421, \"ISH\": 18422, \"\\u0120pharmaceutical\": 18423, \"icable\": 18424, \"adian\": 18425, \"\\u0120Sonic\": 18426, \"\\u0120Fury\": 18427, \"\\u0120Mong\": 18428, \"AH\": 18429, \"\\u0120Psychology\": 18430, \"\\u0120phosph\": 18431, \"\\u0120treats\": 18432, \"\\u0143\\u0136\": 18433, \"\\u0120steadily\": 18434, \"\\u0120Hello\": 18435, \"\\u0120relates\": 18436, \"\\u0120clue\": 18437, \"Expl\": 18438, \"auth\": 18439, \"\\u0120revision\": 18440, \"\\u0120eld\": 18441, \"osion\": 18442, \"\\u0120bron\": 18443, \"144\": 18444, \"rikes\": 18445, \"\\u0120mines\": 18446, \"\\u0120blanket\": 18447, \"\\u0120Fail\": 18448, \"eled\": 18449, \"\\u0120Imagine\": 18450, \"\\u0120Planned\": 18451, \"aic\": 18452, \"Request\": 18453, \"Mad\": 18454, \"\\u0120Horse\": 18455, \"\\u0120Eagle\": 18456, \"\\u0120capac\": 18457, \"157\": 18458, \"\\u0120ling\": 18459, \"\\u0120Nice\": 18460, \"\\u0120Parenthood\": 18461, \"minster\": 18462, \"ogs\": 18463, \"ensitive\": 18464, \"Nothing\": 18465, \"\\u0120carn\": 18466, \"Fin\": 18467, \"\\u0120PE\": 18468, \"\\u0120rifles\": 18469, \"\\u0120LP\": 18470, \"Sand\": 18471, \"\\u0120guiActive\": 18472, \"\\u0120tourist\": 18473, \"CNN\": 18474, \"\\u0120unveiled\": 18475, \"\\u0120predecessor\": 18476, \"}{\": 18477, \"uber\": 18478, \"\\u0120offshore\": 18479, \"\\u0120optical\": 18480, \"\\u0120Rot\": 18481, \"\\u0120Pearl\": 18482, \"eton\": 18483, \"\\u0120stared\": 18484, \"\\u0120farther\": 18485, \"atility\": 18486, \"contin\": 18487, \"\\u0120Gy\": 18488, \"\\u0120Foster\": 18489, \"\\u0120Coc\": 18490, \"rients\": 18491, \"\\u0120designing\": 18492, \"\\u0120Economy\": 18493, \"ONG\": 18494, \"Women\": 18495, \"\\u0120Nancy\": 18496, \"erver\": 18497, \"\\u0120mascul\": 18498, \"\\u0120casualties\": 18499, \"\\u0120225\": 18500, \"\\u0120Sullivan\": 18501, \"\\u0120Choice\": 18502, \"\\u0120aster\": 18503, \"ws\": 18504, \"\\u0120hotels\": 18505, \"\\u0120considerations\": 18506, \"\\u0120couch\": 18507, \"\\u0120Strip\": 18508, \"\\u0120Gn\": 18509, \"\\u0120manipulate\": 18510, \"lied\": 18511, \"\\u0120synthetic\": 18512, \"\\u0120assaulted\": 18513, \"\\u0120offenses\": 18514, \"\\u0120Drake\": 18515, \"\\u0120impe\": 18516, \"October\": 18517, \"\\u0120Heritage\": 18518, \"hl\": 18519, \"\\u0120Blair\": 18520, \"Unlike\": 18521, \"\\u0120grief\": 18522, \"\\u0120450\": 18523, \"\\u0120opted\": 18524, \"\\u0120resignation\": 18525, \"ilo\": 18526, \"\\u0120verse\": 18527, \"\\u0120Tomb\": 18528, \"\\u0120upt\": 18529, \"\\u0120aired\": 18530, \"\\u0120Hook\": 18531, \"\\u0120MLB\": 18532, \"\\u0120assumes\": 18533, \"outed\": 18534, \"\\u0120Vers\": 18535, \"\\u0120inferior\": 18536, \"\\u0120bundle\": 18537, \"\\u0120DNS\": 18538, \"ographer\": 18539, \"\\u0120multip\": 18540, \"\\u0120Souls\": 18541, \"\\u0120illustrated\": 18542, \"\\u0120tactic\": 18543, \"\\u0120dressing\": 18544, \"\\u0120duo\": 18545, \"Conf\": 18546, \"\\u0120relent\": 18547, \"\\u0120cant\": 18548, \"\\u0120scarce\": 18549, \"\\u0120candy\": 18550, \"\\u0120CF\": 18551, \"\\u0120affiliated\": 18552, \"\\u0120sprint\": 18553, \"ylan\": 18554, \"\\u0120Garcia\": 18555, \"\\u0120junk\": 18556, \"Print\": 18557, \"exec\": 18558, \"Crit\": 18559, \"\\u0120portrait\": 18560, \"iries\": 18561, \"\\u0120OFF\": 18562, \"\\u0120disputes\": 18563, \"WR\": 18564, \"Love\": 18565, \"\\u00e3\\u0123\\u0126\": 18566, \"\\u0120Reyn\": 18567, \"\\u0120hipp\": 18568, \"opath\": 18569, \"\\u0120floors\": 18570, \"\\u0120Feel\": 18571, \"\\u0120worries\": 18572, \"\\u0120settlements\": 18573, \"\\u0120Pos\": 18574, \"\\u0120mosque\": 18575, \"\\u0120finals\": 18576, \"\\u0120crushed\": 18577, \"\\u0120Probably\": 18578, \"\\u0120Bot\": 18579, \"\\u0120Mans\": 18580, \"\\u0120Period\": 18581, \"\\u0120sovereignty\": 18582, \"\\u0120seller\": 18583, \"\\u0120apost\": 18584, \"\\u0120amateur\": 18585, \"\\u0120dorm\": 18586, \"\\u0120consuming\": 18587, \"\\u0120armour\": 18588, \"\\u0120Roose\": 18589, \"\\u0120intensive\": 18590, \"\\u0120eliminating\": 18591, \"\\u0120Sunni\": 18592, \"\\u0120Aleppo\": 18593, \"jin\": 18594, \"\\u0120advise\": 18595, \"pal\": 18596, \"\\u0120Halo\": 18597, \"\\u0120descent\": 18598, \"\\u0120simpler\": 18599, \"\\u0120booth\": 18600, \"STR\": 18601, \"Later\": 18602, \"\\u0120Cave\": 18603, \"===\": 18604, \"\\u0120mol\": 18605, \"\\u0120fist\": 18606, \"\\u0120shotgun\": 18607, \"supp\": 18608, \"\\u0120robbery\": 18609, \"Effect\": 18610, \"\\u0120obscure\": 18611, \"\\u0120Professional\": 18612, \"\\u0120embassy\": 18613, \"\\u0120militant\": 18614, \"\\u0120incarcer\": 18615, \"\\u0120generates\": 18616, \"\\u0120launches\": 18617, \"\\u0120administrators\": 18618, \"\\u0120shaft\": 18619, \"\\u0120circular\": 18620, \"\\u0120freshman\": 18621, \"\\u0120Wes\": 18622, \"\\u0120Joel\": 18623, \"\\u0120Drew\": 18624, \"\\u0120Duncan\": 18625, \"\\u0120Apparently\": 18626, \"sight\": 18627, \"\\u0120Internal\": 18628, \"\\u0120Individual\": 18629, \"\\u0120FE\": 18630, \"\\u0120bore\": 18631, \"\\u0120Mt\": 18632, \"\\u0120broadly\": 18633, \"\\u0120Options\": 18634, \"ountain\": 18635, \"ipes\": 18636, \"\\u0120Videos\": 18637, \"204\": 18638, \"\\u0120hills\": 18639, \"\\u0120simulation\": 18640, \"\\u0120disappointment\": 18641, \"itan\": 18642, \"\\u0120Laboratory\": 18643, \"\\u0120upward\": 18644, \"\\u0120boundary\": 18645, \"\\u0120darker\": 18646, \"hart\": 18647, \"\\u0120dominance\": 18648, \"Cong\": 18649, \"\\u0120Oracle\": 18650, \"\\u0120Lords\": 18651, \"\\u0120scholarship\": 18652, \"\\u0120Vincent\": 18653, \"ede\": 18654, \"\\u0120Rah\": 18655, \"\\u0120encourages\": 18656, \"rov\": 18657, \"\\u0120quo\": 18658, \"\\u0120premise\": 18659, \"\\u0120Crisis\": 18660, \"\\u0120Holocaust\": 18661, \"\\u0120rhythm\": 18662, \"\\u0120metric\": 18663, \"club\": 18664, \"\\u0120transported\": 18665, \"\\u0120nod\": 18666, \"\\u0120Pist\": 18667, \"\\u0120ancestors\": 18668, \"\\u0120Freder\": 18669, \"thumbnails\": 18670, \"\\u0120CE\": 18671, \"OND\": 18672, \"Phil\": 18673, \"venge\": 18674, \"\\u0120Products\": 18675, \"castle\": 18676, \"\\u0120qualifying\": 18677, \"\\u0120Karen\": 18678, \"VERTISEMENT\": 18679, \"\\u0120mighty\": 18680, \"\\u0120explanations\": 18681, \"\\u0120fixing\": 18682, \"Di\": 18683, \"\\u0120declaring\": 18684, \"\\u0120anonymity\": 18685, \"\\u0120juven\": 18686, \"\\u0120Nord\": 18687, \"\\u0120Doom\": 18688, \"\\u0120Actually\": 18689, \"Ok\": 18690, \"phis\": 18691, \"\\u0120Desert\": 18692, \"\\u0120116\": 18693, \"IK\": 18694, \"\\u0120FM\": 18695, \"\\u0120incomes\": 18696, \"VEL\": 18697, \"okers\": 18698, \"\\u0120pecul\": 18699, \"\\u0120lightweight\": 18700, \"gue\": 18701, \"\\u0120accent\": 18702, \"\\u0120increment\": 18703, \"\\u0120Chan\": 18704, \"\\u0120complaining\": 18705, \"\\u0120Baghd\": 18706, \"\\u0120midfielder\": 18707, \"\\u0120overhaul\": 18708, \"Process\": 18709, \"\\u0120Hollow\": 18710, \"\\u0120Titans\": 18711, \"Small\": 18712, \"manuel\": 18713, \"\\u0120Unity\": 18714, \"\\u0120Events\": 18715, \"Sty\": 18716, \"\\u0120disproportion\": 18717, \"nesty\": 18718, \"enes\": 18719, \"\\u0120Cod\": 18720, \"\\u0120demonstrations\": 18721, \"\\u0120Crimson\": 18722, \"\\u0120OH\": 18723, \"\\u0120enrolled\": 18724, \"\\u0120cel\": 18725, \"\\u0120Brett\": 18726, \"\\u0120aide\": 18727, \"\\u0120heels\": 18728, \"\\u0120broadband\": 18729, \"\\u0120marking\": 18730, \"\\u0120wizard\": 18731, \"\\u0120NJ\": 18732, \"\\u0120Chiefs\": 18733, \"\\u0120ingredient\": 18734, \"\\u0120dug\": 18735, \"\\u0120Shut\": 18736, \"urchase\": 18737, \"endor\": 18738, \"\\u0120farmer\": 18739, \"\\u0120Goldman\": 18740, \"129\": 18741, \"155\": 18742, \"Order\": 18743, \"\\u0120lion\": 18744, \"iably\": 18745, \"\\u0120stain\": 18746, \"array\": 18747, \"ilitary\": 18748, \"\\u0120FAQ\": 18749, \"\\u0120exploded\": 18750, \"\\u0120McCarthy\": 18751, \"\\u0120Tweet\": 18752, \"\\u0120Greens\": 18753, \"eking\": 18754, \"ln\": 18755, \"ensen\": 18756, \"\\u0120motorcycle\": 18757, \"\\u0120particle\": 18758, \"\\u0120cholesterol\": 18759, \"Bron\": 18760, \"\\u0120stair\": 18761, \"\\u0120oxid\": 18762, \"\\u0120desirable\": 18763, \"ibles\": 18764, \"\\u0120theor\": 18765, \"forcing\": 18766, \"\\u0120promotional\": 18767, \"ovo\": 18768, \"boot\": 18769, \"\\u0120Bonus\": 18770, \"rawling\": 18771, \"\\u0120shortage\": 18772, \"\\u0120Psy\": 18773, \"\\u0120recruited\": 18774, \"\\u0120infants\": 18775, \"\\u0120testosterone\": 18776, \"\\u0120deduct\": 18777, \"\\u0120distinctive\": 18778, \"\\u0120firmware\": 18779, \"built\": 18780, \"145\": 18781, \"\\u0120explored\": 18782, \"\\u0120factions\": 18783, \"\\u0120vide\": 18784, \"\\u0120tattoo\": 18785, \"\\u0120financially\": 18786, \"\\u0120fatigue\": 18787, \"\\u0120proceeding\": 18788, \"constitutional\": 18789, \"\\u0120miser\": 18790, \"\\u0120chairs\": 18791, \"gging\": 18792, \"ipple\": 18793, \"\\u0120dent\": 18794, \"\\u0120disreg\": 18795, \"\\u00e7\\u0136\": 18796, \"stant\": 18797, \"llo\": 18798, \"bps\": 18799, \"akening\": 18800, \"\\u0120abnormal\": 18801, \"\\u0120ERA\": 18802, \"\\u00e5\\u00a3\\u00ab\": 18803, \"\\u0120HBO\": 18804, \"\\u0120MAR\": 18805, \"\\u0120concess\": 18806, \"\\u0120servant\": 18807, \"\\u0120aspir\": 18808, \"lav\": 18809, \"\\u0120Panel\": 18810, \"amo\": 18811, \"\\u0120precip\": 18812, \"\\u0120recordings\": 18813, \"\\u0120proceeded\": 18814, \"\\u0120colony\": 18815, \"\\u0120Tang\": 18816, \"ablo\": 18817, \"\\u0120stripped\": 18818, \"Left\": 18819, \"too\": 18820, \"\\u0120potatoes\": 18821, \"\\u0120finest\": 18822, \"%).\": 18823, \"\\u0120crap\": 18824, \"\\u0120Zach\": 18825, \"abases\": 18826, \"\\u0120Goth\": 18827, \"\\u0120billionaire\": 18828, \"wolf\": 18829, \"\\u0120sanction\": 18830, \"SK\": 18831, \"\\u0120logged\": 18832, \"Po\": 18833, \"eyed\": 18834, \"unal\": 18835, \"\\u0120cricket\": 18836, \"\\u0120armies\": 18837, \"\\u0120uncovered\": 18838, \"Cloud\": 18839, \"\\u00c3\\u00b3n\": 18840, \"\\u0120rebounds\": 18841, \"\\u0120mes\": 18842, \"Oper\": 18843, \"Pac\": 18844, \"\\u0120nationally\": 18845, \"\\u0120inserted\": 18846, \"pict\": 18847, \"\\u0120governance\": 18848, \"\\u00d0\\u00b8\": 18849, \"\\u0120privileges\": 18850, \"GET\": 18851, \"\\u0120favorites\": 18852, \"imity\": 18853, \"\\u0120lover\": 18854, \"them\": 18855, \"empl\": 18856, \"\\u0120gorgeous\": 18857, \"Ann\": 18858, \"\\u0120slipped\": 18859, \"\\u0120veto\": 18860, \"Bob\": 18861, \"\\u0120slim\": 18862, \"ucc\": 18863, \"\\u0120Fame\": 18864, \"uddenly\": 18865, \"\\u0120denies\": 18866, \"\\u0120Maur\": 18867, \"\\u0120distances\": 18868, \"\\u0120wanna\": 18869, \"tar\": 18870, \"\\u0120SER\": 18871, \"\\u0120\\u00e2\\u012a\": 18872, \"\\u0120lemon\": 18873, \"athetic\": 18874, \"\\u0120literal\": 18875, \"\\u0120distinguished\": 18876, \"\\u0120answering\": 18877, \"GI\": 18878, \"\\u0120religions\": 18879, \"\\u0120Philos\": 18880, \"\\u0120Lay\": 18881, \"\\u0120compos\": 18882, \"irements\": 18883, \"\\u0120Kos\": 18884, \"inez\": 18885, \"rolling\": 18886, \"\\u0120youngest\": 18887, \"andise\": 18888, \"\\u0120Born\": 18889, \"\\u0120altar\": 18890, \"amina\": 18891, \"\\u0120Boot\": 18892, \"voc\": 18893, \"\\u0120digging\": 18894, \"\\u0120pressures\": 18895, \"\\u0120len\": 18896, \"264\": 18897, \"\\u0120assassination\": 18898, \"\\u0120Birmingham\": 18899, \"\\u0120Myth\": 18900, \"\\u0120sovereign\": 18901, \"\\u0120Artist\": 18902, \"\\u0120Photograph\": 18903, \"\\u0120depicted\": 18904, \"\\u0120dispens\": 18905, \"orthy\": 18906, \"\\u0120ambul\": 18907, \"integ\": 18908, \"\\u0120Cele\": 18909, \"\\u0120Tibet\": 18910, \"\\u0120hierarchy\": 18911, \"\\u0120cu\": 18912, \"\\u0120preseason\": 18913, \"\\u0120Peterson\": 18914, \"\\u0120colours\": 18915, \"\\u0120worrying\": 18916, \"\\u0120backers\": 18917, \"\\u0120Palmer\": 18918, \"\\u0120\\u00ce\\u00bc\": 18919, \"\\u0120contributor\": 18920, \"\\u0120hearings\": 18921, \"\\u0120urine\": 18922, \"\\u0120\\u00d9\": 18923, \"ourgeois\": 18924, \"Similar\": 18925, \"\\u0120Zimmer\": 18926, \"something\": 18927, \"\\u0120USC\": 18928, \"\\u0120strengths\": 18929, \"\\u0120FI\": 18930, \"\\u0120logging\": 18931, \"Asked\": 18932, \"\\u0120Thai\": 18933, \"inqu\": 18934, \"\\u0120Walt\": 18935, \"\\u0120crews\": 18936, \"itism\": 18937, \"301\": 18938, \"\\u0120sharply\": 18939, \"umed\": 18940, \"\\u0120redirect\": 18941, \"rators\": 18942, \"Inf\": 18943, \"\\u0120Weapons\": 18944, \"\\u0120teasp\": 18945, \"1999\": 18946, \"Live\": 18947, \"\\u0120Especially\": 18948, \"\\u0120Ster\": 18949, \"\\u0120Veterans\": 18950, \"\\u0120intro\": 18951, \"otherapy\": 18952, \"\\u0120malware\": 18953, \"\\u0120breeding\": 18954, \"\\u0120molecular\": 18955, \"\\u0120Route\": 18956, \"\\u0120Comment\": 18957, \"ochem\": 18958, \"\\u0120ain\": 18959, \"Season\": 18960, \"\\u0120linebacker\": 18961, \"\\u00c4\\u00ab\": 18962, \"\\u0120Economics\": 18963, \"esar\": 18964, \"\\u0120Lives\": 18965, \"\\u0120Emma\": 18966, \"\\u0120kin\": 18967, \"\\u0120Territ\": 18968, \"\\u0120planted\": 18969, \"oton\": 18970, \"\\u0120Butter\": 18971, \"\\u0120Spons\": 18972, \"PER\": 18973, \"\\u0120dungeon\": 18974, \"\\u0120symbolic\": 18975, \"\\u0120filmed\": 18976, \"\\u0120diets\": 18977, \"\\u0120concludes\": 18978, \"\\u0120certainty\": 18979, \"\\u0120Format\": 18980, \"\\u0120strangers\": 18981, \"format\": 18982, \"\\u0120Phase\": 18983, \"\\u0120copied\": 18984, \"\\u0120metres\": 18985, \"lda\": 18986, \"\\u0120Users\": 18987, \"\\u0120deliberate\": 18988, \"\\u0120washed\": 18989, \"\\u0120Lance\": 18990, \"imation\": 18991, \"\\u0120improper\": 18992, \"\\u0120Genesis\": 18993, \"ickr\": 18994, \"\\u0120Kush\": 18995, \"\\u0120realise\": 18996, \"\\u0120embarrassing\": 18997, \"alking\": 18998, \"bucks\": 18999, \"\\u0120verified\": 19000, \"\\u0120outline\": 19001, \"years\": 19002, \"\\u0120Income\": 19003, \"202\": 19004, \"\\u0120zombies\": 19005, \"Final\": 19006, \"\\u0120Millenn\": 19007, \"\\u0120modifications\": 19008, \"\\u0120Vision\": 19009, \"\\u0120Moses\": 19010, \"verb\": 19011, \"iterranean\": 19012, \"\\u0120Jet\": 19013, \"\\u0120naval\": 19014, \"\\u0120Agg\": 19015, \"\\u0120url\": 19016, \"\\u0120victories\": 19017, \"\\u0120nonetheless\": 19018, \"\\u0120injust\": 19019, \"\\u0120Fact\": 19020, \"\\u00e7\\u013c\": 19021, \"\\u0120insufficient\": 19022, \"review\": 19023, \"facebook\": 19024, \"\\u0120negotiating\": 19025, \"\\u0120guarantees\": 19026, \"imen\": 19027, \"utenberg\": 19028, \"\\u0120gambling\": 19029, \"\\u0120congr\": 19030, \"Loading\": 19031, \"\\u0120nevertheless\": 19032, \"\\u0120presidents\": 19033, \"\\u0120Industrial\": 19034, \"\\u0120118\": 19035, \"\\u0120poured\": 19036, \"\\u0120Tory\": 19037, \"\\u0120175\": 19038, \"\\u0120:=\": 19039, \"Scott\": 19040, \"angered\": 19041, \"Tok\": 19042, \"\\u0120organizers\": 19043, \"Mat\": 19044, \"\\u0120Growth\": 19045, \"\\u0120adul\": 19046, \"\\u0120ensures\": 19047, \"\\u0120117\": 19048, \"\\u00e9\\u00be\\u012f\\u00e5\": 19049, \"\\u0120massacre\": 19050, \"\\u0120grades\": 19051, \"before\": 19052, \"ADVERTISEMENT\": 19053, \"\\u0120Slow\": 19054, \"\\u0120MMA\": 19055, \"\\u00e2\\u0122\\u0136\\\"\": 19056, \"\\u0120Vatican\": 19057, \"Qaeda\": 19058, \"\\u0120owe\": 19059, \"6666\": 19060, \"\\u0120Sorry\": 19061, \"\\u0120Grass\": 19062, \"\\u0120backgrounds\": 19063, \"\\u0120exhausted\": 19064, \"\\u0120clan\": 19065, \"\\u0120compromised\": 19066, \"\\u0120Elf\": 19067, \"\\u0120Isaac\": 19068, \"enson\": 19069, \"Invest\": 19070, \"IFA\": 19071, \"\\u0120interrupted\": 19072, \"\\u00e3\\u0125\\u012b\\u00e3\\u0125\\u00a9\": 19073, \"\\u0120twisted\": 19074, \"\\u0120Dragons\": 19075, \"Mode\": 19076, \"\\u0120Kremlin\": 19077, \"\\u0120fertil\": 19078, \"heres\": 19079, \"phan\": 19080, \"\\u0120Node\": 19081, \"fed\": 19082, \"\\u0120Orc\": 19083, \"\\u0120unwilling\": 19084, \"Cent\": 19085, \"\\u0120priorit\": 19086, \"\\u0120graduates\": 19087, \"\\u0120subjective\": 19088, \"\\u0120issuing\": 19089, \"\\u0120Lt\": 19090, \"\\u0120viewer\": 19091, \"\\u0120woke\": 19092, \"Thus\": 19093, \"brook\": 19094, \"\\u0120depressed\": 19095, \"\\u0120bracket\": 19096, \"\\u0120Gor\": 19097, \"\\u0120Fighting\": 19098, \"\\u0120striker\": 19099, \"Report\": 19100, \"\\u0120Portugal\": 19101, \"\\u0120neo\": 19102, \"wed\": 19103, \"199\": 19104, \"\\u0120fleeing\": 19105, \"shadow\": 19106, \"identified\": 19107, \"USE\": 19108, \"Steam\": 19109, \"\\u0120stretched\": 19110, \"\\u0120revelations\": 19111, \"arted\": 19112, \"\\u0120Dw\": 19113, \"\\u0120alignment\": 19114, \"eston\": 19115, \"\\u0120Jared\": 19116, \"Sep\": 19117, \"\\u0120blogs\": 19118, \"update\": 19119, \"gom\": 19120, \"risk\": 19121, \"\\u0120clash\": 19122, \"\\u0120Hour\": 19123, \"\\u0120runtime\": 19124, \"\\u0120unwanted\": 19125, \"\\u0120scam\": 19126, \"\\u0120rack\": 19127, \"\\u0120enlight\": 19128, \"onest\": 19129, \"\\u0120Ferr\": 19130, \"\\u0120convictions\": 19131, \"\\u0120piano\": 19132, \"\\u0120circulation\": 19133, \"\\u0120Welcome\": 19134, \"\\u0120backlash\": 19135, \"\\u0120Wade\": 19136, \"\\u0120receivers\": 19137, \"otive\": 19138, \"Jeff\": 19139, \"\\u0120networking\": 19140, \"\\u0120Prep\": 19141, \"\\u0120Explorer\": 19142, \"\\u0120lecture\": 19143, \"\\u0120uploaded\": 19144, \"\\u0120Meat\": 19145, \"BLE\": 19146, \"\\u0120Nazis\": 19147, \"\\u0120Synd\": 19148, \"stud\": 19149, \"roots\": 19150, \"rians\": 19151, \"\\u0120portrayed\": 19152, \"\\u0120??\": 19153, \"\\u0120Buddha\": 19154, \"sun\": 19155, \"Robert\": 19156, \"\\u0120Complex\": 19157, \"\\u0120oversee\": 19158, \"\\u0120stealth\": 19159, \"Title\": 19160, \"\\u0120Jobs\": 19161, \"\\u0120Kum\": 19162, \"\\u0120appreciation\": 19163, \"\\u0120MOD\": 19164, \"\\u0120basics\": 19165, \"\\u0120clips\": 19166, \"\\u0120nursing\": 19167, \"\\u0120proposition\": 19168, \"\\u0120realised\": 19169, \"\\u0120NYC\": 19170, \"\\u0120allocated\": 19171, \"rium\": 19172, \"aran\": 19173, \"\\u0120Production\": 19174, \"\\u0120Vote\": 19175, \"\\u0120smugg\": 19176, \"\\u0120hunter\": 19177, \"azer\": 19178, \"\\u0120Changes\": 19179, \"\\u0120fluct\": 19180, \"yon\": 19181, \"Array\": 19182, \"\\u0120kits\": 19183, \"Water\": 19184, \"\\u0120uncommon\": 19185, \"\\u0120resting\": 19186, \"ells\": 19187, \"would\": 19188, \"\\u0120pursued\": 19189, \"\\u0120assertion\": 19190, \"ometown\": 19191, \"\\u0120Mosul\": 19192, \"\\u0120Platform\": 19193, \"iolet\": 19194, \"\\u0120shareholders\": 19195, \"\\u0120trails\": 19196, \"Pay\": 19197, \"\\u0120Enforcement\": 19198, \"types\": 19199, \"\\u0120Anonymous\": 19200, \"\\u0120satisfying\": 19201, \"ilogy\": 19202, \"\\u0120('\": 19203, \"wave\": 19204, \"city\": 19205, \"Steve\": 19206, \"\\u0120confrontation\": 19207, \"\\u0120Eld\": 19208, \"Capt\": 19209, \"ahan\": 19210, \"htm\": 19211, \"\\u0120Ctrl\": 19212, \"ONS\": 19213, \"230\": 19214, \"ifa\": 19215, \"holding\": 19216, \"\\u0120delicate\": 19217, \"\\u0120jaw\": 19218, \"\\u0120Going\": 19219, \"orum\": 19220, \"Sal\": 19221, \"\\u0120dull\": 19222, \"\\u0120Beth\": 19223, \"\\u0120prisons\": 19224, \"\\u0120ego\": 19225, \"\\u0120Elsa\": 19226, \"avorite\": 19227, \"\\u0120Gang\": 19228, \"\\u0120Nuclear\": 19229, \"\\u0120spider\": 19230, \"atsu\": 19231, \"\\u0120sampling\": 19232, \"\\u0120absorbed\": 19233, \"\\u0120Pharm\": 19234, \"ieth\": 19235, \"\\u0120bucket\": 19236, \"\\u0120Recomm\": 19237, \"OF\": 19238, \"\\u0120Factory\": 19239, \"ANCE\": 19240, \"\\u0120bacter\": 19241, \"Has\": 19242, \"\\u0120Observ\": 19243, \"121\": 19244, \"\\u0120premiere\": 19245, \"Develop\": 19246, \"\\u0120currencies\": 19247, \"Cast\": 19248, \"\\u0120accompanying\": 19249, \"\\u0120Nashville\": 19250, \"\\u0120fatty\": 19251, \"\\u0120Brend\": 19252, \"\\u0120locks\": 19253, \"\\u0120centered\": 19254, \"\\u0120UT\": 19255, \"aughs\": 19256, \"orie\": 19257, \"\\u0120Affordable\": 19258, \"vance\": 19259, \"DL\": 19260, \"emet\": 19261, \"\\u0120throne\": 19262, \"\\u0120Bluetooth\": 19263, \"\\u0120naming\": 19264, \"ifts\": 19265, \"ADE\": 19266, \"\\u0120corrected\": 19267, \"\\u0120promptly\": 19268, \"\\u0120STR\": 19269, \"\\u0120genome\": 19270, \"\\u0120cope\": 19271, \"\\u0120valley\": 19272, \"\\u0120rounded\": 19273, \"\\u0120Kend\": 19274, \"alion\": 19275, \"pers\": 19276, \"\\u0120tourism\": 19277, \"\\u0120stark\": 19278, \"vl\": 19279, \"\\u0120blowing\": 19280, \"\\u0120Schedule\": 19281, \"std\": 19282, \"\\u0120unhappy\": 19283, \"\\u0120litigation\": 19284, \"cedes\": 19285, \"\\u0120android\": 19286, \"\\u0120integral\": 19287, \"erers\": 19288, \"uded\": 19289, \"tax\": 19290, \"\\u0120reiter\": 19291, \"\\u0120Motors\": 19292, \"ociated\": 19293, \"\\u0120wonders\": 19294, \"\\u0120Apost\": 19295, \"ucking\": 19296, \"\\u0120Roosevelt\": 19297, \"fram\": 19298, \"\\u0120yields\": 19299, \"\\u0120constitutes\": 19300, \"awk\": 19301, \"Interest\": 19302, \"\\u0120interim\": 19303, \"\\u0120breakthrough\": 19304, \"\\u0120Cher\": 19305, \"\\u0120prosec\": 19306, \"\\u0120Dj\": 19307, \"\\u0120MT\": 19308, \"Resp\": 19309, \"\\u0120PT\": 19310, \"\\u0120sperm\": 19311, \"edit\": 19312, \"BT\": 19313, \"Linux\": 19314, \"country\": 19315, \"league\": 19316, \"\\u0120dick\": 19317, \"\\u0120oct\": 19318, \"\\u0120inserting\": 19319, \"\\u0120scra\": 19320, \"\\u0120Brewing\": 19321, \"\\u01201966\": 19322, \"\\u0120runners\": 19323, \"\\u0120plun\": 19324, \"idy\": 19325, \"\\u0120Dian\": 19326, \"\\u0120dysfunction\": 19327, \"\\u0120exclusion\": 19328, \"\\u0120disgr\": 19329, \"\\u0120incorporate\": 19330, \"\\u0120reconc\": 19331, \"\\u0120nominated\": 19332, \"\\u0120Archer\": 19333, \"draw\": 19334, \"achelor\": 19335, \"\\u0120writings\": 19336, \"\\u0120shallow\": 19337, \"\\u0120hast\": 19338, \"\\u0120BMW\": 19339, \"\\u0120RS\": 19340, \"\\u0120thigh\": 19341, \"\\u01201963\": 19342, \"\\u0120lamb\": 19343, \"\\u0120favored\": 19344, \"agle\": 19345, \"\\u0120cooler\": 19346, \"\\u0120Hours\": 19347, \"\\u0120GU\": 19348, \"\\u0120Origin\": 19349, \"\\u0120glimpse\": 19350, \"--------------------\": 19351, \"Lim\": 19352, \"\\u0120cheek\": 19353, \"\\u0120jealous\": 19354, \"-'\": 19355, \"\\u0120harness\": 19356, \"\\u0120Poison\": 19357, \"\\u0120disabilities\": 19358, \"neapolis\": 19359, \"\\u0120outlook\": 19360, \"\\u0120notify\": 19361, \"\\u0120Indianapolis\": 19362, \"\\u0120abrupt\": 19363, \"nsic\": 19364, \"\\u0120encrypted\": 19365, \"\\u0120forfe\": 19366, \"reath\": 19367, \"\\u0120rabb\": 19368, \"\\u0120foundations\": 19369, \"\\u0120compliment\": 19370, \"\\u0120Interview\": 19371, \"\\u0120Swe\": 19372, \"\\u0120adolesc\": 19373, \"\\u0120monitors\": 19374, \"\\u0120Sacramento\": 19375, \"\\u0120timely\": 19376, \"\\u0120contempl\": 19377, \"\\u0120positioned\": 19378, \"\\u0120posters\": 19379, \"phies\": 19380, \"iovascular\": 19381, \"void\": 19382, \"\\u0120Fifth\": 19383, \"\\u0120investigative\": 19384, \"OUN\": 19385, \"\\u0120integrate\": 19386, \"\\u0120INC\": 19387, \"isha\": 19388, \"iblings\": 19389, \"\\u0120Request\": 19390, \"\\u0120Rodriguez\": 19391, \"\\u0120slides\": 19392, \"\\u0120DX\": 19393, \"\\u0120feminism\": 19394, \"\\u0120datas\": 19395, \"\\u0120bend\": 19396, \"irus\": 19397, \"\\u0120Nigeria\": 19398, \"Fox\": 19399, \"Change\": 19400, \"\\u0120airplane\": 19401, \"\\u0120Laden\": 19402, \"\\u0120publicity\": 19403, \"ixty\": 19404, \"\\u0120commitments\": 19405, \"\\u0120aggregate\": 19406, \"\\u0120displaying\": 19407, \"\\u0120Arrow\": 19408, \"\\u0120122\": 19409, \"\\u0120respects\": 19410, \"android\": 19411, \"six\": 19412, \"\\u0120Sha\": 19413, \"\\u0120restoration\": 19414, \")\\\\\": 19415, \"WS\": 19416, \"oys\": 19417, \"\\u0120illustrate\": 19418, \"without\": 19419, \"126\": 19420, \"\\u0120\\u00e2\\u0136\\u0124\": 19421, \"\\u0120pickup\": 19422, \"nels\": 19423, \"\\u0120....\": 19424, \"food\": 19425, \"\\u0120Fen\": 19426, \")?\": 19427, \"\\u0120phenomena\": 19428, \"\\u0120companions\": 19429, \"\\u0120Write\": 19430, \"\\u0120spill\": 19431, \"\\u0120bridges\": 19432, \"\\u0120Updated\": 19433, \"\\u0120Fo\": 19434, \"\\u0120insects\": 19435, \"ASHINGTON\": 19436, \"\\u0120scare\": 19437, \"iltr\": 19438, \"\\u0120Zhang\": 19439, \"\\u0120severity\": 19440, \"\\u0120indul\": 19441, \"149\": 19442, \"\\u0120Coffee\": 19443, \"\\u0120norms\": 19444, \"\\u0120pulse\": 19445, \"\\u0120FT\": 19446, \"\\u0120horrific\": 19447, \"\\u0120Destroy\": 19448, \"\\u0120JSON\": 19449, \"\\u0120olive\": 19450, \"\\u0120discusses\": 19451, \"Rest\": 19452, \"Elect\": 19453, \"\\u0120Winn\": 19454, \"\\u0120Surviv\": 19455, \"\\u0120Hait\": 19456, \"Sure\": 19457, \"oped\": 19458, \"\\u0120rooted\": 19459, \"\\u0120Ske\": 19460, \"\\u0120Bronze\": 19461, \"\\u0120lol\": 19462, \"Default\": 19463, \"\\u0120commodity\": 19464, \"redited\": 19465, \"\\u0120libertarian\": 19466, \"\\u0120forbidden\": 19467, \"\\u0120gran\": 19468, \"\\u00e0\\u00a8\": 19469, \"\\u0120lag\": 19470, \"enz\": 19471, \"drive\": 19472, \"\\u0120mathematics\": 19473, \"\\u0120wires\": 19474, \"\\u0120critically\": 19475, \"\\u0120carbohyd\": 19476, \"\\u0120Chancellor\": 19477, \"\\u0120Eddie\": 19478, \"\\u0120banning\": 19479, \"\\u0120Fri\": 19480, \"\\u0120complications\": 19481, \"etric\": 19482, \"\\u0120Bangladesh\": 19483, \"\\u0120bandwidth\": 19484, \"Stop\": 19485, \"\\u0120Originally\": 19486, \"\\u0120halfway\": 19487, \"ynasty\": 19488, \"shine\": 19489, \"\\u0120tales\": 19490, \"rities\": 19491, \"avier\": 19492, \"\\u0120spinning\": 19493, \"\\u0120WHO\": 19494, \"\\u0120neighbourhood\": 19495, \"bach\": 19496, \"\\u0120commerce\": 19497, \"\\u0120Sle\": 19498, \"BU\": 19499, \"\\u0120entrepreneur\": 19500, \"\\u0120peculiar\": 19501, \"\\u0120Comments\": 19502, \"fre\": 19503, \"320\": 19504, \"ICS\": 19505, \"\\u0120imagery\": 19506, \"\\u0120Canon\": 19507, \"\\u0120Electronic\": 19508, \"short\": 19509, \"((\": 19510, \"Dig\": 19511, \"\\u0120commem\": 19512, \"uced\": 19513, \"\\u0120inclined\": 19514, \"\\u0120Summon\": 19515, \"\\u0120cliff\": 19516, \"\\u0120Mediterranean\": 19517, \"\\u0120poetry\": 19518, \"\\u0120prosperity\": 19519, \"\\u0120Rece\": 19520, \"\\u0120pills\": 19521, \"member\": 19522, \"\\u0120finale\": 19523, \"unc\": 19524, \"\\u0120Gig\": 19525, \"\\u00e4\\u00bd\": 19526, \"\\u0120lod\": 19527, \"\\u0120backward\": 19528, \"-+\": 19529, \"\\u0120Forward\": 19530, \"\\u0120thri\": 19531, \"sure\": 19532, \"\\u0120soap\": 19533, \"\\u0120FX\": 19534, \"RES\": 19535, \"\\u0120Sexual\": 19536, \"oulos\": 19537, \"\\u0120foolish\": 19538, \"\\u0120righteous\": 19539, \"\\u0120coff\": 19540, \"terrorism\": 19541, \"ustain\": 19542, \"oter\": 19543, \"\\u0120abuses\": 19544, \"next\": 19545, \"\\u0120abusive\": 19546, \"\\u0120thereafter\": 19547, \"\\u0120prohibition\": 19548, \"\\u0120SUP\": 19549, \"\\u0120dip\": 19550, \"\\u0120ripped\": 19551, \"\\u0120inherited\": 19552, \"\\u0120bats\": 19553, \"stru\": 19554, \"GT\": 19555, \"\\u0120flawed\": 19556, \"phabet\": 19557, \"\\u0120fog\": 19558, \"doors\": 19559, \"\\u0120imaging\": 19560, \"\\u0120digits\": 19561, \"\\u0120Hungary\": 19562, \"\\u0120arrog\": 19563, \"\\u0120teachings\": 19564, \"\\u0120protocols\": 19565, \"\\u0120Banks\": 19566, \"\\u00e0\\u00b8\": 19567, \"pound\": 19568, \"\\u0120Curt\": 19569, \".\\\")\": 19570, \"./\": 19571, \"\\u0120exemption\": 19572, \"endix\": 19573, \"\\u0120Mull\": 19574, \"\\u0120improves\": 19575, \"\\u0120Gamer\": 19576, \"dimensional\": 19577, \"Icon\": 19578, \"\\u0120Margaret\": 19579, \"Status\": 19580, \"dates\": 19581, \"\\u0120intends\": 19582, \"\\u0120depict\": 19583, \"\\u0120parked\": 19584, \"Joe\": 19585, \"\\u0120Marines\": 19586, \"chnology\": 19587, \"!).\": 19588, \"\\u0120judged\": 19589, \"\\u0120weights\": 19590, \"Ray\": 19591, \"\\u0120apartments\": 19592, \"hester\": 19593, \"\\u0120reinforce\": 19594, \"\\u0120offender\": 19595, \"occup\": 19596, \"\\u0120sore\": 19597, \"ept\": 19598, \"\\u0120PHP\": 19599, \"\\u0120Brow\": 19600, \"\\u0120authorization\": 19601, \"\\u0120Risk\": 19602, \"\\u0120Delaware\": 19603, \"\\u0120QU\": 19604, \"\\u0120notifications\": 19605, \"\\u0120sunlight\": 19606, \"\\u0120exclude\": 19607, \"dat\": 19608, \"\\u0120mesh\": 19609, \"\\u0120Sudan\": 19610, \"\\u0120belonged\": 19611, \"\\u0120subway\": 19612, \"\\u0120noon\": 19613, \"\\u0120Interior\": 19614, \"olics\": 19615, \"\\u0120Lakers\": 19616, \"\\u0120coding\": 19617, \"Disclaimer\": 19618, \"Calif\": 19619, \"Old\": 19620, \"\\u0120disl\": 19621, \"?????\": 19622, \"\\u0120confirms\": 19623, \"\\u0120recruitment\": 19624, \"\\u0120homicide\": 19625, \"Consider\": 19626, \"\\u0120Jeffrey\": 19627, \"fty\": 19628, \"};\": 19629, \"\\u0120objection\": 19630, \"doing\": 19631, \"\\u0120Leo\": 19632, \"Want\": 19633, \"\\u0120glow\": 19634, \"\\u0120Clarke\": 19635, \"\\u0120Norman\": 19636, \"\\u0120verification\": 19637, \"\\u0120packet\": 19638, \"\\u0120Formula\": 19639, \"\\u0120plag\": 19640, \"esville\": 19641, \"\\u0120shouting\": 19642, \"\\u0120ov\": 19643, \"\\u0120REC\": 19644, \"\\u0120Bub\": 19645, \"\\u0120ninth\": 19646, \"\\u0120energ\": 19647, \"\\u0120validity\": 19648, \"\\u0120ups\": 19649, \"jack\": 19650, \"\\u0120neighboring\": 19651, \"\\u0120Nec\": 19652, \"eworks\": 19653, \"\\u0120Hab\": 19654, \"arez\": 19655, \"\\u0120spine\": 19656, \"\\u0120eventual\": 19657, \"\\u0120Leaders\": 19658, \"\\u0120Carn\": 19659, \"\\u0120probation\": 19660, \"\\u0120romance\": 19661, \"msg\": 19662, \"\\u0120Mechanical\": 19663, \"ERY\": 19664, \"Rock\": 19665, \"\\u0120partisan\": 19666, \"Node\": 19667, \"assets\": 19668, \"minent\": 19669, \"\\u0120foreigners\": 19670, \"\\u0120testify\": 19671, \"\\u0120Usually\": 19672, \"lords\": 19673, \"\\u0120Gren\": 19674, \"\\u0120Powell\": 19675, \"BIL\": 19676, \"\\u0120sr\": 19677, \"\\u0120addict\": 19678, \"\\u0120shells\": 19679, \"\\u0120sigh\": 19680, \"\\u0120Yale\": 19681, \"ternity\": 19682, \"\\u0120750\": 19683, \"EU\": 19684, \"\\u0120Rifle\": 19685, \"\\u0120patron\": 19686, \"ema\": 19687, \"\\u0120Bannon\": 19688, \"anity\": 19689, \"\\u0120tropical\": 19690, \"\\u0120VII\": 19691, \"cross\": 19692, \"Everything\": 19693, \"\\u0120ISO\": 19694, \"\\u0120humble\": 19695, \"assing\": 19696, \"\\u0120FIG\": 19697, \"\\u0120updating\": 19698, \"yson\": 19699, \"\\u0120calcium\": 19700, \"\\u0120competent\": 19701, \"\\u0120steering\": 19702, \"Prot\": 19703, \"\\u0120SY\": 19704, \"\\u0120Finals\": 19705, \"\\u0120Rug\": 19706, \"159\": 19707, \"137\": 19708, \"\\u0120Golf\": 19709, \"\\u0120126\": 19710, \"\\u0120accommodation\": 19711, \"\\u0120Hughes\": 19712, \"\\u0120aesthetic\": 19713, \"artisan\": 19714, \"\\u0120Twilight\": 19715, \"\\u0120prince\": 19716, \"\\u0120Agriculture\": 19717, \"\\u0120Disco\": 19718, \"\\u0120precedent\": 19719, \"\\u0120typing\": 19720, \"authorized\": 19721, \"Option\": 19722, \"\\u0120Aub\": 19723, \"lishes\": 19724, \"acht\": 19725, \"mag\": 19726, \"Peter\": 19727, \"\\u0120UFO\": 19728, \"monton\": 19729, \"\\u0120Lith\": 19730, \"\\u0120arom\": 19731, \"\\u0120securing\": 19732, \"\\u0120confined\": 19733, \"private\": 19734, \"\\u0120swords\": 19735, \"\\u0120markers\": 19736, \"\\u0120metabolic\": 19737, \"select\": 19738, \"\\u0120Curse\": 19739, \"\\u0120Ot\": 19740, \"gressive\": 19741, \"\\u0120incumb\": 19742, \"\\u0120Saga\": 19743, \"\\u0120priced\": 19744, \"\\u0120clearance\": 19745, \"Content\": 19746, \"\\u0120drilling\": 19747, \"\\u0120notices\": 19748, \"\\u0120bourgeois\": 19749, \"\\u0120vest\": 19750, \"\\u0120cookie\": 19751, \"\\u0120Guardians\": 19752, \"rys\": 19753, \"inyl\": 19754, \"\\u0120124\": 19755, \"\\u0120plausible\": 19756, \"ongh\": 19757, \"\\u0120Odin\": 19758, \"\\u0120conception\": 19759, \"\\u0120Yuk\": 19760, \"\\u0120Baghdad\": 19761, \"\\u0120Flag\": 19762, \"Austral\": 19763, \"\\u0120IBM\": 19764, \"\\u0120internationally\": 19765, \"\\u0120WikiLeaks\": 19766, \"IED\": 19767, \"\\u0120cyn\": 19768, \"\\u0120chooses\": 19769, \"\\u0120Pill\": 19770, \"\\u0120combining\": 19771, \"\\u0120radi\": 19772, \"\\u0120Mohammed\": 19773, \"defense\": 19774, \"atching\": 19775, \"Subject\": 19776, \"iciency\": 19777, \"Frame\": 19778, \"\\u0120{\\\"\": 19779, \"\\u0120chess\": 19780, \"\\u0120timer\": 19781, \"190\": 19782, \"\\u0120tin\": 19783, \"\\u0120ordinance\": 19784, \"emetery\": 19785, \"\\u0120accusing\": 19786, \"\\u0120noticeable\": 19787, \"\\u0120centres\": 19788, \"\\u0120lid\": 19789, \"\\u0120Mills\": 19790, \"imgur\": 19791, \"\\u0120zoom\": 19792, \"ergic\": 19793, \"\\u0120compression\": 19794, \"prim\": 19795, \"find\": 19796, \"\\u0120surg\": 19797, \"\\u0120pand\": 19798, \"\\u0120Kee\": 19799, \"\\u0120Chad\": 19800, \"cellence\": 19801, \"oyle\": 19802, \"\\u0120socialism\": 19803, \"\\u0120Travis\": 19804, \"\\u0120MHz\": 19805, \"\\u0120guild\": 19806, \"ALLY\": 19807, \"\\u0120Subscribe\": 19808, \"\\u0120Related\": 19809, \"\\u0120occurrence\": 19810, \"itching\": 19811, \"\\u0120fictional\": 19812, \"\\u0120crush\": 19813, \"\\u0120EA\": 19814, \"cod\": 19815, \"mix\": 19816, \"\\u0120Triple\": 19817, \"\\u0120retrieve\": 19818, \"\\u0120stimulus\": 19819, \"\\u0120psychiat\": 19820, \"\\u0120Door\": 19821, \"\\u0120homosexuality\": 19822, \"\\u0120elementary\": 19823, \"\\u0120cellular\": 19824, \"idian\": 19825, \"\\u0120Laun\": 19826, \"\\u0120intriguing\": 19827, \"\\u0120foam\": 19828, \"\\u0120Bass\": 19829, \"idi\": 19830, \"itsu\": 19831, \"\\u0120assure\": 19832, \"\\u0120congrat\": 19833, \"\\u0120businessman\": 19834, \"\\u0120Boost\": 19835, \"close\": 19836, \"\\u0120lied\": 19837, \"\\u0120sciences\": 19838, \"\\u0120Omega\": 19839, \"\\u0120Graphics\": 19840, \"\\u0120<=\": 19841, \"spoken\": 19842, \"\\u0120connectivity\": 19843, \"Saturday\": 19844, \"\\u0120Avengers\": 19845, \"\\u0120toggle\": 19846, \"\\u0120ankle\": 19847, \"\\u0120nationalist\": 19848, \"model\": 19849, \"\\u0120Pool\": 19850, \"ophobia\": 19851, \"Var\": 19852, \"\\u0120Mons\": 19853, \"atories\": 19854, \"\\u0120aggressively\": 19855, \"Clear\": 19856, \"Forge\": 19857, \"acters\": 19858, \"\\u0120hedge\": 19859, \"\\u0120pipes\": 19860, \"\\u0120blunt\": 19861, \"\\u0120sq\": 19862, \"\\u0120remotely\": 19863, \"Wed\": 19864, \"asers\": 19865, \"\\u0120refriger\": 19866, \"\\u0120tiles\": 19867, \"\\u0120rescued\": 19868, \"\\u0120comprised\": 19869, \"insky\": 19870, \"\\u0120manif\": 19871, \"avanaugh\": 19872, \"\\u0120prolifer\": 19873, \"\\u0120aligned\": 19874, \"xml\": 19875, \"\\u0120triv\": 19876, \"\\u0120coordination\": 19877, \"\\u0120PER\": 19878, \"\\u0120Quote\": 19879, \"134\": 19880, \"bf\": 19881, \"\\u0120Saw\": 19882, \"\\u0120termination\": 19883, \"\\u0120190\": 19884, \"\\u0120additions\": 19885, \"\\u0120trio\": 19886, \"\\u0120projections\": 19887, \"\\u0120positively\": 19888, \"\\u0120inclusive\": 19889, \"\\u0120membr\": 19890, \"1990\": 19891, \"older\": 19892, \"\\u0120practiced\": 19893, \"inkle\": 19894, \"Arch\": 19895, \"\\u0120starters\": 19896, \"arius\": 19897, \"\\u0120intermediate\": 19898, \"\\u0120Benef\": 19899, \"\\u0120Killer\": 19900, \"\\u0120interventions\": 19901, \"\\u0120Kil\": 19902, \"\\u0120Flying\": 19903, \"Inv\": 19904, \"\\u0120premature\": 19905, \"\\u0120psychiatric\": 19906, \"\\u0120indie\": 19907, \"\\u0120collar\": 19908, \"\\u0120Rainbow\": 19909, \"afi\": 19910, \"\\u0120disruption\": 19911, \"\\u0120FOX\": 19912, \"casting\": 19913, \"\\u0120misdem\": 19914, \"cro\": 19915, \"\\u0120wipe\": 19916, \"ardon\": 19917, \"\\u0120bast\": 19918, \"\\u0120Tommy\": 19919, \"\\u0120Representative\": 19920, \"\\u0120belly\": 19921, \"\\u0120PO\": 19922, \"\\u0120Breitbart\": 19923, \"132\": 19924, \"\\u0120messaging\": 19925, \"Should\": 19926, \"References\": 19927, \"\\u0120GRE\": 19928, \"istical\": 19929, \"LP\": 19930, \"\\u0120Cav\": 19931, \"\\u0120Crazy\": 19932, \"\\u0120intuitive\": 19933, \"keeping\": 19934, \"\\u0120Moss\": 19935, \"\\u0120discontin\": 19936, \"\\u0120Module\": 19937, \"\\u0120unrelated\": 19938, \"\\u0120Practice\": 19939, \"\\u0120Transport\": 19940, \"\\u0120statistically\": 19941, \"orns\": 19942, \"\\u0120sized\": 19943, \"pu\": 19944, \"\\u0120caf\": 19945, \"\\u0120Worlds\": 19946, \"\\u0120Rodgers\": 19947, \"\\u0120Lun\": 19948, \"\\u0120Comic\": 19949, \"living\": 19950, \"\\u0120cared\": 19951, \"\\u0120climbed\": 19952, \"){\": 19953, \"\\u0120consisted\": 19954, \"\\u0120medieval\": 19955, \"folk\": 19956, \"\\u0120hacked\": 19957, \"\\u0120dire\": 19958, \"\\u0120Hermione\": 19959, \"\\u0120tended\": 19960, \"ceans\": 19961, \"Daniel\": 19962, \"went\": 19963, \"\\u0120legislators\": 19964, \"\\u0120redes\": 19965, \"games\": 19966, \"\\u0120gn\": 19967, \"amiliar\": 19968, \"\\u0120++\": 19969, \"ggy\": 19970, \"threat\": 19971, \"\\u0120magnet\": 19972, \"\\u0120perceive\": 19973, \"\\u0120zip\": 19974, \"\\u0120indictment\": 19975, \"\\u0120critique\": 19976, \"gard\": 19977, \"\\u0120Safe\": 19978, \"\\u0120Cream\": 19979, \"\\u0120advent\": 19980, \"oba\": 19981, \"\\u0120vowed\": 19982, \"ousands\": 19983, \"\\u0120ski\": 19984, \"\\u0120abortions\": 19985, \"uart\": 19986, \"\\u0120stunned\": 19987, \"\\u0120advancing\": 19988, \"\\u0120lacked\": 19989, \"\\u0120\\\\\\\"\": 19990, \"\\u0120schizophren\": 19991, \"\\u0120elegant\": 19992, \"\\u0120conferences\": 19993, \"\\u0120canceled\": 19994, \"\\u0120Hudson\": 19995, \"\\u0120Hopefully\": 19996, \"\\u0120trump\": 19997, \"\\u0120frequencies\": 19998, \"\\u0120meteor\": 19999, \"\\u0120Junior\": 20000, \"\\u0120Fleet\": 20001, \"\\u0120Malcolm\": 20002, \"\\u0120Tools\": 20003, \"\\u0120........\": 20004, \"\\u0120hobby\": 20005, \"\\u0120Europeans\": 20006, \"\\u01201500\": 20007, \"\\u0120Into\": 20008, \"\\u0120sway\": 20009, \"\\u0120Appro\": 20010, \"\\u0120Compl\": 20011, \"Community\": 20012, \"\\u0120tide\": 20013, \"\\u0120Summit\": 20014, \"\\u00e4\\u00bb\": 20015, \"\\u0120intervals\": 20016, \"\\u0120Ether\": 20017, \"\\u0120habitat\": 20018, \"\\u0120Stevens\": 20019, \"lishing\": 20020, \"\\u0120Domain\": 20021, \"\\u0120triggers\": 20022, \"\\u0120chasing\": 20023, \"\\u0120charm\": 20024, \"\\u0120Flower\": 20025, \"itored\": 20026, \"\\u0120blessing\": 20027, \"\\u0120textures\": 20028, \"Five\": 20029, \"\\u0120liquor\": 20030, \"RP\": 20031, \"FIN\": 20032, \"\\u01201962\": 20033, \"CAR\": 20034, \"Unknown\": 20035, \"\\u0120resil\": 20036, \"\\u0120Lily\": 20037, \"\\u0120abundance\": 20038, \"\\u0120predictable\": 20039, \"rar\": 20040, \"\\u0120bullshit\": 20041, \"leen\": 20042, \"chet\": 20043, \"Mor\": 20044, \"Much\": 20045, \"\\u00e4\\u00b9\": 20046, \"\\u0120emphasized\": 20047, \"\\u0120crust\": 20048, \"\\u0120primitive\": 20049, \"\\u0120enjoyable\": 20050, \"\\u0120Pictures\": 20051, \"\\u0120teammate\": 20052, \"pler\": 20053, \"\\u0120Tol\": 20054, \"\\u0120Kane\": 20055, \"\\u0120summoned\": 20056, \"thy\": 20057, \"rama\": 20058, \"\\u0120Honda\": 20059, \"\\u0120realizing\": 20060, \"\\u0120quicker\": 20061, \"\\u0120concentrate\": 20062, \"clear\": 20063, \"\\u0120210\": 20064, \"\\u0120Erdogan\": 20065, \"aris\": 20066, \"\\u0120responds\": 20067, \"\\u0120BI\": 20068, \"\\u0120eligibility\": 20069, \"\\u0120pushes\": 20070, \"\\u0120Idaho\": 20071, \"\\u0120aggrav\": 20072, \"\\u0120ruins\": 20073, \"urations\": 20074, \"\\u0120bans\": 20075, \"\\u0120anat\": 20076, \"share\": 20077, \"\\u0120grind\": 20078, \"hin\": 20079, \"umen\": 20080, \"\\u0120utilities\": 20081, \"\\u0120Yankees\": 20082, \"\\u0120databases\": 20083, \"\\u0120DD\": 20084, \"\\u0120displaced\": 20085, \"\\u0120dependencies\": 20086, \"\\u0120stimulation\": 20087, \"hun\": 20088, \"houses\": 20089, \"\\u0120Pretty\": 20090, \"\\u0120Ravens\": 20091, \"\\u0120TODAY\": 20092, \"\\u0120associates\": 20093, \"\\u0120therape\": 20094, \"cled\": 20095, \"\\u0120deer\": 20096, \"\\u0120repairs\": 20097, \"rentice\": 20098, \"\\u0120receptors\": 20099, \"\\u0120remed\": 20100, \"\\u0120Ce\": 20101, \"\\u0120marriages\": 20102, \"\\u0120ballots\": 20103, \"\\u0120Soldier\": 20104, \"\\u0120hilarious\": 20105, \"opl\": 20106, \"138\": 20107, \"\\u0120inherently\": 20108, \"\\u0120ignorant\": 20109, \"\\u0120bounce\": 20110, \"\\u0120Easter\": 20111, \"RELATED\": 20112, \"\\u0120Currency\": 20113, \"EV\": 20114, \"\\u00e3\\u0125\\u0140\": 20115, \"\\u0120Lead\": 20116, \"\\u0120deceased\": 20117, \"Brien\": 20118, \"\\u0120Musk\": 20119, \"JS\": 20120, \"\\u0120merge\": 20121, \"hearted\": 20122, \"creat\": 20123, \"mitt\": 20124, \"mund\": 20125, \"\\u0120\\u00e2\\u0122\\u012d\": 20126, \"\\u0120Bag\": 20127, \"\\u0120projection\": 20128, \"\\u0120java\": 20129, \"\\u0120Standards\": 20130, \"\\u0120Leonard\": 20131, \"\\u0120coconut\": 20132, \"\\u0120Population\": 20133, \"\\u0120traject\": 20134, \"\\u0120imply\": 20135, \"\\u0120curiosity\": 20136, \"\\u0120DB\": 20137, \"\\u0120Fresh\": 20138, \"\\u0120Por\": 20139, \"\\u0120heavier\": 20140, \"neys\": 20141, \"gomery\": 20142, \"\\u0120deserved\": 20143, \"\\u0120phrases\": 20144, \"\\u0120GC\": 20145, \"\\u0120yeast\": 20146, \"desc\": 20147, \"Death\": 20148, \"\\u0120reboot\": 20149, \"\\u0120metadata\": 20150, \"ICAL\": 20151, \"\\u0120repay\": 20152, \"\\u0120Independence\": 20153, \"\\u0120suburban\": 20154, \"icals\": 20155, \"\\u0120atop\": 20156, \"\\u0120allocation\": 20157, \"generation\": 20158, \"\\u0120Gram\": 20159, \"\\u0120moisture\": 20160, \"\\u0120pine\": 20161, \"\\u0120Liberals\": 20162, \"\\u0120aides\": 20163, \"\\u0120underest\": 20164, \"\\u0120Berry\": 20165, \"\\u0120ceremon\": 20166, \"370\": 20167, \"astrous\": 20168, \"\\u0120Pirates\": 20169, \"\\u0120tense\": 20170, \"\\u0120Industries\": 20171, \"\\u0120Appeals\": 20172, \"\\u0120Near\": 20173, \"\\u0120\\u00e8\\u00a3\\u0131\\u00e7\": 20174, \"\\u0120lovers\": 20175, \"\\u0120CAP\": 20176, \"\\u0120Craw\": 20177, \"\\u0120giants\": 20178, \"\\u0120efficacy\": 20179, \"Element\": 20180, \"\\u0120Behavior\": 20181, \"\\u0120Toyota\": 20182, \"\\u0120intest\": 20183, \"Priv\": 20184, \"AI\": 20185, \"\\u0120maneuver\": 20186, \"\\u0120perfection\": 20187, \"\\u0120bang\": 20188, \"paper\": 20189, \"rill\": 20190, \"George\": 20191, \"border\": 20192, \"inters\": 20193, \"\\u0120Seth\": 20194, \"\\u0120clues\": 20195, \"\\u0120Levi\": 20196, \"\\u0120Revenue\": 20197, \"147\": 20198, \"\\u0120vapor\": 20199, \"\\u0120fortunate\": 20200, \"\\u0120threatens\": 20201, \"\\u0120vet\": 20202, \"\\u0120dependency\": 20203, \"ersed\": 20204, \"article\": 20205, \"\\u0120Blizzard\": 20206, \"\\u0120chlor\": 20207, \"\\u0120minus\": 20208, \"\\u0120Bills\": 20209, \"\\u0120cryptocurrency\": 20210, \"\\u0120metabolism\": 20211, \"tering\": 20212, \"\\u0120pestic\": 20213, \"steps\": 20214, \"\\u0120Treasure\": 20215, \"racted\": 20216, \"\\u0120Constant\": 20217, \"\\u0120temp\": 20218, \"139\": 20219, \"\\u0120Detective\": 20220, \"urally\": 20221, \"\\u0120recovering\": 20222, \"\\u0120cortex\": 20223, \"\\u0120144\": 20224, \"closed\": 20225, \"\\u0120prejudice\": 20226, \"aunted\": 20227, \"\\u0120storms\": 20228, \"\\u0120NOW\": 20229, \"\\u0120machinery\": 20230, \"Address\": 20231, \"\\u0120compelled\": 20232, \"270\": 20233, \"\\u0120despair\": 20234, \"bane\": 20235, \"\\u0120vegetable\": 20236, \"\\u0120beds\": 20237, \"Learn\": 20238, \"\\u0120colorful\": 20239, \"\\u0120spike\": 20240, \"\\u0120margins\": 20241, \"\\u0120sympathy\": 20242, \"\\u0120workshop\": 20243, \"\\u0120CBC\": 20244, \"Sat\": 20245, \"\\u0120burns\": 20246, \"\\u0120Gender\": 20247, \"\\u0120129\": 20248, \"\\u0120Cable\": 20249, \"\\u0120debts\": 20250, \"\\u0120Theresa\": 20251, \"\\u0120reflecting\": 20252, \"\\u0120airst\": 20253, \"\\u0120rim\": 20254, \"ramid\": 20255, \"\\u0120weaknesses\": 20256, \"Writ\": 20257, \"oggle\": 20258, \"ti\": 20259, \"\\u0120Charge\": 20260, \"\\u0120weighed\": 20261, \"\\u0120(.\": 20262, \"\\u0120laughter\": 20263, \"\\u0120router\": 20264, \"\\u0120Democracy\": 20265, \"Dear\": 20266, \"\\u0120hasht\": 20267, \"\\u0120dy\": 20268, \"\\u0120hints\": 20269, \"running\": 20270, \"\\u0120finishes\": 20271, \"arus\": 20272, \"Mass\": 20273, \"result\": 20274, \"ascus\": 20275, \"\\u0120vintage\": 20276, \"\\u0120conqu\": 20277, \"\\u0120wildly\": 20278, \"acist\": 20279, \"\\u0120lingu\": 20280, \"\\u0120protagonist\": 20281, \"strom\": 20282, \"teenth\": 20283, \"\\u0120Solo\": 20284, \"mac\": 20285, \"filled\": 20286, \"\\u0120renown\": 20287, \"itives\": 20288, \"\\u0120motive\": 20289, \"\\u0120Antar\": 20290, \"\\u0120Mann\": 20291, \"\\u0120Adjust\": 20292, \"\\u0120rockets\": 20293, \"\\u0120troubling\": 20294, \"ei\": 20295, \"\\u0120organisms\": 20296, \"assis\": 20297, \"Christian\": 20298, \"\\u0120145\": 20299, \"\\u0120Hass\": 20300, \"\\u0120swall\": 20301, \"\\u0120wax\": 20302, \"\\u0120Survival\": 20303, \"VS\": 20304, \"\\u0120Murd\": 20305, \"vd\": 20306, \"standard\": 20307, \"\\u0120dragons\": 20308, \"\\u0120acceleration\": 20309, \"rational\": 20310, \"final\": 20311, \"\\u0120paired\": 20312, \"\\u0120Ethereum\": 20313, \"\\u0120interfaces\": 20314, \"\\u0120resent\": 20315, \"\\u0120artifacts\": 20316, \"\\u00c5\\u00ab\": 20317, \"arel\": 20318, \"\\u0120competitor\": 20319, \"\\u0120Nicholas\": 20320, \"\\u0120Surface\": 20321, \"cpp\": 20322, \"\\u0120Tot\": 20323, \"\\u0120economically\": 20324, \"\\u0120organised\": 20325, \"\\u0120enforced\": 20326, \"inho\": 20327, \"\\u0120varieties\": 20328, \"\\u0120abdom\": 20329, \"\\u0120Bailey\": 20330, \"idav\": 20331, \"\\u0120Salv\": 20332, \"paid\": 20333, \"\\u0120altitude\": 20334, \"essert\": 20335, \"\\u0120Gutenberg\": 20336, \"area\": 20337, \"opoulos\": 20338, \"\\u0120professors\": 20339, \"iggs\": 20340, \"\\u0120Fate\": 20341, \"hey\": 20342, \"\\u01203000\": 20343, \"Dist\": 20344, \"\\u0120twins\": 20345, \"cill\": 20346, \"\\u0120Maps\": 20347, \"\\u0120traps\": 20348, \"\\u0120weed\": 20349, \"\\u0120Kiss\": 20350, \"\\u0120yoga\": 20351, \"\\u0120recipients\": 20352, \"\\u0120Westminster\": 20353, \"\\u0120pools\": 20354, \"\\u0120Walmart\": 20355, \"188\": 20356, \"\\u0120Schools\": 20357, \"attack\": 20358, \"\\u0120ARM\": 20359, \"paragraph\": 20360, \"Warning\": 20361, \"jl\": 20362, \"\\u0120selfish\": 20363, \"anchez\": 20364, \"\\u0120Heights\": 20365, \"Fre\": 20366, \"\\u0120Soph\": 20367, \"\\u0120--------------------------------\": 20368, \"tml\": 20369, \"333\": 20370, \"\\u0120raids\": 20371, \"\\u0120satellites\": 20372, \"KEY\": 20373, \"\\u0120lasts\": 20374, \"\\u00d1\\u0124\": 20375, \"Ins\": 20376, \"\\u0120Dame\": 20377, \"\\u0120unpredict\": 20378, \"///\": 20379, \"ghai\": 20380, \"\\u0120artillery\": 20381, \"\\u0120cruise\": 20382, \"\\u0120gel\": 20383, \"\\u0120Cabinet\": 20384, \"\\u0120blows\": 20385, \"\\u0120Esp\": 20386, \"\\u0120proximity\": 20387, \"othe\": 20388, \"\\u0120Skills\": 20389, \"\\u0120Upper\": 20390, \"obo\": 20391, \"\\u0120NDP\": 20392, \"\\u0120enjoys\": 20393, \"\\u0120repeating\": 20394, \"\\u0120Construction\": 20395, \"\\u0120Questions\": 20396, \"Hillary\": 20397, \"\\u0120uint\": 20398, \"\\u0120processors\": 20399, \"\\u0120Gibson\": 20400, \"\\u0120Multiple\": 20401, \"qa\": 20402, \"\\u0120Bom\": 20403, \"\\u0120Miles\": 20404, \"ventional\": 20405, \"\\u0120hurts\": 20406, \"skin\": 20407, \"\\u0120AIDS\": 20408, \"\\u0120advisers\": 20409, \"\\u0120Root\": 20410, \"\\u0120methodology\": 20411, \"\\u0120Dale\": 20412, \"\\u0120deton\": 20413, \"\\u0120Knowledge\": 20414, \"sequently\": 20415, \"\\u0120121\": 20416, \"\\u0120connects\": 20417, \"Cy\": 20418, \"\\u0120Danger\": 20419, \"\\u0120contributors\": 20420, \"\\u0120Bent\": 20421, \"\\u0120brass\": 20422, \"\\u0120Guns\": 20423, \"into\": 20424, \"\\u0120Fortune\": 20425, \"\\u0120broker\": 20426, \"balance\": 20427, \"\\u0120lengths\": 20428, \"\\u0120vic\": 20429, \"\\u0120averaging\": 20430, \"\\u0120appropriately\": 20431, \"\\u0120Camera\": 20432, \"\\u0120sandwich\": 20433, \"\\u0120CDC\": 20434, \"\\u0120coordinate\": 20435, \"\\u0120navig\": 20436, \"\\u0120goodness\": 20437, \"laim\": 20438, \"\\u0120brake\": 20439, \"\\u0120extremist\": 20440, \"\\u0120Wake\": 20441, \"\\u0120Mend\": 20442, \"\\u0120Tiny\": 20443, \"\\u0120COL\": 20444, \"\\u0120RF\": 20445, \"\\u0120Dual\": 20446, \"\\u0120Wine\": 20447, \"Case\": 20448, \"\\u0120refined\": 20449, \"\\u0120lamp\": 20450, \"Lead\": 20451, \"\\u0120bapt\": 20452, \"\\u0120Carb\": 20453, \"\\u0120Sadd\": 20454, \"\\u0120Minneapolis\": 20455, \"PDF\": 20456, \"Early\": 20457, \"\\u0120Hidden\": 20458, \"Its\": 20459, \"\\u0120TIME\": 20460, \"\\u0120pap\": 20461, \"\\u0120commissioned\": 20462, \"\\u0120Few\": 20463, \"\\u0120Colts\": 20464, \"\\u0120Bren\": 20465, \"\\u0120bothered\": 20466, \"\\u0120likewise\": 20467, \"Exper\": 20468, \"\\u0120Schw\": 20469, \"cry\": 20470, \"nn\": 20471, \"\\u0120Mitch\": 20472, \"imon\": 20473, \"MG\": 20474, \"bm\": 20475, \"UMP\": 20476, \"rays\": 20477, \"\\u0120registry\": 20478, \"\\u0120270\": 20479, \"achine\": 20480, \"rella\": 20481, \"anting\": 20482, \"00000\": 20483, \"\\u0120ruined\": 20484, \"spot\": 20485, \"\\u0120ta\": 20486, \"\\u0120maximize\": 20487, \"\\u0120inconven\": 20488, \"Dead\": 20489, \"Human\": 20490, \"Enabled\": 20491, \"\\u0120Marie\": 20492, \"\\u0120chill\": 20493, \"\\u0120Paradise\": 20494, \"\\u0120starring\": 20495, \"\\u0120Latino\": 20496, \"\\u0120Protocol\": 20497, \"\\u0120EVER\": 20498, \"\\u0120suppliers\": 20499, \"message\": 20500, \"\\u0120Brock\": 20501, \"\\u0120serum\": 20502, \"\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\": 20503, \"\\u0120encomp\": 20504, \"\\u0120ambition\": 20505, \"uese\": 20506, \"\\u0120arrows\": 20507, \"Andrew\": 20508, \"\\u0120antenna\": 20509, \"\\u01201961\": 20510, \"\\u0120Bark\": 20511, \"\\u0120bool\": 20512, \"\\u00e3\\u0124\\u00aa\": 20513, \"\\u0120Storage\": 20514, \"\\u0120railway\": 20515, \"\\u0120tougher\": 20516, \"\\u0120Cad\": 20517, \"\\u0120washing\": 20518, \"Py\": 20519, \"']\": 20520, \"embed\": 20521, \"\\u0120Memphis\": 20522, \"ackle\": 20523, \"\\u0120famously\": 20524, \"\\u0120Fortunately\": 20525, \"ovies\": 20526, \"\\u0120mindset\": 20527, \"\\u0120sneak\": 20528, \"\\u0120Dh\": 20529, \"RAW\": 20530, \"\\u0120Simpson\": 20531, \"\\u0120livest\": 20532, \"\\u0120landmark\": 20533, \"\\u0120cement\": 20534, \"Low\": 20535, \"\\u0120thrilled\": 20536, \"\\u0120Course\": 20537, \"inel\": 20538, \"\\u0120chuck\": 20539, \"idate\": 20540, \"global\": 20541, \"\\u0120whit\": 20542, \"\\u0120\\u00ef\\u00bf\\u00bd\": 20543, \"adays\": 20544, \"ski\": 20545, \"\\u0120SV\": 20546, \"\\u0120viruses\": 20547, \"306\": 20548, \"\\u0120Respons\": 20549, \"\\u0120theaters\": 20550, \"\\u0120Branch\": 20551, \"\\u0120Geneva\": 20552, \"\\u0120MK\": 20553, \"\\u0120unbeliev\": 20554, \"\\u0120communist\": 20555, \"Original\": 20556, \"\\u0120Received\": 20557, \"\\u0120Transfer\": 20558, \"\\u0120Arg\": 20559, \"Input\": 20560, \"\\u0120Strategy\": 20561, \"\\u0120palace\": 20562, \"thening\": 20563, \"Dri\": 20564, \"\\u0120sentencing\": 20565, \"umbnail\": 20566, \"\\u0120pins\": 20567, \"recy\": 20568, \"\\u0120siblings\": 20569, \"Getting\": 20570, \"\\u0120BU\": 20571, \"\\u0120Northwest\": 20572, \"\\u0120prolonged\": 20573, \"\\u0120Sakura\": 20574, \"Comb\": 20575, \"\\u0120Bour\": 20576, \"\\u0120inadequate\": 20577, \"\\u0120Kash\": 20578, \"\\u0120username\": 20579, \"\\u0120Improve\": 20580, \"\\u0120battling\": 20581, \"\\u0120MAC\": 20582, \"\\u0120curriculum\": 20583, \"\\u0120soda\": 20584, \"\\u0120Cannon\": 20585, \"\\u0120sensible\": 20586, \"spons\": 20587, \"December\": 20588, \"\\u0120wicked\": 20589, \"\\u0120Pengu\": 20590, \"\\u0120dictators\": 20591, \"\\u0120Hearts\": 20592, \"ogyn\": 20593, \"\\u0120similarities\": 20594, \"\\u0120Stats\": 20595, \"\\u0120hollow\": 20596, \"itations\": 20597, \"\\\":[\": 20598, \"\\u0120hover\": 20599, \"\\u0120Listen\": 20600, \"sch\": 20601, \"Sund\": 20602, \"\\u0120cad\": 20603, \"\\u0120Parks\": 20604, \"\\u0120lur\": 20605, \"\\u0120hype\": 20606, \"\\u0120Lem\": 20607, \"NAME\": 20608, \"isure\": 20609, \"Friday\": 20610, \"\\u0120shoots\": 20611, \"\\u0120closes\": 20612, \"\\u0120db\": 20613, \"\\u0120Ridge\": 20614, \"\\u0120Different\": 20615, \"\\u0120replies\": 20616, \"\\u0120Broadway\": 20617, \"opers\": 20618, \"\\u0120intoler\": 20619, \"\\u0120Zeus\": 20620, \"akespe\": 20621, \"\\u0120proprietary\": 20622, \"\\u0120requesting\": 20623, \"\\u0120controllers\": 20624, \"\\u0120MIN\": 20625, \"imedia\": 20626, \"becca\": 20627, \"\\u0120expans\": 20628, \"\\u0120oils\": 20629, \"Bot\": 20630, \"\\u0120Chand\": 20631, \"\\u0120printer\": 20632, \"\\u0120topped\": 20633, \"\\u0120POL\": 20634, \"\\u0120Earlier\": 20635, \"Social\": 20636, \"avin\": 20637, \"\\u0120decreases\": 20638, \"\\u0120Seb\": 20639, \"\\u0120specifications\": 20640, \"\\u0120Blast\": 20641, \"\\u0120Kurt\": 20642, \"\\u0120freel\": 20643, \"Brown\": 20644, \"\\u0120dilig\": 20645, \"roe\": 20646, \"\\u0120Problem\": 20647, \"\\u0120Quad\": 20648, \"\\u0120decentral\": 20649, \"\\u0120Vector\": 20650, \"anut\": 20651, \"\\u0120plugins\": 20652, \"\\u0120Gregory\": 20653, \"\\u0120fucked\": 20654, \"elines\": 20655, \"\\u0120Ambassador\": 20656, \"take\": 20657, \"\\u0120cleans\": 20658, \"ongyang\": 20659, \"Anonymous\": 20660, \"stro\": 20661, \"\\\"}\": 20662, \"aline\": 20663, \"\\u0120Odd\": 20664, \"\\u0120Eug\": 20665, \"216\": 20666, \"\\u0120boil\": 20667, \"\\u0120Powers\": 20668, \"\\u0120nurses\": 20669, \"Obviously\": 20670, \"\\u0120Technical\": 20671, \"\\u0120exceeded\": 20672, \"ORS\": 20673, \"\\u0120extremists\": 20674, \"\\u0120traces\": 20675, \"expl\": 20676, \"\\u0120comr\": 20677, \"\\u0120Sach\": 20678, \")/\": 20679, \"\\u0120masks\": 20680, \"\\u0120sci\": 20681, \"Bon\": 20682, \"\\u0120regression\": 20683, \"wegian\": 20684, \"\\u0120advisor\": 20685, \"itures\": 20686, \"\\u0120Vo\": 20687, \"example\": 20688, \"\\u0120Instruct\": 20689, \"\\u0120siege\": 20690, \"\\u0120reductions\": 20691, \"ptr\": 20692, \"\\u0120statutory\": 20693, \"\\u0120removes\": 20694, \"\\u0120puck\": 20695, \"redits\": 20696, \"\\u0120bee\": 20697, \"\\u0120salad\": 20698, \"\\u0120promotions\": 20699, \"\\u0120Joshua\": 20700, \"withstanding\": 20701, \"ETH\": 20702, \"\\u0120Cha\": 20703, \"imus\": 20704, \"\\u0120expenditure\": 20705, \"aunting\": 20706, \"\\u0120delighted\": 20707, \"\\u0120155\": 20708, \"beh\": 20709, \"\\u0120carpet\": 20710, \"\\u0120Spart\": 20711, \"\\u0120jungle\": 20712, \"lists\": 20713, \"\\u0120bullying\": 20714, \"\\u0120Nobel\": 20715, \"\\u0120Glen\": 20716, \"\\u0120referenced\": 20717, \"\\u0120introduces\": 20718, \"sein\": 20719, \"\\u0120chopped\": 20720, \"glass\": 20721, \"\\u0120Wrest\": 20722, \"\\u0120neutrality\": 20723, \"\\u0120\\u00e2\\u013b\": 20724, \"\\u0120investigator\": 20725, \"\\u0120shelves\": 20726, \"\\u0120unconstitutional\": 20727, \"\\u0120reproduction\": 20728, \"\\u0120merchant\": 20729, \"mia\": 20730, \"\\u0120metrics\": 20731, \"\\u0120explosives\": 20732, \"\\u0120Sonia\": 20733, \"\\u0120bodily\": 20734, \"\\u0120thickness\": 20735, \"\\u0120predominantly\": 20736, \"\\u0120Ability\": 20737, \"\\u0120monitored\": 20738, \"ICH\": 20739, \"\\u0120].\": 20740, \"\\u0120Martinez\": 20741, \"\\u0120visibility\": 20742, \"\\u0120queries\": 20743, \"\\u0120genocide\": 20744, \"\\u0120Warfare\": 20745, \"Query\": 20746, \"\\u0120studios\": 20747, \"\\u0120embry\": 20748, \"\\u0120corridor\": 20749, \"\\u0120cleaned\": 20750, \"complete\": 20751, \"\\u0120MH\": 20752, \"\\u0120enrollment\": 20753, \"INGS\": 20754, \"\\u0120impacted\": 20755, \"\\u0120disastrous\": 20756, \"\\u0120Yun\": 20757, \"\\u0120Claire\": 20758, \"\\u0120Basically\": 20759, \"yt\": 20760, \"usterity\": 20761, \"\\u0120indirectly\": 20762, \"wik\": 20763, \"\\u0120dod\": 20764, \"\\u0120Carr\": 20765, \"\\u0120amp\": 20766, \"\\u0120prohibit\": 20767, \"\\u0120Initial\": 20768, \"\\u0120Rd\": 20769, \"iji\": 20770, \"\\u0120educate\": 20771, \"corn\": 20772, \"iott\": 20773, \"\\u0120Beauty\": 20774, \"\\u0120detective\": 20775, \"\\u0120Conn\": 20776, \"since\": 20777, \"\\u0120stagger\": 20778, \"\\u0120obese\": 20779, \"\\u0120bree\": 20780, \"ologic\": 20781, \"isse\": 20782, \"walker\": 20783, \"\\u0120blades\": 20784, \"\\u0120lawful\": 20785, \"func\": 20786, \"\\u0120Behind\": 20787, \"\\u0120appetite\": 20788, \"\\u0120(*\": 20789, \"\\u0120tennis\": 20790, \"\\u0120offspring\": 20791, \"\\u0120jets\": 20792, \"\\u0120structured\": 20793, \"\\u0120aforementioned\": 20794, \"Nov\": 20795, \"\\u0120scaling\": 20796, \"fill\": 20797, \"\\u0120stew\": 20798, \"\\u0120curb\": 20799, \"\\u0120Stephan\": 20800, \"edIn\": 20801, \"SF\": 20802, \"obic\": 20803, \"\\u00e9\\u0143\\u0136\": 20804, \"oug\": 20805, \"\\u0120MM\": 20806, \"\\u0120genetically\": 20807, \"opez\": 20808, \"136\": 20809, \"\\u0120umb\": 20810, \"ancers\": 20811, \"\\u0120cohort\": 20812, \"\\u0120merchandise\": 20813, \"\\u0120imposing\": 20814, \"\\u0120Legislature\": 20815, \"\\u0120Archive\": 20816, \"ivia\": 20817, \"\\u0120Naval\": 20818, \"\\u0120offences\": 20819, \"\\u0120miracle\": 20820, \"\\u0120snapped\": 20821, \"\\u0120foes\": 20822, \"\\u0120extensively\": 20823, \"\\u0120Raf\": 20824, \"\\u0120cater\": 20825, \"edience\": 20826, \"Kit\": 20827, \"\\u0120Bin\": 20828, \"\\u0120recommends\": 20829, \"\\u0120Cities\": 20830, \"\\u0120rigid\": 20831, \"\\u0120READ\": 20832, \"\\u0120Noble\": 20833, \"\\u0120Tian\": 20834, \"\\u0120certificates\": 20835, \"antis\": 20836, \"oiler\": 20837, \"\\u0120Buddhist\": 20838, \"did\": 20839, \"\\u0120surveyed\": 20840, \"\\u0120downward\": 20841, \"\\u0120prints\": 20842, \"\\u0120Motion\": 20843, \"ronics\": 20844, \"\\u0120Sans\": 20845, \"ossibly\": 20846, \"uctions\": 20847, \"\\u0120colonies\": 20848, \"\\u0120Danish\": 20849, \"unit\": 20850, \"\\u0120spoil\": 20851, \"\\u0120advisory\": 20852, \"berries\": 20853, \"Plan\": 20854, \"\\u0120specification\": 20855, \"ophers\": 20856, \"\\u0120Resource\": 20857, \"\\u0120shirts\": 20858, \"prisingly\": 20859, \"communications\": 20860, \"\\u0120trivial\": 20861, \"\\u0120mentioning\": 20862, \"isexual\": 20863, \"\\u0120supplements\": 20864, \"\\u0120supervision\": 20865, \"BP\": 20866, \"vor\": 20867, \"\\u0120wit\": 20868, \"\\u0120cooldown\": 20869, \"\\u0120plaintiff\": 20870, \"\\u0120Reviews\": 20871, \"\\u0120Sri\": 20872, \"\\u0120Mint\": 20873, \"\\u0120Sugar\": 20874, \"\\u0120afterward\": 20875, \"\\u0120Priest\": 20876, \"\\u0120Investment\": 20877, \"ogene\": 20878, \"\\u0120Taking\": 20879, \"\\u0120stretching\": 20880, \"\\u0120inflammation\": 20881, \"\\u0120Tehran\": 20882, \"\\u0120lining\": 20883, \"\\u0120freezing\": 20884, \"\\u0120Entity\": 20885, \"\\u0120inspiring\": 20886, \"special\": 20887, \"price\": 20888, \"\\u0120sue\": 20889, \"\\u0120Porter\": 20890, \"ounge\": 20891, \"ETA\": 20892, \"\\u0120Derek\": 20893, \"\\u0120Luis\": 20894, \"uo\": 20895, \"ymph\": 20896, \"\\u0120exterior\": 20897, \"ihil\": 20898, \"\\u0120Ashley\": 20899, \"inator\": 20900, \"\\u0120nutrients\": 20901, \"\\u0120Thrones\": 20902, \"\\u0120finances\": 20903, \"\\u0120Inspect\": 20904, \"\\u0120specially\": 20905, \"\\u0120Required\": 20906, \"\\u0120PTS\": 20907, \"\\u0120Violence\": 20908, \"ointed\": 20909, \"shots\": 20910, \"\\u0120excerpt\": 20911, \"coon\": 20912, \"INS\": 20913, \"\\u0120Gri\": 20914, \"\\u0120recognised\": 20915, \"Week\": 20916, \"Young\": 20917, \"\\u0120vom\": 20918, \"isle\": 20919, \"\\u0120Curry\": 20920, \"\\u0120Buddh\": 20921, \"\\u0120notebook\": 20922, \"\\u0120durable\": 20923, \"/?\": 20924, \"\\u0120Gad\": 20925, \"\\u0120Pupp\": 20926, \"\\u0120forgive\": 20927, \"park\": 20928, \"\\u0120personalities\": 20929, \"analysis\": 20930, \"clamation\": 20931, \"\\u0120elevator\": 20932, \"\\u0120warehouse\": 20933, \"\\u0120Role\": 20934, \"unn\": 20935, \"\\u0120illustration\": 20936, \"\\u0120Scan\": 20937, \"\\u0120atmospheric\": 20938, \"Import\": 20939, \"ANC\": 20940, \"ricted\": 20941, \"fu\": 20942, \"010\": 20943, \"\\u0120arche\": 20944, \"\\u0120rewarded\": 20945, \"akespeare\": 20946, \"\\u0120internally\": 20947, \"\\u0120RBI\": 20948, \"alker\": 20949, \"\\u0120elephant\": 20950, \"owitz\": 20951, \"\\u0120Pizza\": 20952, \"\\u0120bipartisan\": 20953, \"\\u00c3\\u00a9s\": 20954, \"\\u0120slowed\": 20955, \"\\u0120Stark\": 20956, \"\\u0120override\": 20957, \"OUS\": 20958, \"\\u0120320\": 20959, \"undreds\": 20960, \"\\u0120Deck\": 20961, \"\\u0120Census\": 20962, \"bee\": 20963, \"146\": 20964, \"otor\": 20965, \"\\u0120ip\": 20966, \"\\u0120ub\": 20967, \"ocations\": 20968, \"\\u0120Button\": 20969, \"rice\": 20970, \"\\u0120cripp\": 20971, \"fff\": 20972, \"\\u0120originated\": 20973, \"\\u0120overwhelmed\": 20974, \"appa\": 20975, \"\\u0120foremost\": 20976, \"\\u00e2\\u0122\\u0133\": 20977, \"\\u0120LEG\": 20978, \"release\": 20979, \"eatured\": 20980, \"atches\": 20981, \"\\u0120reps\": 20982, \"\\u0120lending\": 20983, \"\\u0120Reference\": 20984, \"\\u0120Client\": 20985, \"165\": 20986, \"venth\": 20987, \"Complete\": 20988, \"\\u0120Patrol\": 20989, \"\\u0120sworn\": 20990, \"cam\": 20991, \"\\u0120shuttle\": 20992, \"\\u0120Ralph\": 20993, \"\\u0120hometown\": 20994, \"-,\": 20995, \"onal\": 20996, \"\\u0120BP\": 20997, \"\\u00e5\\u0131\": 20998, \"\\u0120persuade\": 20999, \"\\u0120Alexand\": 21000, \"\\u0120combines\": 21001, \"\\u0120vivid\": 21002, \"\\u0120Lag\": 21003, \"\\u0120encoding\": 21004, \"\\u0120salvation\": 21005, \"wen\": 21006, \"\\u0120Recovery\": 21007, \"iya\": 21008, \"University\": 21009, \"\\u0120Biden\": 21010, \"\\u0120budgets\": 21011, \"\\u0120Texans\": 21012, \"fits\": 21013, \"\\u0120honored\": 21014, \"\\u0120python\": 21015, \"TD\": 21016, \"###\": 21017, \"clone\": 21018, \"\\u0120blink\": 21019, \"\\u0120Liquid\": 21020, \"\\u0120unemployed\": 21021, \"\\u0120clashes\": 21022, \"\\u0120Counsel\": 21023, \"\\u0120directing\": 21024, \"\\u0120punct\": 21025, \"\\u0120Falcons\": 21026, \"\\u0120shark\": 21027, \"\\u0120Damascus\": 21028, \"\\u0120jeans\": 21029, \"\\u0120embark\": 21030, \"\\u0120seize\": 21031, \"\\u0120upwards\": 21032, \"280\": 21033, \"\\u0120Ez\": 21034, \"\\u0120Anything\": 21035, \"\\u0120exotic\": 21036, \"lower\": 21037, \"\\u0120Creator\": 21038, \"\\u0120Um\": 21039, \"\\u0120suburbs\": 21040, \"berger\": 21041, \"\\u0120Wend\": 21042, \"\\u0120mint\": 21043, \"\\u0120XX\": 21044, \"\\u0120Dro\": 21045, \"\\u0120suffers\": 21046, \"\\u0120herb\": 21047, \"tree\": 21048, \"\\u0120fragile\": 21049, \"\\u0120flooded\": 21050, \"\\u0120Alcohol\": 21051, \"olean\": 21052, \"nyder\": 21053, \"\\u0120KO\": 21054, \"Fram\": 21055, \"\\u0120136\": 21056, \"\\u0120owed\": 21057, \"\\u0120Melee\": 21058, \"\\u0120Hash\": 21059, \"\\u0120whisk\": 21060, \"\\u0120sudo\": 21061, \"rr\": 21062, \"Quick\": 21063, \"appro\": 21064, \"\\u0120ii\": 21065, \"\\u0120Examples\": 21066, \"hee\": 21067, \"\\u0120promotes\": 21068, \"perature\": 21069, \"kar\": 21070, \"\\u0120Honor\": 21071, \"\\u0120sodium\": 21072, \"\\u0120Lif\": 21073, \"rosso\": 21074, \"intendent\": 21075, \"\\u0120correspondent\": 21076, \"Found\": 21077, \"secret\": 21078, \"\\u0120identifies\": 21079, \"agne\": 21080, \"\\u0120lou\": 21081, \"\\u0120PP\": 21082, \"\\u0120coincidence\": 21083, \"move\": 21084, \"\\u0120militia\": 21085, \"\\u0120infiltr\": 21086, \"\\u0120Primary\": 21087, \"\\u0120pitching\": 21088, \"\\u0120Ib\": 21089, \"\\u0120GOOD\": 21090, \"\\u00e3\\u0124\\u00b8\": 21091, \"\\u0120Wizards\": 21092, \"iral\": 21093, \"\\u0120Venus\": 21094, \"RR\": 21095, \"\\u0120\\u00e2\\u0122\\u0137\": 21096, \"\\u0120Casey\": 21097, \"\\u0120sadly\": 21098, \"\\u0120admire\": 21099, \"\\u0120embarrassed\": 21100, \"cb\": 21101, \"Mel\": 21102, \"\\u0120tubes\": 21103, \"\\u0120beautifully\": 21104, \"\\u0120Queensland\": 21105, \"Below\": 21106, \"rez\": 21107, \"quet\": 21108, \"pleasant\": 21109, \"\\u0120\\u00c2\\u00ab\": 21110, \"Camp\": 21111, \"\\u0120decisive\": 21112, \"1998\": 21113, \"\\u0120Lamb\": 21114, \"utton\": 21115, \"hn\": 21116, \"\\u0120Jagu\": 21117, \"aunder\": 21118, \"\\u0120Cord\": 21119, \"\\u0120clerk\": 21120, \"\\u0120caffe\": 21121, \"\\u0120wiped\": 21122, \"\\u0120reim\": 21123, \"\\u0120Mountains\": 21124, \"\\u0120imprisoned\": 21125, \"\\u0120develops\": 21126, \"\\u0120Pra\": 21127, \"\\u0120modeling\": 21128, \"Anyone\": 21129, \"ancel\": 21130, \"\\u0120Sit\": 21131, \"\\u0120shields\": 21132, \"\\u0120lawn\": 21133, \"\\u0120cardiovascular\": 21134, \"\\u0120demonstrating\": 21135, \"\\u0120parse\": 21136, \"\\u0120Israelis\": 21137, \"\\u0120euros\": 21138, \"143\": 21139, \"\\u0120glorious\": 21140, \"inski\": 21141, \"ecd\": 21142, \"\\u0120conditioning\": 21143, \"\\u0120helpless\": 21144, \"\\u0120microsc\": 21145, \"\\u0120Harbor\": 21146, \"\\u0120stakes\": 21147, \"\\u0120260\": 21148, \"\\u0120unequ\": 21149, \"\\u0120Floyd\": 21150, \"\\u0120damp\": 21151, \"\\u0120apparatus\": 21152, \"\\u0120Laws\": 21153, \"\\u0120counters\": 21154, \"\\u0120induce\": 21155, \"atable\": 21156, \"\\u0120Ahmed\": 21157, \"\\u0120slam\": 21158, \"November\": 21159, \"\\u0120persist\": 21160, \"\\u0120imminent\": 21161, \"\\u00c3\\u00a1n\": 21162, \"\\u0120shred\": 21163, \"\\u0120phases\": 21164, \"\\u0120Edmonton\": 21165, \"\\u0120Armstrong\": 21166, \"\\u0120Meet\": 21167, \"\\u0120Kitty\": 21168, \"\\u00d1\\u0122\": 21169, \"circ\": 21170, \"\\u0120Adult\": 21171, \"\\u0120arose\": 21172, \"\\u0120Xen\": 21173, \"Dan\": 21174, \"gow\": 21175, \"\\u0120superf\": 21176, \"\\u0120Admir\": 21177, \"\\u0120endure\": 21178, \"\\u0120keyword\": 21179, \"yrus\": 21180, \"\\u0120yarn\": 21181, \"\\u0120pathway\": 21182, \"\\u0120Hopkins\": 21183, \"midt\": 21184, \"\\u0120censorship\": 21185, \"dependent\": 21186, \"\\u0120instructor\": 21187, \"Sources\": 21188, \"\\u0120toe\": 21189, \"\\u0120balloon\": 21190, \"Nob\": 21191, \"\\u0120swear\": 21192, \"\\u0120Castro\": 21193, \"\\u0120gloss\": 21194, \"\\u0120Kavanaugh\": 21195, \"\\u0120remarkably\": 21196, \"Photos\": 21197, \"\\u0120Nom\": 21198, \"\\u0120Southeast\": 21199, \"yers\": 21200, \"\\u0120validation\": 21201, \"\\u0120cannon\": 21202, \"\\u0120Victory\": 21203, \"\\u0120Pierre\": 21204, \"\\u0120cautious\": 21205, \"Audio\": 21206, \"\\u0120fetch\": 21207, \"\\u0120Gift\": 21208, \"\\u0120Hyp\": 21209, \"\\u0120remedy\": 21210, \"ZE\": 21211, \"\\u0120scent\": 21212, \"\\u0120beard\": 21213, \"\\u0120Rut\": 21214, \"-\\\"\": 21215, \"\\u0120patents\": 21216, \"Hy\": 21217, \"\\u0120unjust\": 21218, \"\\u0120potato\": 21219, \"\\u0120forthcoming\": 21220, \"\\u0120chef\": 21221, \"\\u0120Rift\": 21222, \"affe\": 21223, \"\\u0120ROM\": 21224, \"\\u0120Launch\": 21225, \"\\u0120pads\": 21226, \"\\u0120Neo\": 21227, \"\\u0120onset\": 21228, \"\\u0120squeeze\": 21229, \"safe\": 21230, \"\\u0120prefix\": 21231, \"\\u0120TM\": 21232, \"\\u0120Nearly\": 21233, \"\\u0120Clinical\": 21234, \"\\u0120Mental\": 21235, \"otiation\": 21236, \"\\u0120Unic\": 21237, \"antry\": 21238, \"\\u0120Cir\": 21239, \"\\u0120epit\": 21240, \"\\u00c3\\u00a6\": 21241, \"\\u0120extracted\": 21242, \"versely\": 21243, \"riad\": 21244, \"\\u0120strains\": 21245, \"\\u0120tops\": 21246, \"\\u0120poem\": 21247, \"\\u0120Randy\": 21248, \"\\u0120Maple\": 21249, \"THER\": 21250, \"upiter\": 21251, \"\\u0120SSD\": 21252, \"\\u013c\\u00e9\": 21253, \"\\u0120uncon\": 21254, \"pering\": 21255, \"\\u0120slept\": 21256, \"iners\": 21257, \"\\u0120underwater\": 21258, \"\\u0120Evidence\": 21259, \"gone\": 21260, \"205\": 21261, \"\\u0120historians\": 21262, \"\\u0120synthesis\": 21263, \"\\u0120frog\": 21264, \"basketball\": 21265, \"\\u0120vibrant\": 21266, \"\\u0120subord\": 21267, \"\\u0120365\": 21268, \"\\u0120Dial\": 21269, \"\\u0120cooperate\": 21270, \"HAHA\": 21271, \"\\u0120greeted\": 21272, \"158\": 21273, \"\\u0120jazz\": 21274, \"\\u0120intox\": 21275, \"\\u0120Walking\": 21276, \"\\u0120supervisor\": 21277, \"\\u0120Fusion\": 21278, \"\\u0120Mercedes\": 21279, \"send\": 21280, \"Ham\": 21281, \"sd\": 21282, \"nl\": 21283, \"\\u0120tours\": 21284, \"\\u0120FIFA\": 21285, \"\\u0120culp\": 21286, \"gd\": 21287, \"304\": 21288, \"\\u0120pleas\": 21289, \"\\u0120illustrates\": 21290, \"\\u0120Colombia\": 21291, \"\\u0120highlighting\": 21292, \"\\u0120Summary\": 21293, \"\\u0120exposing\": 21294, \"\\u0120Dru\": 21295, \"\\u0120irony\": 21296, \"ritional\": 21297, \"\\u0120Carroll\": 21298, \"\\u0120Ellis\": 21299, \"Pict\": 21300, \"\\u0120Rapt\": 21301, \"\\u0120adapter\": 21302, \"\\u0120unm\": 21303, \"\\u0120corpse\": 21304, \"\\u0120celebrities\": 21305, \"Den\": 21306, \"atum\": 21307, \"\\u0120Apocalypse\": 21308, \"\\u0120Wag\": 21309, \"lining\": 21310, \"\\u0120hormones\": 21311, \"Rub\": 21312, \"\\u0120Xi\": 21313, \"\\u0120Vaults\": 21314, \"208\": 21315, \"alkyrie\": 21316, \"inosaur\": 21317, \"\\u0120feeds\": 21318, \"vity\": 21319, \"\\u0120defeating\": 21320, \"Wait\": 21321, \"\\u0120emphasize\": 21322, \"\\u0120Steelers\": 21323, \"yrinth\": 21324, \"leys\": 21325, \"\\u0120Whenever\": 21326, \"Currently\": 21327, \"\\u0120Clock\": 21328, \"\\u0120collectively\": 21329, \"anyon\": 21330, \"\\u0120JP\": 21331, \"\\u0120mentality\": 21332, \"\\u0120downloads\": 21333, \"\\u0120surroundings\": 21334, \"\\u0120Barnes\": 21335, \"\\u0120flagship\": 21336, \"\\u0120indicators\": 21337, \"\\u0120grapp\": 21338, \"January\": 21339, \"\\u0120Elemental\": 21340, \"\\u0120Athena\": 21341, \"ibal\": 21342, \"\\u0120sights\": 21343, \"\\u0120capita\": 21344, \"\\u0120Treaty\": 21345, \"\\u0120voiced\": 21346, \"\\u0120Gaz\": 21347, \"lette\": 21348, \"\\u0120ya\": 21349, \"\\u0120expired\": 21350, \"Legend\": 21351, \"Hot\": 21352, \"nature\": 21353, \"\\u0120unstable\": 21354, \"\\u0120280\": 21355, \"\\u00c3\\u00ba\": 21356, \"Comment\": 21357, \"ALE\": 21358, \"\\u0120quests\": 21359, \"\\u0120handler\": 21360, \"nis\": 21361, \"\\u0120versatile\": 21362, \"\\u0120conceal\": 21363, \"engeance\": 21364, \"\\u0120Interactive\": 21365, \"\\u0120obsessed\": 21366, \"\\u0120Dogs\": 21367, \"\\u0120cracked\": 21368, \"Sound\": 21369, \"sv\": 21370, \"\\u0120Dylan\": 21371, \"roads\": 21372, \"fx\": 21373, \"\\u0120Catholics\": 21374, \"\\u0120Hag\": 21375, \"\\u0120slammed\": 21376, \"\\u0120glowing\": 21377, \"sale\": 21378, \"\\u0120tissues\": 21379, \"\\u0120Chi\": 21380, \"nee\": 21381, \"\\u0120cher\": 21382, \"sic\": 21383, \"urrection\": 21384, \"\\u0120bacon\": 21385, \"ulatory\": 21386, \").\\\"\": 21387, \"\\u0120irregular\": 21388, \"FORM\": 21389, \"assed\": 21390, \"\\u0120intentional\": 21391, \"\\u0120compensate\": 21392, \"\\u0120Speaking\": 21393, \"\\u0120Sets\": 21394, \"153\": 21395, \"\\u0120conventions\": 21396, \"bands\": 21397, \"emade\": 21398, \"\\u0120ecc\": 21399, \"\\u0120Winston\": 21400, \"\\u0120Assassin\": 21401, \"\\u0120Belgian\": 21402, \"\\u0120dependence\": 21403, \"\\u0120niche\": 21404, \"\\u0120bark\": 21405, \"\\u0120Jazz\": 21406, \"\\u0120disadvantage\": 21407, \"\\u0120gasoline\": 21408, \"\\u0120165\": 21409, \"\\u00e7\\u013c\\u0126\": 21410, \"essa\": 21411, \"module\": 21412, \"angular\": 21413, \"OY\": 21414, \"\\u0120Treatment\": 21415, \"itas\": 21416, \"olation\": 21417, \"\\u0120Arnold\": 21418, \"\\u0120feud\": 21419, \"\\u0120Nest\": 21420, \"\\u0120theatre\": 21421, \"ewater\": 21422, \"\\u0120minors\": 21423, \"olicy\": 21424, \"\\u0120Haven\": 21425, \"division\": 21426, \"\\u0120trunk\": 21427, \"Far\": 21428, \"\\u0120Pull\": 21429, \"\\u0120capturing\": 21430, \"\\u01201800\": 21431, \"\\u0120Teen\": 21432, \"\\u0120exempl\": 21433, \"\\u0120clinics\": 21434, \"\\u0120Burg\": 21435, \"\\u0120substit\": 21436, \"\\u0120payload\": 21437, \"\\u0120Lav\": 21438, \"\\u0120Troy\": 21439, \"\\u0120Witness\": 21440, \"\\u0120fragments\": 21441, \"\\u0120passwords\": 21442, \"\\u0120gospel\": 21443, \"\\u0120Gin\": 21444, \"\\u0120tenants\": 21445, \"olith\": 21446, \"Six\": 21447, \"Previous\": 21448, \"\\u0120Ages\": 21449, \"\\u0120Darwin\": 21450, \"\\u0120blat\": 21451, \"\\u0120empathy\": 21452, \"smith\": 21453, \"bag\": 21454, \"\\u0120Echo\": 21455, \"\\u0120Camb\": 21456, \"\\u0120Madd\": 21457, \"\\u0120Boo\": 21458, \"\\u0120rede\": 21459, \"\\u0120Burning\": 21460, \"\\u0120smoothly\": 21461, \"\\u0120Adrian\": 21462, \"\\u0120Vampire\": 21463, \"\\u0120Monsters\": 21464, \"steam\": 21465, \"Style\": 21466, \"Ma\": 21467, \"rea\": 21468, \"\\u0120Dwar\": 21469, \"alyst\": 21470, \"ursor\": 21471, \"\\u0120elimination\": 21472, \"\\u0120crypto\": 21473, \"cht\": 21474, \"\\u0120Eternal\": 21475, \"\\u00e2\\u0122\\u00a6]\": 21476, \"\\u0120Sorce\": 21477, \"Ill\": 21478, \"NER\": 21479, \"\\u0120uh\": 21480, \"Conclusion\": 21481, \"wage\": 21482, \"\\u0120respir\": 21483, \"\\u0120reminis\": 21484, \"hetical\": 21485, \"\\u0120gy\": 21486, \"\\u0120utilized\": 21487, \"icidal\": 21488, \"\\u01201900\": 21489, \"\\u0120hunters\": 21490, \"\\u0120Swan\": 21491, \"\\u0120React\": 21492, \"\\u0120visitor\": 21493, \"\\u0120Thanksgiving\": 21494, \"308\": 21495, \"Posts\": 21496, \"\\u0120hips\": 21497, \"1997\": 21498, \"omers\": 21499, \"\\u0120knocking\": 21500, \"\\u0120Vehicle\": 21501, \"\\u0120til\": 21502, \"\\u0120138\": 21503, \"\\u0120mi\": 21504, \"\\u0120Investigation\": 21505, \"\\u0120Kenya\": 21506, \"\\u0120casino\": 21507, \"\\u0120motives\": 21508, \"\\u0120regain\": 21509, \"rex\": 21510, \"\\u0120weekends\": 21511, \"\\u0120stabbed\": 21512, \"boro\": 21513, \"\\u0120exploited\": 21514, \"\\u0120HAVE\": 21515, \"\\u0120Television\": 21516, \"cock\": 21517, \"\\u0120preparations\": 21518, \"\\u0120endeav\": 21519, \"\\u0120Remote\": 21520, \"\\u0120Maker\": 21521, \"\\u0120Produ\": 21522, \"\\u0120Evan\": 21523, \"\\u0120informational\": 21524, \"\\u0120Louisville\": 21525, \"154\": 21526, \"\\u0120Dreams\": 21527, \"\\u0120plots\": 21528, \"\\u0120Runner\": 21529, \"\\u0120hurting\": 21530, \"\\u0120academy\": 21531, \"\\u0120Montgomery\": 21532, \"nm\": 21533, \"\\u0120Lanc\": 21534, \"\\u0120Alz\": 21535, \"210\": 21536, \"elong\": 21537, \"\\u0120retailer\": 21538, \"\\u0120arising\": 21539, \"\\u0120rebellion\": 21540, \"\\u0120blonde\": 21541, \"played\": 21542, \"\\u0120instrumental\": 21543, \"Cross\": 21544, \"\\u0120retention\": 21545, \"\\u0120therapeutic\": 21546, \"\\u0120seas\": 21547, \"\\u0120infantry\": 21548, \"\\u0120Clint\": 21549, \"\\u0120prompting\": 21550, \"\\u0120bitch\": 21551, \"\\u0120stems\": 21552, \"\\u0120Kra\": 21553, \"\\u0120thesis\": 21554, \"\\u0120Bog\": 21555, \"rued\": 21556, \"\\u0120kings\": 21557, \"\\u0120clay\": 21558, \"ificent\": 21559, \"\\u0120YES\": 21560, \"\\u0120Thing\": 21561, \"\\u0120Cubs\": 21562, \"veyard\": 21563, \"elsh\": 21564, \"inarily\": 21565, \"\\u0120Ey\": 21566, \"\\u0120Rolling\": 21567, \"\\u0120evolving\": 21568, \"India\": 21569, \"\\u0120recognizes\": 21570, \"\\u0120graduation\": 21571, \"isers\": 21572, \"\\u0120fertility\": 21573, \"\\u0120Milan\": 21574, \"Command\": 21575, \"\\u0120boxing\": 21576, \"\\u01201943\": 21577, \"\\u0120gluten\": 21578, \"\\u0120Emir\": 21579, \"\\u0120idol\": 21580, \"\\u0120conceived\": 21581, \"\\u0120Creation\": 21582, \"Merit\": 21583, \"uddy\": 21584, \"ussions\": 21585, \"\\u0120Lieutenant\": 21586, \"ietal\": 21587, \"\\u0120unchanged\": 21588, \"\\u0120Scale\": 21589, \"\\u0120Crimea\": 21590, \"balls\": 21591, \"atorial\": 21592, \"\\u0120depths\": 21593, \"\\u0120empirical\": 21594, \"\\u0120transm\": 21595, \"\\u0120unsafe\": 21596, \"missible\": 21597, \"comfort\": 21598, \"156\": 21599, \"\\u0120mechanic\": 21600, \"002\": 21601, \"lins\": 21602, \"\\u0120smoked\": 21603, \"Pos\": 21604, \"\\u0120slowing\": 21605, \"\\u0120lav\": 21606, \"Texas\": 21607, \"\\u0120cheating\": 21608, \"\\u0120Metropolitan\": 21609, \"ethyl\": 21610, \"\\u0120discovering\": 21611, \"asse\": 21612, \"\\u0120pencil\": 21613, \"\\u0120Pyongyang\": 21614, \"\\u0120closet\": 21615, \"\\u0120Sheet\": 21616, \"\\u0120Entry\": 21617, \"oustic\": 21618, \"\\u0120myst\": 21619, \"erate\": 21620, \"ariat\": 21621, \"\\u0120minerals\": 21622, \"\\u0120musician\": 21623, \"\\u0120Pul\": 21624, \"\\u0120Maz\": 21625, \"249\": 21626, \"\\u0120permissions\": 21627, \"\\u0120iv\": 21628, \"enary\": 21629, \"ickers\": 21630, \"\\u0120Bing\": 21631, \"hea\": 21632, \"enable\": 21633, \"\\u0120griev\": 21634, \"\\u0120asserted\": 21635, \"\\u0120Colonel\": 21636, \"\\u0120affidav\": 21637, \"wo\": 21638, \"\\u0120seated\": 21639, \"\\u0120Ride\": 21640, \"\\u0120paintings\": 21641, \"\\u0120Pix\": 21642, \"\\u0120137\": 21643, \"ishi\": 21644, \"umbai\": 21645, \"gotten\": 21646, \"\\u0120Earl\": 21647, \"\\u0120inning\": 21648, \"\\u0120census\": 21649, \"\\u0120travelled\": 21650, \"\\u0120Consult\": 21651, \"185\": 21652, \"bind\": 21653, \"\\u0120simplicity\": 21654, \"\\u0120overlooked\": 21655, \"\\u0120Helpful\": 21656, \"\\u0120monkey\": 21657, \"\\u0120overwhelmingly\": 21658, \"Blood\": 21659, \"\\u0120Flint\": 21660, \"\\u0120Jama\": 21661, \"\\u0120Present\": 21662, \"\\u0120Rage\": 21663, \"\\u0120TA\": 21664, \"ptive\": 21665, \"\\u0120turnout\": 21666, \"wald\": 21667, \"\\u0120Dolphins\": 21668, \"\\u0120VPN\": 21669, \"\\u0120onion\": 21670, \"\\u0120crafting\": 21671, \"mma\": 21672, \"\\u0120Mercury\": 21673, \"\\u0120arrange\": 21674, \"\\u0120alerts\": 21675, \"\\u0120OT\": 21676, \"zbollah\": 21677, \"\\u0120gases\": 21678, \"\\u0120Richardson\": 21679, \"sal\": 21680, \"lar\": 21681, \"\\u0120frost\": 21682, \"\\u0120lowering\": 21683, \"\\u0120acclaim\": 21684, \"\\u0120startups\": 21685, \"\\u0120Gain\": 21686, \"essment\": 21687, \"\\u0120guardian\": 21688, \"\\u00e4\\u00ba\\u00ba\": 21689, \"\\u0120Pie\": 21690, \"\\u0120Links\": 21691, \"\\u0120merits\": 21692, \"\\u0120awake\": 21693, \"\\u0120parental\": 21694, \"\\u0120exceeds\": 21695, \"\\u0120idle\": 21696, \"\\u0120Pilot\": 21697, \"\\u0120eBay\": 21698, \"\\u0120Accept\": 21699, \"ipeg\": 21700, \"Cam\": 21701, \"\\u0120Kot\": 21702, \"\\u0120traders\": 21703, \"olitics\": 21704, \"unker\": 21705, \"\\u0120Pale\": 21706, \"osi\": 21707, \"anmar\": 21708, \"\\u01201947\": 21709, \"\\u0120Fell\": 21710, \"estial\": 21711, \"itating\": 21712, \"GF\": 21713, \"\\u0120Sr\": 21714, \"ifted\": 21715, \"\\u0120connector\": 21716, \"\\u0120Bone\": 21717, \"illes\": 21718, \"260\": 21719, \"hma\": 21720, \"\\u0120overlap\": 21721, \"\\u0120GitHub\": 21722, \"\\u0120cleaner\": 21723, \"\\u0120Baptist\": 21724, \"\\u0120WAS\": 21725, \"\\u0120lungs\": 21726, \"\\u00d1\\u0123\": 21727, \"\\u0120BUT\": 21728, \"\\u0120cite\": 21729, \"\\u0120pitched\": 21730, \"reatment\": 21731, \"\\u0120trophies\": 21732, \"\\u0120Nu\": 21733, \"386\": 21734, \"\\u0120Pride\": 21735, \"\\u0120attendees\": 21736, \"[]\": 21737, \"179\": 21738, \"\\u0120spatial\": 21739, \"\\u0120prizes\": 21740, \"\\u0120Religion\": 21741, \"\\u0120showcase\": 21742, \"\\u0120Category\": 21743, \"vidia\": 21744, \"Target\": 21745, \"Property\": 21746, \"?,\": 21747, \"\\u0120fusion\": 21748, \"pie\": 21749, \"\\u0120UCLA\": 21750, \"\\u0120soundtrack\": 21751, \"\\u0120princess\": 21752, \"\\u0120Caval\": 21753, \"should\": 21754, \"\\u0120limbs\": 21755, \"Background\": 21756, \"\\u0120lonely\": 21757, \"\\u0120cores\": 21758, \"\\u0120Tail\": 21759, \"sheet\": 21760, \"\\u0120132\": 21761, \"Ra\": 21762, \"\\u00e3\\u0124\\u00ab\": 21763, \"\\u0120Bolt\": 21764, \"\\u0120booked\": 21765, \"\\u0120administer\": 21766, \"\\u0120equals\": 21767, \"wy\": 21768, \"\\u0120observing\": 21769, \"\\u0120Baron\": 21770, \"\\u0120Adobe\": 21771, \"\\u0120virgin\": 21772, \"\\u0120Socialist\": 21773, \"Move\": 21774, \"ghazi\": 21775, \"\\u0120Linda\": 21776, \"212\": 21777, \"\\u0120brewing\": 21778, \"\\u0120merchants\": 21779, \"burse\": 21780, \"\\u0120divor\": 21781, \"\\u0120metals\": 21782, \"\\u0120Ner\": 21783, \"\\u0120sums\": 21784, \"\\u0120Enemy\": 21785, \"\\u0120envision\": 21786, \"\\u0120granting\": 21787, \"\\u0120Honey\": 21788, \"\\u0120Skyrim\": 21789, \"\\u0120socio\": 21790, \"graded\": 21791, \"\\u0120selective\": 21792, \"WASHINGTON\": 21793, \"\\u01201948\": 21794, \"\\u0120Sirius\": 21795, \"\\u0120Gross\": 21796, \"activity\": 21797, \"\\u0120Ivan\": 21798, \"\\u0120furious\": 21799, \"BSD\": 21800, \"\\u0120Previous\": 21801, \"\\u0120responsive\": 21802, \"\\u0120charitable\": 21803, \"\\u0120leaning\": 21804, \"\\u0120Pew\": 21805, \"\\u0120violates\": 21806, \"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\": 21807, \"\\u0120Coming\": 21808, \"wire\": 21809, \"\\u0120poet\": 21810, \"\\u0120resolutions\": 21811, \"command\": 21812, \"\\u0120Portuguese\": 21813, \"\\u0120nickname\": 21814, \"\\u0120deaf\": 21815, \"February\": 21816, \"\\u0120recognise\": 21817, \"\\u0120entirety\": 21818, \"\\u0120seasonal\": 21819, \"placed\": 21820, \"\\u0120Telegraph\": 21821, \"\\u0120microphone\": 21822, \"ouring\": 21823, \"\\u0120grains\": 21824, \"\\u0120governed\": 21825, \"\\u0120postp\": 21826, \"\\u0120Waters\": 21827, \"inement\": 21828, \"\\u0120undocumented\": 21829, \"\\u0120Comcast\": 21830, \"\\u0120fox\": 21831, \"\\u0120assaults\": 21832, \"reon\": 21833, \"many\": 21834, \"\\u0120Jenkins\": 21835, \"\\u0120Anyway\": 21836, \"\\u0120assessments\": 21837, \"\\u0120downs\": 21838, \"\\u0120Mouse\": 21839, \"\\u0120superb\": 21840, \"kt\": 21841, \"\\u0120Dow\": 21842, \"\\u0120taxation\": 21843, \"401\": 21844, \"\\u0120smiles\": 21845, \"\\u0120undertaken\": 21846, \"\\u0120exh\": 21847, \"\\u0120enthusiastic\": 21848, \"\\u0120twent\": 21849, \"\\u0120governmental\": 21850, \"\\u0120autonomy\": 21851, \"\\u0120Technologies\": 21852, \"\\u0120Chain\": 21853, \"\\u0120prevalent\": 21854, \"fb\": 21855, \"\\u0120nicotine\": 21856, \"ogram\": 21857, \"job\": 21858, \"\\u0120awaiting\": 21859, \"\\u0120Menu\": 21860, \"\\u0120deputies\": 21861, \"kov\": 21862, \"ishops\": 21863, \"Button\": 21864, \"\\u0120Shanghai\": 21865, \"\\u0120diesel\": 21866, \"\\u0120Duck\": 21867, \"Ryan\": 21868, \"\\u0120PCs\": 21869, \"NF\": 21870, \"jury\": 21871, \"ente\": 21872, \"\\u0120inaccurate\": 21873, \"eddy\": 21874, \"Whatever\": 21875, \"\\u0120showc\": 21876, \"\\u0120Nad\": 21877, \"odus\": 21878, \"etr\": 21879, \"\\u0120plaintiffs\": 21880, \"\\u0120WOR\": 21881, \"\\u0120Assange\": 21882, \"\\u0120privat\": 21883, \"\\u0120premiums\": 21884, \"\\u0120tam\": 21885, \"URL\": 21886, \"\\u0120elites\": 21887, \"\\u0120Ranger\": 21888, \"ottenham\": 21889, \"\\u0120Hoff\": 21890, \"\\u0120Athens\": 21891, \"\\u0120definite\": 21892, \"\\u0120sighed\": 21893, \"\\u0120evenly\": 21894, \"211\": 21895, \"\\u0120Amber\": 21896, \"akia\": 21897, \"\\u0120mailing\": 21898, \"\\u0120crashing\": 21899, \"\\u0120Confederate\": 21900, \"rugged\": 21901, \"Wal\": 21902, \"\\u0120Depths\": 21903, \"\\u0120juvenile\": 21904, \"\\u0120reactor\": 21905, \"Introduction\": 21906, \"\\u0120Deluxe\": 21907, \"1995\": 21908, \"\\u0120Sanchez\": 21909, \"\\u0120Mead\": 21910, \"ivable\": 21911, \":-\": 21912, \"\\u0120Planning\": 21913, \"\\u0120Trap\": 21914, \"quin\": 21915, \"\\u0120Protect\": 21916, \"vered\": 21917, \"Information\": 21918, \"\\u0120kidney\": 21919, \"innamon\": 21920, \"las\": 21921, \"\\u0120policing\": 21922, \"\\u0120tolerate\": 21923, \"\\u0120Qi\": 21924, \"\\u0120biased\": 21925, \"Fort\": 21926, \"\\u0120Ki\": 21927, \"save\": 21928, \"\\u0120privileged\": 21929, \"\\u0120beasts\": 21930, \"\\u0120Glas\": 21931, \"\\u0120Cinem\": 21932, \"\\u0120comeback\": 21933, \"Sunday\": 21934, \"\\u0120extinction\": 21935, \"hops\": 21936, \"\\u0120transmit\": 21937, \"\\u0120doubles\": 21938, \"\\u0120Flat\": 21939, \"167\": 21940, \"\\u0120disputed\": 21941, \"\\u0120injustice\": 21942, \"foo\": 21943, \"Vict\": 21944, \"roleum\": 21945, \"\\u0120Julie\": 21946, \"Context\": 21947, \"\\u0120Rarity\": 21948, \"issue\": 21949, \"Component\": 21950, \"\\u0120counseling\": 21951, \"anne\": 21952, \"dark\": 21953, \"\\u0120objections\": 21954, \"uilt\": 21955, \"\\u0120gast\": 21956, \"\\u0120plac\": 21957, \"\\u0120unused\": 21958, \"\\u00e3\\u0125\\u0129\": 21959, \"\\u0120Trial\": 21960, \"\\u0120Jas\": 21961, \"hedral\": 21962, \"obb\": 21963, \"\\u0120temporal\": 21964, \"\\u0120PRO\": 21965, \"\\u0120NW\": 21966, \"\\u0120Anniversary\": 21967, \"Large\": 21968, \"\\u0120therm\": 21969, \"\\u0120david\": 21970, \"\\u0120systemic\": 21971, \"\\u0120Shir\": 21972, \"mut\": 21973, \"\\u0120Nept\": 21974, \"address\": 21975, \"\\u0120scanning\": 21976, \"\\u0120understandable\": 21977, \"\\u0120canvas\": 21978, \"Cat\": 21979, \"\\u0120Zoo\": 21980, \"\\u0120angels\": 21981, \"LO\": 21982, \"\\u0120Statement\": 21983, \"\\u0120Sig\": 21984, \"ovable\": 21985, \"\\u0120Away\": 21986, \"sharing\": 21987, \"ocrats\": 21988, \"stated\": 21989, \"\\u0120weighing\": 21990, \"Nor\": 21991, \"wild\": 21992, \"Bey\": 21993, \"\\u0120astonishing\": 21994, \"\\u0120Reynolds\": 21995, \"\\u0120opener\": 21996, \"\\u0120trainer\": 21997, \"\\u0120surgical\": 21998, \"pn\": 21999, \"\\u0120adjusting\": 22000, \"wheel\": 22001, \"\\u0120frown\": 22002, \"ervative\": 22003, \"\\u0120suspend\": 22004, \"Within\": 22005, \"tein\": 22006, \"\\u0120obstacle\": 22007, \"\\u0120liberties\": 22008, \"ymes\": 22009, \"\\u0120uranium\": 22010, \"ansom\": 22011, \"anol\": 22012, \"uba\": 22013, \"\\u0120Loss\": 22014, \"\\u0120arous\": 22015, \"\\u0120Henderson\": 22016, \"Wow\": 22017, \"spl\": 22018, \"cur\": 22019, \"\\u0120\\u00c2\\u0143\": 22020, \"\\u0120theirs\": 22021, \"Damage\": 22022, \"\\u0120downloading\": 22023, \"\\u0120discern\": 22024, \"\\u0120Sto\": 22025, \"\\u0120Fla\": 22026, \"\\u0120hath\": 22027, \"\\u0120Aj\": 22028, \"\\u0120unpleasant\": 22029, \"European\": 22030, \"expensive\": 22031, \"\\u0120screenshot\": 22032, \"\\u0120UV\": 22033, \"\\u0120allied\": 22034, \"\\u0120Persian\": 22035, \"\\u0120monopoly\": 22036, \"\\u0120atom\": 22037, \"\\u0120Redskins\": 22038, \"\\\"><\": 22039, \"\\u0120cancell\": 22040, \"\\u0120cinema\": 22041, \"131\": 22042, \"fair\": 22043, \"\\u0120Alfred\": 22044, \"\\u0120duck\": 22045, \"args\": 22046, \"223\": 22047, \"\\u0120ISI\": 22048, \"\\u0120signaling\": 22049, \"inar\": 22050, \"\\u0120laughs\": 22051, \"\\u0120forwards\": 22052, \"\\u0120reckless\": 22053, \"\\u0120listeners\": 22054, \"ativity\": 22055, \"\\u0120vastly\": 22056, \"nant\": 22057, \"Less\": 22058, \"\\u0120Hunting\": 22059, \"\\u0120Scientific\": 22060, \"ITED\": 22061, \"\\u0120knight\": 22062, \"\\u0120HTC\": 22063, \"usa\": 22064, \"tmp\": 22065, \"\\u0120rude\": 22066, \"\\u0120Legendary\": 22067, \"\\u0120arises\": 22068, \"Bad\": 22069, \"\\u0120Claim\": 22070, \"peg\": 22071, \"\\u0120realities\": 22072, \"Think\": 22073, \"\\u0120\\u00c2\\u00b0\": 22074, \"\\u0120rode\": 22075, \"\\u0120strive\": 22076, \"\\u0120anecd\": 22077, \"\\u0120shorts\": 22078, \"\\u0120hypothes\": 22079, \"\\u0120coordinated\": 22080, \"\\u0120Gandhi\": 22081, \"\\u0120FPS\": 22082, \"RED\": 22083, \"\\u0120susceptible\": 22084, \"\\u0120shrink\": 22085, \"\\u0120Chart\": 22086, \"Help\": 22087, \"\\u0120ion\": 22088, \"deep\": 22089, \"ribes\": 22090, \"\\u0120Kai\": 22091, \"\\u0120Customer\": 22092, \"Summary\": 22093, \"\\u0120cough\": 22094, \"wife\": 22095, \"\\u0120lend\": 22096, \"\\u0120positioning\": 22097, \"\\u0120lottery\": 22098, \"\\u0120Canyon\": 22099, \"\\u0120fade\": 22100, \"\\u0120bronze\": 22101, \"\\u0120Kenny\": 22102, \"\\u0120boasts\": 22103, \"\\u0120Enhanced\": 22104, \"record\": 22105, \"\\u0120emergence\": 22106, \"\\u0120akin\": 22107, \"\\u0120Bert\": 22108, \"itous\": 22109, \"\\u00e2\\u0138\\u0133\": 22110, \"\\u0120stip\": 22111, \"\\u0120exchanged\": 22112, \"omore\": 22113, \"alsh\": 22114, \"\\u0120reservoir\": 22115, \"\\u0120standpoint\": 22116, \"WM\": 22117, \"\\u0120initiate\": 22118, \"\\u0120decay\": 22119, \"\\u0120brewery\": 22120, \"\\u0120terribly\": 22121, \"\\u0120mortal\": 22122, \"levard\": 22123, \"\\u0120revis\": 22124, \"NI\": 22125, \"elo\": 22126, \"\\u0120confess\": 22127, \"\\u0120MSNBC\": 22128, \"\\u0120submissions\": 22129, \"Controller\": 22130, \"\\u0120202\": 22131, \"\\u0120Ruth\": 22132, \"});\": 22133, \"\\u0120Azure\": 22134, \"\\u0120.\\\"\": 22135, \"206\": 22136, \"\\u0120Marketing\": 22137, \"\\u0120laund\": 22138, \"iencies\": 22139, \"\\u0120renowned\": 22140, \"\\u0120Trou\": 22141, \"\\u0120NGO\": 22142, \"blems\": 22143, \"\\u0120terrified\": 22144, \"\\u0120warns\": 22145, \"\\u0120pert\": 22146, \"\\u0120unsure\": 22147, \"480\": 22148, \"alez\": 22149, \"ultz\": 22150, \"\\u0120Outside\": 22151, \"\\u0120styl\": 22152, \"\\u0120Underground\": 22153, \"\\u0120panc\": 22154, \"\\u0120dictionary\": 22155, \"\\u0120foe\": 22156, \"riminal\": 22157, \"\\u0120Norwegian\": 22158, \"\\u0120jailed\": 22159, \"\\u0120maternal\": 22160, \"\\u00c3\\u00a9e\": 22161, \"\\u0120Lucy\": 22162, \"cop\": 22163, \"Cho\": 22164, \"\\u0120unsigned\": 22165, \"\\u0120Zelda\": 22166, \"\\u0120Insider\": 22167, \"\\u0120Continued\": 22168, \"\\u0120133\": 22169, \"\\u0120Naruto\": 22170, \"\\u0120Majority\": 22171, \"169\": 22172, \"\\u0120Wo\": 22173, \"\\u00e3\\u0124\\u0135\": 22174, \"\\u0120pastor\": 22175, \"\\u0120informal\": 22176, \"\\u00d0\\u00bd\": 22177, \"anthrop\": 22178, \"join\": 22179, \"\\u00e3\\u0123\\u0139\": 22180, \"itational\": 22181, \"NP\": 22182, \"\\u0120Writing\": 22183, \"fn\": 22184, \"\\u0120Bever\": 22185, \"195\": 22186, \"\\u0120yelling\": 22187, \"\\u0120drastically\": 22188, \"\\u0120eject\": 22189, \"\\u0120neut\": 22190, \"\\u0120thrive\": 22191, \"\\u0120Frequ\": 22192, \"oux\": 22193, \"\\u0120possesses\": 22194, \"\\u0120Senators\": 22195, \"\\u0120DES\": 22196, \"\\u0120Shakespeare\": 22197, \"\\u0120Franco\": 22198, \"\\u0120LB\": 22199, \"uchi\": 22200, \"\\u0120incarn\": 22201, \"\\u0120founders\": 22202, \"Function\": 22203, \"\\u0120brightness\": 22204, \"\\u0120BT\": 22205, \"\\u0120whale\": 22206, \"\\u0120Theater\": 22207, \"mass\": 22208, \"\\u0120Doll\": 22209, \"Something\": 22210, \"\\u0120echoed\": 22211, \"\\u0120Hex\": 22212, \"crit\": 22213, \"afia\": 22214, \"\\u0120goddess\": 22215, \"\\u0120eleven\": 22216, \"\\u0120Preview\": 22217, \"\\u0120Aurora\": 22218, \"\\u0120401\": 22219, \"ulsive\": 22220, \"\\u0120Logan\": 22221, \"inburgh\": 22222, \"\\u0120Centers\": 22223, \"\\u0120ONLY\": 22224, \"\\u0120Aid\": 22225, \"\\u0120paradox\": 22226, \"\\u0120hurd\": 22227, \"\\u0120LC\": 22228, \"Due\": 22229, \"court\": 22230, \"\\u0120offended\": 22231, \"\\u0120evaluating\": 22232, \"\\u0120Matthews\": 22233, \"\\u0120tomb\": 22234, \"\\u0120payroll\": 22235, \"\\u0120extraction\": 22236, \"\\u0120Hands\": 22237, \"ifi\": 22238, \"\\u0120supernatural\": 22239, \"\\u0120COMM\": 22240, \"]=\": 22241, \"dogs\": 22242, \"\\u0120512\": 22243, \"\\u0120Meeting\": 22244, \"Richard\": 22245, \"\\u0120Maximum\": 22246, \"\\u0120ideals\": 22247, \"Things\": 22248, \"mand\": 22249, \"\\u0120Regardless\": 22250, \"\\u0120humili\": 22251, \"buffer\": 22252, \"Little\": 22253, \"\\u0120Dani\": 22254, \"\\u0120Nak\": 22255, \"\\u0120liberation\": 22256, \"\\u0120Abe\": 22257, \"\\u0120OL\": 22258, \"\\u0120stuffed\": 22259, \"aca\": 22260, \"inda\": 22261, \"raphic\": 22262, \"\\u0120mosqu\": 22263, \"\\u0120campaigning\": 22264, \"\\u0120occupy\": 22265, \"Squ\": 22266, \"rina\": 22267, \"\\u0120Wel\": 22268, \"\\u0120VS\": 22269, \"\\u0120physic\": 22270, \"\\u0120puls\": 22271, \"rint\": 22272, \"oaded\": 22273, \"ETF\": 22274, \"\\u0120Archives\": 22275, \"\\u0120venues\": 22276, \"hner\": 22277, \"\\u0120Turbo\": 22278, \"\\u0120lust\": 22279, \"\\u0120appealed\": 22280, \"quez\": 22281, \"ilib\": 22282, \"\\u0120Timothy\": 22283, \"\\u0120omn\": 22284, \"dro\": 22285, \"\\u0120obsession\": 22286, \"\\u0120Savage\": 22287, \"1996\": 22288, \"Global\": 22289, \"Jes\": 22290, \"214\": 22291, \"\\u0120sliding\": 22292, \"\\u0120disappro\": 22293, \"\\u0120Magical\": 22294, \"\\u0120voluntarily\": 22295, \"gb\": 22296, \"aney\": 22297, \"\\u0120prophet\": 22298, \"\\u0120Rein\": 22299, \"\\u0120Julia\": 22300, \"\\u0120Worth\": 22301, \"aurus\": 22302, \"\\u0120bounds\": 22303, \"ieu\": 22304, \")))\": 22305, \"\\u0120crore\": 22306, \"\\u0120Citizen\": 22307, \"Sky\": 22308, \"\\u0120columnist\": 22309, \"\\u0120seekers\": 22310, \"ondo\": 22311, \"ISA\": 22312, \"\\u0120Length\": 22313, \"\\u0120nostalg\": 22314, \"\\u0120newcom\": 22315, \"\\u0120detrim\": 22316, \"entric\": 22317, \"375\": 22318, \"\\u0120GE\": 22319, \"\\u0120autop\": 22320, \"\\u0120academics\": 22321, \"AppData\": 22322, \"\\u0120Shen\": 22323, \"\\u0120idiot\": 22324, \"\\u0120Transit\": 22325, \"\\u0120teaspoon\": 22326, \"Wil\": 22327, \"KO\": 22328, \"\\u0120Comedy\": 22329, \">,\": 22330, \"\\u0120populated\": 22331, \"WD\": 22332, \"\\u0120pigs\": 22333, \"\\u0120Oculus\": 22334, \"\\u0120sympathetic\": 22335, \"\\u0120marathon\": 22336, \"198\": 22337, \"\\u0120seizure\": 22338, \"sided\": 22339, \"\\u0120dop\": 22340, \"irtual\": 22341, \"Land\": 22342, \"\\u0120Floor\": 22343, \"osaurs\": 22344, \"...]\": 22345, \"\\u0120los\": 22346, \"\\u0120subsidiary\": 22347, \"EY\": 22348, \"\\u0120Parts\": 22349, \"\\u0120Stef\": 22350, \"\\u0120Judiciary\": 22351, \"\\u0120134\": 22352, \"\\u0120mirrors\": 22353, \"\\u0120ket\": 22354, \"times\": 22355, \"\\u0120neurolog\": 22356, \"\\u0120cav\": 22357, \"\\u0120Guest\": 22358, \"\\u0120tumor\": 22359, \"scill\": 22360, \"\\u0120Lloyd\": 22361, \"Est\": 22362, \"\\u0120clearer\": 22363, \"\\u0120stereotypes\": 22364, \"\\u0120dur\": 22365, \"nothing\": 22366, \"Reddit\": 22367, \"\\u0120negotiated\": 22368, \"------------------------\": 22369, \"235\": 22370, \"\\u0120flown\": 22371, \"\\u0120Seoul\": 22372, \"\\u0120Resident\": 22373, \"\\u0120SCH\": 22374, \"\\u0120disappearance\": 22375, \"\\u0120Vince\": 22376, \"grown\": 22377, \"\\u0120grabs\": 22378, \"ril\": 22379, \"\\u0120Infinite\": 22380, \"\\u0120Twenty\": 22381, \"\\u0120pedestrian\": 22382, \"\\u0120jersey\": 22383, \"\\u0120Fur\": 22384, \"\\u0120Infinity\": 22385, \"\\u0120Elliott\": 22386, \"\\u0120mentor\": 22387, \"\\u0120morally\": 22388, \"\\u0120obey\": 22389, \"secure\": 22390, \"iffe\": 22391, \"\\u0120antibiotics\": 22392, \"angled\": 22393, \"\\u0120Freeman\": 22394, \"\\u0120Introduction\": 22395, \"Jun\": 22396, \"\\u0120marsh\": 22397, \"icans\": 22398, \"\\u0120EVENTS\": 22399, \"ochond\": 22400, \"Wall\": 22401, \"iculty\": 22402, \"\\u0120misdemeanor\": 22403, \"\\u0120ly\": 22404, \"Thomas\": 22405, \"\\u0120Resolution\": 22406, \"\\u0120animations\": 22407, \"\\u0120Dry\": 22408, \"\\u0120intercourse\": 22409, \"\\u0120Newcastle\": 22410, \"\\u0120Hog\": 22411, \"\\u0120Equipment\": 22412, \"177\": 22413, \"\\u0120territorial\": 22414, \"\\u0120archives\": 22415, \"203\": 22416, \"Filter\": 22417, \"\\u0120Munich\": 22418, \"\\u0120commanded\": 22419, \"\\u0120Wand\": 22420, \"\\u0120pitches\": 22421, \"\\u0120Croat\": 22422, \"\\u0120ratios\": 22423, \"\\u0120Mits\": 22424, \"\\u0120accumulated\": 22425, \"\\u0120Specifically\": 22426, \"\\u0120gentleman\": 22427, \"acerb\": 22428, \"\\u0120penn\": 22429, \"\\u0120aka\": 22430, \"\\u0120Fuk\": 22431, \"\\u0120intervene\": 22432, \"\\u0120Refuge\": 22433, \"\\u0120Alzheimer\": 22434, \"\\u0120succession\": 22435, \"ohan\": 22436, \"does\": 22437, \"Lord\": 22438, \"\\u0120separat\": 22439, \"\\u0120correspondence\": 22440, \"\\u0120shiny\": 22441, \"Prior\": 22442, \"\\u0120sulf\": 22443, \"\\u0120miserable\": 22444, \"\\u0120dedication\": 22445, \"().\": 22446, \"\\u0120specialists\": 22447, \"\\u0120defects\": 22448, \"\\u0120Cult\": 22449, \"\\u0120Xia\": 22450, \"\\u0120jeopard\": 22451, \"\\u0120Ore\": 22452, \"Ability\": 22453, \"\\u0120lear\": 22454, \"\\u0120ambitions\": 22455, \"\\u0120BMI\": 22456, \"\\u0120Arabs\": 22457, \"\\u01201942\": 22458, \"\\u0120preservation\": 22459, \"ificate\": 22460, \"\\u0120ashamed\": 22461, \"loss\": 22462, \"\\u0120Restaur\": 22463, \"\\u0120resemble\": 22464, \"\\u0120enrich\": 22465, \"\\u0120KN\": 22466, \"\\u0120Clan\": 22467, \"float\": 22468, \"\\u0120playable\": 22469, \"ITT\": 22470, \"\\u0120harmony\": 22471, \"arrison\": 22472, \"\\u0120Weinstein\": 22473, \"were\": 22474, \"\\u0120poisoning\": 22475, \"\\u0120Comput\": 22476, \"\\u0120WordPress\": 22477, \"major\": 22478, \"\\u0120Valve\": 22479, \"Fan\": 22480, \"\\u0120Throw\": 22481, \"\\u0120Romans\": 22482, \"\\u0120Depression\": 22483, \"ados\": 22484, \"\\u0120tortured\": 22485, \"\\u0120balancing\": 22486, \"bottom\": 22487, \"\\u0120acquiring\": 22488, \"\\u0120Monte\": 22489, \"ardi\": 22490, \"\\u0120aura\": 22491, \"\\u0120##\": 22492, \"\\u0120Standing\": 22493, \"\\u0120Atlas\": 22494, \"CF\": 22495, \"\\u0120intrins\": 22496, \"\\u0120Benghazi\": 22497, \"\\u0120camping\": 22498, \"\\u0120tapped\": 22499, \"blade\": 22500, \"strous\": 22501, \"\\u0120Rabb\": 22502, \"\\u0120Written\": 22503, \"tip\": 22504, \"\\u0120Neigh\": 22505, \"sterdam\": 22506, \"\\u0120Allow\": 22507, \"\\u0120Healing\": 22508, \"\\u0120Rhod\": 22509, \"num\": 22510, \"\\u0120caffeine\": 22511, \"\\u0120Percent\": 22512, \"\\u0120boo\": 22513, \"\\u0120apples\": 22514, \"305\": 22515, \"\\u0120welcoming\": 22516, \"\\u0120applaud\": 22517, \"\\u0120austerity\": 22518, \"\\u00c2\\u00b1\": 22519, \"\\u0120Reality\": 22520, \"efe\": 22521, \"\\u00e5\\u00ae\": 22522, \"\\u0120sucks\": 22523, \"\\u0120tabs\": 22524, \"\\u0120PayPal\": 22525, \"\\u0120backpack\": 22526, \"\\u0120gifted\": 22527, \"abulary\": 22528, \"\\u0120Scout\": 22529, \"irteen\": 22530, \"\\u0120chin\": 22531, \"\\u0120omitted\": 22532, \"\\u0120negatively\": 22533, \"\\u0120accessing\": 22534, \"\\u0120Earn\": 22535, \"\\u0120ambulance\": 22536, \"\\u0120headphones\": 22537, \"\\u0120205\": 22538, \"\\u0120Refresh\": 22539, \"president\": 22540, \"\\u0120Kitchen\": 22541, \"\\u0120Entered\": 22542, \"\\u0120Snyder\": 22543, \"005\": 22544, \"omical\": 22545, \"\\u0120borrowed\": 22546, \"\\u0120Nem\": 22547, \"\\u0120aviation\": 22548, \"\\u0120stall\": 22549, \"rimination\": 22550, \"\\u0120uniforms\": 22551, \"itime\": 22552, \"\\u0120Simmons\": 22553, \"energy\": 22554, \"ablished\": 22555, \"yy\": 22556, \"qualified\": 22557, \"\\u0120rallies\": 22558, \"\\u0120Stuart\": 22559, \"flight\": 22560, \"\\u0120gangs\": 22561, \"rag\": 22562, \"\\u0120vault\": 22563, \"lux\": 22564, \"\\u0120Compar\": 22565, \"\\u0120designation\": 22566, \"209\": 22567, \"\\u0120Jos\": 22568, \"dollar\": 22569, \"zero\": 22570, \"\\u0120wells\": 22571, \"303\": 22572, \"\\u0120constituents\": 22573, \"\\u0120heck\": 22574, \"\\u0120cows\": 22575, \"\\u0120commanders\": 22576, \"\\u0120differential\": 22577, \"\\u0120Catherine\": 22578, \"299\": 22579, \"\\u0120valve\": 22580, \"\\u0120brace\": 22581, \"\\u0120perspectives\": 22582, \"cert\": 22583, \"fact\": 22584, \"icularly\": 22585, \"\\u0120McN\": 22586, \"planes\": 22587, \"\\u0120intric\": 22588, \"\\u0120peas\": 22589, \"ovan\": 22590, \"\\u0120tossed\": 22591, \"retch\": 22592, \"\\u0120Lopez\": 22593, \"\\u0120unfamiliar\": 22594, \"death\": 22595, \"\\u0120Apart\": 22596, \"\\u0120Chang\": 22597, \"\\u0120relieved\": 22598, \"rophe\": 22599, \"\\u0120airports\": 22600, \"\\u0120freak\": 22601, \"util\": 22602, \"Mill\": 22603, \"\\u0120Chin\": 22604, \"\\u0120Owen\": 22605, \"male\": 22606, \"\\u0120Broken\": 22607, \"\\u0120Winds\": 22608, \"rob\": 22609, \"rising\": 22610, \"\\u0120firefighters\": 22611, \"\\u0120authoritarian\": 22612, \"\\u0120148\": 22613, \"Bitcoin\": 22614, \"external\": 22615, \"\\u0120browsers\": 22616, \"ichever\": 22617, \"orian\": 22618, \"\\u0120unb\": 22619, \"\\u0120poke\": 22620, \"\\u0120Zot\": 22621, \"Mid\": 22622, \"\\u0120Popular\": 22623, \"\\u0120covert\": 22624, \"\\u0120contributes\": 22625, \"\\u0120650\": 22626, \"\\u0120contention\": 22627, \"Gate\": 22628, \"\\u0120consoles\": 22629, \"\\u0120chromos\": 22630, \"\\u0120IX\": 22631, \"\\u0120visually\": 22632, \"\\u0120Eisen\": 22633, \"\\u0120jewelry\": 22634, \"\\u0120delegation\": 22635, \"\\u0120accelerate\": 22636, \"\\u0120Riley\": 22637, \"\\u0120slope\": 22638, \"\\u0120indoor\": 22639, \"itially\": 22640, \"\\u0120hugely\": 22641, \"\\u0120tunnels\": 22642, \"\\u0120fined\": 22643, \"\\u0120directive\": 22644, \"\\u0120forehead\": 22645, \"ustomed\": 22646, \"\\u0120skate\": 22647, \"Music\": 22648, \"gas\": 22649, \"\\u0120recognizing\": 22650, \"ambo\": 22651, \"\\u0120overweight\": 22652, \"\\u0120Grade\": 22653, \"\\u00d9\\u012c\": 22654, \"\\u0120sounding\": 22655, \"\\u0120locking\": 22656, \"\\u0120REM\": 22657, \"Store\": 22658, \"\\u0120excav\": 22659, \"\\u0120Likewise\": 22660, \"\\u0120Lights\": 22661, \"\\u0120elbow\": 22662, \"\\u0120Supply\": 22663, \"wic\": 22664, \"\\u0120handsome\": 22665, \"1994\": 22666, \"Coll\": 22667, \"\\u0120adequately\": 22668, \"\\u0120Associate\": 22669, \"\\u0120strips\": 22670, \"\\u0120crackdown\": 22671, \"\\u0120marvel\": 22672, \"\\u0120Kun\": 22673, \"\\u0120passages\": 22674, \"@@@@\": 22675, \"\\u0120Tall\": 22676, \"\\u0120thoughtful\": 22677, \"namese\": 22678, \"\\u0120prostitution\": 22679, \"business\": 22680, \"\\u0120ballistic\": 22681, \"personal\": 22682, \"cig\": 22683, \"izational\": 22684, \"Round\": 22685, \"\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\": 22686, \"\\u0120Coleman\": 22687, \"\\u0120admitting\": 22688, \"\\u0120Plug\": 22689, \"\\u0120bitcoins\": 22690, \"\\u0120Suz\": 22691, \"\\u0120fairness\": 22692, \"\\u0120supplier\": 22693, \"\\u0120catastrophic\": 22694, \"\\u0120Helen\": 22695, \"oqu\": 22696, \"Marc\": 22697, \"\\u0120Articles\": 22698, \"gie\": 22699, \"\\u0120endangered\": 22700, \"\\u0120destiny\": 22701, \"\\u0120Volt\": 22702, \"olia\": 22703, \"axis\": 22704, \"\\u0120cheat\": 22705, \"\\u0120unified\": 22706, \"ICO\": 22707, \"quote\": 22708, \"302\": 22709, \"\\u0120Sed\": 22710, \"\\u0120suppression\": 22711, \"\\u0120analyzing\": 22712, \"\\u0120squat\": 22713, \"\\u0120figuring\": 22714, \"\\u0120coordinates\": 22715, \"\\u0120chunks\": 22716, \"\\u01201946\": 22717, \"\\u0120subp\": 22718, \"\\u0120wiki\": 22719, \"\\u0120Forbes\": 22720, \"\\u0120Jupiter\": 22721, \"\\u0120Erik\": 22722, \"imer\": 22723, \"\\u0120Commercial\": 22724, \"\\\\)\": 22725, \"\\u0120legitimacy\": 22726, \"\\u0120dental\": 22727, \"\\u0120Mean\": 22728, \"\\u0120deficits\": 22729, \"550\": 22730, \"Originally\": 22731, \"\\u0120Horror\": 22732, \"\\u0120contamination\": 22733, \"llah\": 22734, \"\\u0120confisc\": 22735, \"\\u0120Clare\": 22736, \"TB\": 22737, \"\\u0120Failed\": 22738, \"aned\": 22739, \"\\u0120ruler\": 22740, \"\\u0120Controller\": 22741, \"\\u0120feminists\": 22742, \"Fix\": 22743, \"gay\": 22744, \"207\": 22745, \"\\u0120rabbit\": 22746, \"Third\": 22747, \"owntown\": 22748, \"\\u0120glue\": 22749, \"\\u0120volatile\": 22750, \"\\u0120shining\": 22751, \"\\u0120foll\": 22752, \"\\u0120impaired\": 22753, \"\\u0120supers\": 22754, \"\\u00e6\\u012a\": 22755, \"\\u0120clutch\": 22756, \"\\u013c\\u00e9\\u0128\\u0134\": 22757, \"\\u0120prolet\": 22758, \"\\u0120(!\": 22759, \"\\u0120yelled\": 22760, \"\\u0120Kiev\": 22761, \"\\u0120Ern\": 22762, \"\\u0120Shock\": 22763, \"KB\": 22764, \"\\u0120situated\": 22765, \"query\": 22766, \"\\u0120Nas\": 22767, \"\\u0120annex\": 22768, \"character\": 22769, \"\\u0120Holiday\": 22770, \"\\u0120automation\": 22771, \"\\u0120Jill\": 22772, \"\\u0120Remastered\": 22773, \"\\u0120linem\": 22774, \"\\u0120wilderness\": 22775, \"\\u0120Horizon\": 22776, \"\\u0120Guinea\": 22777, \"AZ\": 22778, \"\\u0120mainland\": 22779, \"\\u0120secrecy\": 22780, \"LEASE\": 22781, \"\\u0120punk\": 22782, \"\\u0120Province\": 22783, \"(),\": 22784, \"Speed\": 22785, \"\\u0120handing\": 22786, \"\\u0120Sebast\": 22787, \"Sir\": 22788, \"rase\": 22789, \"\\u0120journals\": 22790, \"\\u0120congest\": 22791, \"\\u0120Tut\": 22792, \"irrel\": 22793, \"\\u0120schizophrenia\": 22794, \"\\u0120misogyn\": 22795, \"healthy\": 22796, \"Iron\": 22797, \"\\u0120reacted\": 22798, \"-$\": 22799, \"252\": 22800, \"\\u0120plural\": 22801, \"\\u0120plum\": 22802, \"\\u0120bargain\": 22803, \"\\u0120grounded\": 22804, \"finder\": 22805, \"\\u0120disse\": 22806, \"\\u0120Laz\": 22807, \"OOD\": 22808, \"\\u0120atroc\": 22809, \"Factory\": 22810, \"\\u0120minions\": 22811, \"\\u0120ori\": 22812, \"\\u0120Brave\": 22813, \"\\u0120PRE\": 22814, \"\\u0120Myanmar\": 22815, \"\\u0120Hod\": 22816, \"\\u0120expedition\": 22817, \"\\u0120explode\": 22818, \"\\u0120Coord\": 22819, \"\\u0120extr\": 22820, \"\\u0120Brief\": 22821, \"\\u0120ADHD\": 22822, \"\\u0120hardcore\": 22823, \"feeding\": 22824, \"\\u0120dile\": 22825, \"\\u0120Fruit\": 22826, \"\\u0120vaccination\": 22827, \"\\u0120Mao\": 22828, \"osphere\": 22829, \"\\u0120contests\": 22830, \"-|\": 22831, \"\\u0120fren\": 22832, \"isphere\": 22833, \"Rom\": 22834, \"\\u0120Sharp\": 22835, \"\\u0120Trend\": 22836, \"\\u0120disconnect\": 22837, \"\\u00e2\\u0122\\u00a2\\u00e2\\u0122\\u00a2\": 22838, \"\\u0120persecution\": 22839, \"Earth\": 22840, \"\\u0120healthier\": 22841, \"384\": 22842, \"\\u0120cob\": 22843, \"\\u0120Trinity\": 22844, \"OWS\": 22845, \"ANN\": 22846, \"\\u0120specialty\": 22847, \"\\u0120gru\": 22848, \"\\u0120cooperative\": 22849, \"why\": 22850, \"Starting\": 22851, \"\\u0120Issues\": 22852, \"stre\": 22853, \"ensor\": 22854, \"\\u0120185\": 22855, \"Adv\": 22856, \"!?\": 22857, \"\\u0120Revel\": 22858, \"emia\": 22859, \"\\u0120Hulk\": 22860, \"\\u0120celebrations\": 22861, \"\\u0120Sou\": 22862, \"raud\": 22863, \"\\u0120Klein\": 22864, \"\\u0120unreal\": 22865, \"context\": 22866, \"\\u0120partnerships\": 22867, \"\\u0120adopting\": 22868, \"tical\": 22869, \"\\u0120splash\": 22870, \"\\u0120Hezbollah\": 22871, \"category\": 22872, \"cyclop\": 22873, \"xton\": 22874, \"\\u0120Dot\": 22875, \"urdy\": 22876, \"tz\": 22877, \"\\u0120envelope\": 22878, \"\\u0120NL\": 22879, \"\\u00e2\\u0137\": 22880, \"\\u0120wherein\": 22881, \"Spec\": 22882, \"184\": 22883, \"\\u0120telev\": 22884, \"aliation\": 22885, \"\\u0120myths\": 22886, \"\\u00e5\\u00b0\": 22887, \"\\u0120rigorous\": 22888, \"\\u0120communicating\": 22889, \"\\u0120observer\": 22890, \"\\u0120rehe\": 22891, \"\\u0120Wash\": 22892, \"\\u0120apologized\": 22893, \"\\u0120Tin\": 22894, \"\\u0120expenditures\": 22895, \"workers\": 22896, \"document\": 22897, \"\\u0120hesitate\": 22898, \"\\u0120Lenin\": 22899, \"\\u0120unpredictable\": 22900, \"\\u0120renewal\": 22901, \"cler\": 22902, \"okia\": 22903, \"\\u0120CONT\": 22904, \"\\u0120postseason\": 22905, \"Tokens\": 22906, \"\\u0120exacerb\": 22907, \"\\u0120betting\": 22908, \"\\u0120147\": 22909, \"\\u0120elevation\": 22910, \"Wood\": 22911, \"\\u0120Solomon\": 22912, \"194\": 22913, \"004\": 22914, \"output\": 22915, \"\\u0120redund\": 22916, \"\\u0120Mumbai\": 22917, \"\\u0120pH\": 22918, \"\\u0120reproduce\": 22919, \"\\u0120Duration\": 22920, \"MAX\": 22921, \"\\u0120bog\": 22922, \"CBS\": 22923, \"\\u0120Balance\": 22924, \"\\u0120Sgt\": 22925, \"\\u0120Recent\": 22926, \"\\u0120cd\": 22927, \"\\u0120popped\": 22928, \"\\u0120incompet\": 22929, \"prop\": 22930, \"ayan\": 22931, \"guy\": 22932, \"Pacific\": 22933, \"\\u0120tyr\": 22934, \"\\u0120{{\": 22935, \"\\u0120Mystic\": 22936, \"\\u0120Dana\": 22937, \"\\u0120masturb\": 22938, \"\\u0120geometry\": 22939, \"\\u00c3\\u00a2\": 22940, \"\\u0120Correct\": 22941, \"\\u0120trajectory\": 22942, \"\\u0120distracted\": 22943, \"\\u0120foo\": 22944, \"\\u0120Welsh\": 22945, \"Luc\": 22946, \"mith\": 22947, \"\\u0120rugby\": 22948, \"\\u0120respiratory\": 22949, \"\\u0120triangle\": 22950, \"\\u0120215\": 22951, \"\\u0120undergraduate\": 22952, \"\\u0120Superior\": 22953, \"changing\": 22954, \"_-\": 22955, \"\\u0120rightly\": 22956, \"\\u0120referee\": 22957, \"\\u0120lucrative\": 22958, \"\\u0120unauthorized\": 22959, \"\\u0120resembles\": 22960, \"\\u0120GNU\": 22961, \"\\u0120Derby\": 22962, \"\\u0120pathways\": 22963, \"\\u0120Led\": 22964, \"\\u0120endurance\": 22965, \"\\u0120stint\": 22966, \"\\u0120collector\": 22967, \"Fast\": 22968, \"\\u0120dots\": 22969, \"\\u0120nationals\": 22970, \"\\u0120Securities\": 22971, \"\\u0120whip\": 22972, \"Param\": 22973, \"\\u0120learns\": 22974, \"Magic\": 22975, \"\\u0120detailing\": 22976, \"moon\": 22977, \"\\u0120broadcasting\": 22978, \"\\u0120baked\": 22979, \"265\": 22980, \"holm\": 22981, \"\\u0120Sah\": 22982, \"\\u0120Hussein\": 22983, \"\\u0120Courtesy\": 22984, \"174\": 22985, \"\\u0120146\": 22986, \"\\u0120geographic\": 22987, \"peace\": 22988, \"\\u0120judging\": 22989, \"\\u0120Stern\": 22990, \"Bur\": 22991, \"\\u0120storyline\": 22992, \"Gun\": 22993, \"\\u0120Stick\": 22994, \"245\": 22995, \"307\": 22996, \"\\u00e3\\u0124\\u00b4\\u00e3\\u0125\\u00b3\": 22997, \"\\u0120Administrator\": 22998, \"\\u0120burnt\": 22999, \"\\u0120pave\": 23000, \"choes\": 23001, \"Exec\": 23002, \"\\u0120campuses\": 23003, \"Result\": 23004, \"\\u0120mutations\": 23005, \"\\u0120Charter\": 23006, \"\\u0120captures\": 23007, \"\\u0120compares\": 23008, \"\\u0120badge\": 23009, \"Scient\": 23010, \"\\u0120erad\": 23011, \"iery\": 23012, \"oi\": 23013, \"ettes\": 23014, \"\\u0120Estate\": 23015, \"\\u0120strap\": 23016, \"\\u0120proudly\": 23017, \"\\u0120fried\": 23018, \"\\u0120withdrawn\": 23019, \"\\u0120Voy\": 23020, \"phony\": 23021, \"Items\": 23022, \"\\u0120Pierce\": 23023, \"bard\": 23024, \"\\u0120annotation\": 23025, \"anton\": 23026, \"illon\": 23027, \"Impro\": 23028, \"...)\": 23029, \"\\u0120happier\": 23030, \"------\": 23031, \"adjust\": 23032, \"\\u0120staffers\": 23033, \"\\u0120activism\": 23034, \"\\u0120perf\": 23035, \"\\u0120alright\": 23036, \"Need\": 23037, \"\\u0120commence\": 23038, \"\\u0120opioid\": 23039, \"\\u0120Amanda\": 23040, \"Es\": 23041, \"\\u0120Pars\": 23042, \"\\u0120Kaw\": 23043, \"Works\": 23044, \"248\": 23045, \"\\u0120indo\": 23046, \"tc\": 23047, \"endant\": 23048, \"\\u0120Moto\": 23049, \"\\u0120legalization\": 23050, \"OTE\": 23051, \"\\u0120tasked\": 23052, \"\\u0120tsp\": 23053, \"\\u0120ACTIONS\": 23054, \"166\": 23055, \"\\u0120refreshing\": 23056, \"\\u0120NR\": 23057, \"\\u0120Perez\": 23058, \"\\u0120infringement\": 23059, \"SY\": 23060, \"Listen\": 23061, \"inning\": 23062, \"ku\": 23063, \"\\u0120rotate\": 23064, \"program\": 23065, \"arah\": 23066, \"Design\": 23067, \"\\u0120(\\u00c2\\u00a3\": 23068, \"\\u0120storing\": 23069, \"\\u0120warrants\": 23070, \"\\u0120judgement\": 23071, \"\\u0120Brist\": 23072, \"usually\": 23073, \"photo\": 23074, \"\\u0120Ran\": 23075, \"\\u0120Pine\": 23076, \"\\u0120outrageous\": 23077, \"\\u0120Valentine\": 23078, \"luence\": 23079, \"\\u0120Everybody\": 23080, \"Altern\": 23081, \"\\u0120relevance\": 23082, \"\\u0120terminated\": 23083, \"\\u0120dessert\": 23084, \"\\u0120fulfilled\": 23085, \"\\u0120prosecuted\": 23086, \"\\u0120Words\": 23087, \"\\u0120migrant\": 23088, \"\\u0120cultivation\": 23089, \"\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\": 23090, \"idelity\": 23091, \"\\u0120Vern\": 23092, \"\\u0120Login\": 23093, \"\\u0120metaphor\": 23094, \"\\u0120Tip\": 23095, \"\\u0120recruits\": 23096, \"\\u0120Pig\": 23097, \"ribing\": 23098, \"\\u0120enthusiasts\": 23099, \"exper\": 23100, \"\\u0120frightening\": 23101, \"\\u0120Hair\": 23102, \"anson\": 23103, \"strate\": 23104, \"\\u0120hi\": 23105, \"Height\": 23106, \"\\u0120owning\": 23107, \"none\": 23108, \"\\u0120dislike\": 23109, \"\\u0120knives\": 23110, \"pherd\": 23111, \"\\u0120loudly\": 23112, \"\\u0120APIs\": 23113, \"Display\": 23114, \"\\u0120Lac\": 23115, \"\\u0120USS\": 23116, \"abl\": 23117, \"verages\": 23118, \"Jew\": 23119, \"\\u0120172\": 23120, \"\\u0120Historical\": 23121, \"atoon\": 23122, \"\\u0120Physics\": 23123, \"intern\": 23124, \"\\u0120warmth\": 23125, \"\\u0120topp\": 23126, \"DM\": 23127, \"\\u0120gunman\": 23128, \"\\u0120emperor\": 23129, \"odi\": 23130, \"\\u00e3\\u0125\\u00a3\": 23131, \"inatory\": 23132, \"\\u0120Rib\": 23133, \"\\u0120131\": 23134, \"\\u0120Saturn\": 23135, \"\\u0120Shining\": 23136, \"\\u0120waking\": 23137, \"Quotes\": 23138, \"\\u0120comedian\": 23139, \"enberg\": 23140, \"\\u00c2\\u00bd\": 23141, \"\\u0120believers\": 23142, \"\\u0120paperwork\": 23143, \"custom\": 23144, \"\\u0120lev\": 23145, \"\\u0120lament\": 23146, \"\\u0120pouring\": 23147, \"222\": 23148, \"political\": 23149, \"\\u0120Supplement\": 23150, \"maid\": 23151, \"\\u0120cruelty\": 23152, \"\\u0120tread\": 23153, \"ysics\": 23154, \"Aw\": 23155, \"rites\": 23156, \"\\u0120modifier\": 23157, \"\\u0120Position\": 23158, \"Adam\": 23159, \"lb\": 23160, \"ubs\": 23161, \"\\u0120imperfect\": 23162, \"\\u0120clusters\": 23163, \"\\u0120Engineer\": 23164, \"\\u0120Cherry\": 23165, \"\\u0120inauguration\": 23166, \"\\u0120Sau\": 23167, \"\\u0120embodiment\": 23168, \"\\u0120Uncle\": 23169, \"\\u0120overr\": 23170, \"\\u0120explosions\": 23171, \"cule\": 23172, \"\\u0120Princeton\": 23173, \"\\u0120Andrea\": 23174, \"\\u0120incorrectly\": 23175, \"\\u0120earnest\": 23176, \"\\u0120pilgr\": 23177, \"\\u0120Sprint\": 23178, \"\\u0120sleeve\": 23179, \"\\u0120hears\": 23180, \"\\u0120Amazing\": 23181, \"\\u0120browsing\": 23182, \"agin\": 23183, \"\\u0120homeland\": 23184, \"\\u0120haw\": 23185, \"\\u0120diving\": 23186, \"istered\": 23187, \"178\": 23188, \"\\u0120bargaining\": 23189, \"\\u0120Arcade\": 23190, \"\\u0120delegate\": 23191, \"terson\": 23192, \"................................................................\": 23193, \"\\u0120Jacksonville\": 23194, \"275\": 23195, \"\\u0120stagn\": 23196, \"\\u0120adam\": 23197, \"\\u0120Sherman\": 23198, \"CB\": 23199, \"\\u0120suburb\": 23200, \"\\u0120Foods\": 23201, \"\\u0120converting\": 23202, \"\\u0120Arist\": 23203, \"\\u0120chambers\": 23204, \"love\": 23205, \"\\u0120amino\": 23206, \"\\u0120Gan\": 23207, \"\\u0120madness\": 23208, \"mc\": 23209, \"\\u0120USE\": 23210, \"defined\": 23211, \"\\u0120ultr\": 23212, \"indust\": 23213, \"\\u0120wolves\": 23214, \"lance\": 23215, \"Additionally\": 23216, \"\\u0120cracks\": 23217, \"asia\": 23218, \"\\u0120Reason\": 23219, \"\\u0120Pump\": 23220, \"\\u0120accidental\": 23221, \"\\u0120Laser\": 23222, \"\\u0120Rid\": 23223, \"\\u0120initialized\": 23224, \"elli\": 23225, \"\\u0120unnamed\": 23226, \"\\u0120noun\": 23227, \"\\u0120Passed\": 23228, \"\\u0120hostage\": 23229, \"\\u0120Ethiop\": 23230, \"shirts\": 23231, \"\\u0120unrel\": 23232, \"\\u0120Embassy\": 23233, \"\\u01201941\": 23234, \"\\u0120atoms\": 23235, \"\\u0120purported\": 23236, \"164\": 23237, \"\\u0120Fi\": 23238, \"\\u0120gallons\": 23239, \"\\u0120Monica\": 23240, \"\\u0120pg\": 23241, \"enment\": 23242, \"\\u0120sorted\": 23243, \"\\u0120Gospel\": 23244, \"\\u0120heights\": 23245, \"\\u0120traced\": 23246, \"\\u0120undergoing\": 23247, \"Shell\": 23248, \"\\u0120sacks\": 23249, \"\\u0120proportions\": 23250, \"\\u0120halluc\": 23251, \"Font\": 23252, \"acet\": 23253, \"\\u0120warmer\": 23254, \"\\u0120INTER\": 23255, \"\\u0120grabbing\": 23256, \"Plug\": 23257, \"\\u0120realization\": 23258, \"\\u0120Burke\": 23259, \"\\u0120enchant\": 23260, \"ATER\": 23261, \"\\u0120Seed\": 23262, \"\\u0120abundant\": 23263, \"FM\": 23264, \"\\u0120civic\": 23265, \"Vs\": 23266, \"isi\": 23267, \"\\u0120vow\": 23268, \"\\u0120reper\": 23269, \"\\u0120Partnership\": 23270, \"\\u0120penetration\": 23271, \"\\u0120axe\": 23272, \"\\u0120shattered\": 23273, \"\\u0120Zombies\": 23274, \"\\u0120vinyl\": 23275, \"\\u0120Alert\": 23276, \"eon\": 23277, \"\\u0120obliged\": 23278, \"\\u0120Illust\": 23279, \"\\u0120Plaza\": 23280, \"\\u0120Frontier\": 23281, \"\\u0120davidjl\": 23282, \"\\u0120Serial\": 23283, \"\\u0120Hav\": 23284, \"\\u0120Nutrition\": 23285, \"Bi\": 23286, \"\\u0120\\u00e2\\u0138\\u012a\": 23287, \"\\u0120Jays\": 23288, \"linux\": 23289, \"\\u0120hurry\": 23290, \"\\u0120voy\": 23291, \"\\u0120hopeless\": 23292, \"\\u0120Stealth\": 23293, \"\\u0120\\u00e3\\u0123\": 23294, \"essors\": 23295, \"ttle\": 23296, \"borg\": 23297, \"\\u0120Safari\": 23298, \"fell\": 23299, \"\\u0120wary\": 23300, \"due\": 23301, \"\\u0120Above\": 23302, \"Ha\": 23303, \"ELL\": 23304, \"\\u0120notor\": 23305, \"\\u0120Won\": 23306, \"Too\": 23307, \"\\u0120occupations\": 23308, \"\\u0120possessions\": 23309, \"\\u0120inviting\": 23310, \"\\u0120predators\": 23311, \"\\u0120accelerated\": 23312, \"\\u0120157\": 23313, \"uterte\": 23314, \"\\u0120Cube\": 23315, \"east\": 23316, \"account\": 23317, \"Give\": 23318, \"\\u0120transplant\": 23319, \"redients\": 23320, \"idable\": 23321, \"\\u0120screenshots\": 23322, \"\\u0120Gund\": 23323, \"\\u0120FS\": 23324, \"\\u0120travelers\": 23325, \"\\u0120sensory\": 23326, \"\\u0120Fiat\": 23327, \"\\u0120Rockets\": 23328, \"\\u0130\\u012d\": 23329, \"_{\": 23330, \"Friend\": 23331, \"\\u0120charming\": 23332, \"ALS\": 23333, \"\\u0120enjoyment\": 23334, \"mph\": 23335, \"\\u01205000\": 23336, \"\\u0120REG\": 23337, \"\\u00d9\\u0128\": 23338, \"bia\": 23339, \"\\u0120compilation\": 23340, \"rost\": 23341, \"\\u0120VP\": 23342, \"\\u0120Schne\": 23343, \"2019\": 23344, \"\\u0120copying\": 23345, \"MORE\": 23346, \"\\u0120Flore\": 23347, \"falls\": 23348, \"215\": 23349, \"total\": 23350, \"\\u0120disciples\": 23351, \"double\": 23352, \"\\u0120exceeding\": 23353, \"\\u0120smashed\": 23354, \"\\u0120conceptual\": 23355, \"\\u0120Romania\": 23356, \"\\u0120Brent\": 23357, \"\\u0120ICE\": 23358, \"\\u0120Tou\": 23359, \"\\u0120grap\": 23360, \"\\u0120nails\": 23361, \"189\": 23362, \"\\u00e3\\u0125\\u013a\": 23363, \"\\u0120procure\": 23364, \"eur\": 23365, \"\\u0120confirming\": 23366, \"\\u0120Cec\": 23367, \"awi\": 23368, \"\\u0120Eden\": 23369, \"\\u0120ng\": 23370, \"\\u0120engineered\": 23371, \"atics\": 23372, \"\\u0120hooked\": 23373, \"\\u0120disgusting\": 23374, \"\\u0120Murder\": 23375, \"\\u00e3\\u0124\\u00bf\": 23376, \"Library\": 23377, \"\\u0120168\": 23378, \"Almost\": 23379, \"hematic\": 23380, \"Menu\": 23381, \"\\u0120Notre\": 23382, \"\\u0120Jur\": 23383, \"\\u0120kidnapped\": 23384, \"\\u0120hacker\": 23385, \"\\u0120Jade\": 23386, \"\\u0120creepy\": 23387, \"\\u0120drawings\": 23388, \"\\u0120Sponsor\": 23389, \"\\u0120cyclists\": 23390, \"\\u0120Goblin\": 23391, \"\\u0120optimized\": 23392, \"\\u0120staged\": 23393, \"\\u0120McD\": 23394, \"between\": 23395, \"Age\": 23396, \"eno\": 23397, \"Sex\": 23398, \"\\u0120Wide\": 23399, \"nings\": 23400, \"avis\": 23401, \"\\u0120incapable\": 23402, \"\\u0120Kob\": 23403, \"\\u0120rewarding\": 23404, \"\\u0120Lone\": 23405, \"olescent\": 23406, \"\\u0120contracted\": 23407, \"\\u0120sticky\": 23408, \"Jose\": 23409, \"Ball\": 23410, \"fest\": 23411, \"\\u0120Input\": 23412, \"\\u0120Recently\": 23413, \"\\u0120tomat\": 23414, \"square\": 23415, \"Application\": 23416, \"\\u0120nitrogen\": 23417, \"\\u0120duplicate\": 23418, \"\\u0120Recon\": 23419, \"\\u0120Dear\": 23420, \"London\": 23421, \"\\u0120intra\": 23422, \"\\u0120dock\": 23423, \"\\u0120outreach\": 23424, \"\\u0120Million\": 23425, \"\\u0120mammals\": 23426, \"ampton\": 23427, \"VAL\": 23428, \"\\u0120snaps\": 23429, \"\\u0120dos\": 23430, \"\\u0120Whole\": 23431, \"\\u0120Ready\": 23432, \"Try\": 23433, \"\\u0120Winnipeg\": 23434, \"earance\": 23435, \"\\u0120incurred\": 23436, \"renched\": 23437, \"\\u0120NSW\": 23438, \"ilot\": 23439, \"raine\": 23440, \"\\u0120cube\": 23441, \"got\": 23442, \"\\u0120runway\": 23443, \"etermined\": 23444, \"\\u0120Hawks\": 23445, \"\\u0120survivor\": 23446, \"\\u0120Wish\": 23447, \"\\u0120Din\": 23448, \"\\u0120DEF\": 23449, \"\\u0120Vault\": 23450, \"187\": 23451, \"\\u0120mushrooms\": 23452, \"\\u0120crisp\": 23453, \"bey\": 23454, \"\\u0120Discovery\": 23455, \"\\u0120developmental\": 23456, \"\\u0120paradigm\": 23457, \"\\u0120chaotic\": 23458, \"\\u0120Tsu\": 23459, \"\\u0120333\": 23460, \"bons\": 23461, \"\\u0120bacterial\": 23462, \"\\u0120commits\": 23463, \"\\u0120cosmic\": 23464, \"\\u0120mega\": 23465, \"ocative\": 23466, \"\\u0120Paint\": 23467, \"ophobic\": 23468, \"\\u0120vain\": 23469, \"\\u0120carved\": 23470, \"\\u0120Thief\": 23471, \"\\u0120Gul\": 23472, \"owship\": 23473, \"\\u0120cites\": 23474, \"\\u0120Edinburgh\": 23475, \"\\u0120diminished\": 23476, \"\\u0120acknowledges\": 23477, \"\\u0120Kills\": 23478, \"\\u0120microw\": 23479, \"\\u0120Hera\": 23480, \"\\u0120seniors\": 23481, \"\\u0120whereby\": 23482, \"Hop\": 23483, \"atron\": 23484, \"\\u0120unavailable\": 23485, \"\\u0120Nate\": 23486, \"\\u0120480\": 23487, \"\\u0120slated\": 23488, \"\\u0120Rebecca\": 23489, \"\\u0120Battery\": 23490, \"\\u0120grammar\": 23491, \"\\u0120headset\": 23492, \"\\u0120cursor\": 23493, \"\\u0120excluding\": 23494, \"anye\": 23495, \"aundering\": 23496, \"ebin\": 23497, \"\\u0120feasible\": 23498, \"\\u0120Publishing\": 23499, \"\\u0120Labs\": 23500, \"\\u0120Cliff\": 23501, \"\\u0120Ferrari\": 23502, \"\\u0120pac\": 23503, \"visible\": 23504, \"marked\": 23505, \"pell\": 23506, \"\\u0120polite\": 23507, \"\\u0120staggering\": 23508, \"\\u0120Galactic\": 23509, \"\\u0120superst\": 23510, \"\\u0120paran\": 23511, \"\\u0120Officers\": 23512, \"\\u00e3\\u0122\\u0123\": 23513, \"\\u0120specifics\": 23514, \"ulus\": 23515, \"239\": 23516, \"\\u0120Paste\": 23517, \"AMP\": 23518, \"\\u0120Panama\": 23519, \"\\u0120Delete\": 23520, \"anguard\": 23521, \"restrial\": 23522, \"\\u0120heroic\": 23523, \"\\u0120Dy\": 23524, \"\\u00d8\\u00a7\\u00d9\\u0126\": 23525, \"\\u0120incumbent\": 23526, \"\\u0120crunch\": 23527, \"tro\": 23528, \"\\u0120scoop\": 23529, \"\\u0120blogger\": 23530, \"\\u0120sellers\": 23531, \"uren\": 23532, \"\\u0120medicines\": 23533, \"\\u0120Caps\": 23534, \"\\u0120Animation\": 23535, \"oxy\": 23536, \"\\u0120outward\": 23537, \"\\u0120inquiries\": 23538, \"229\": 23539, \"\\u0120psychologist\": 23540, \"\\u0120Sask\": 23541, \"evil\": 23542, \"\\u0120contaminated\": 23543, \"\\u00e3\\u0124\\u00a8\": 23544, \"herence\": 23545, \"\\u0120branded\": 23546, \"\\u0120Abdul\": 23547, \"zh\": 23548, \"\\u0120paragraphs\": 23549, \"\\u0120mins\": 23550, \"\\u0120correlated\": 23551, \"erb\": 23552, \"\\u0120impart\": 23553, \"\\u0120milestone\": 23554, \"\\u0120Solutions\": 23555, \"otle\": 23556, \"\\u0120undercover\": 23557, \"\\u0120marched\": 23558, \"\\u0120Chargers\": 23559, \"fax\": 23560, \"\\u0120Secrets\": 23561, \"\\u0120ruth\": 23562, \"weather\": 23563, \"\\u0120feminine\": 23564, \"\\u0120sham\": 23565, \"\\u0120prestigious\": 23566, \"iggins\": 23567, \"\\u0120sung\": 23568, \"history\": 23569, \"ettle\": 23570, \"ggie\": 23571, \"\\u0120outdated\": 23572, \"oland\": 23573, \"\\u0120perceptions\": 23574, \"\\u0120Session\": 23575, \"\\u0120Dodgers\": 23576, \"uj\": 23577, \"\\u0120END\": 23578, \"Doc\": 23579, \"\\u0120deficiency\": 23580, \"Grand\": 23581, \"\\u0120Joker\": 23582, \"\\u0120retrospect\": 23583, \"\\u0120diagnostic\": 23584, \"\\u0120harmless\": 23585, \"\\u0120rogue\": 23586, \"\\u0120Aval\": 23587, \"Equ\": 23588, \"\\u0120transc\": 23589, \"\\u0120Robertson\": 23590, \"\\u0120Depending\": 23591, \"\\u0120Burns\": 23592, \"ivo\": 23593, \"\\u0120hostility\": 23594, \"Features\": 23595, \"\\u0135\\u013a\": 23596, \"\\u0120discomfort\": 23597, \"\\u0120LCD\": 23598, \"specified\": 23599, \"\\u0120Expect\": 23600, \"340\": 23601, \"\\u0120imperative\": 23602, \"\\u0120Regular\": 23603, \"Chinese\": 23604, \"\\u0120statewide\": 23605, \"\\u0120symm\": 23606, \"\\u0120loops\": 23607, \"\\u0120autumn\": 23608, \"Nick\": 23609, \"\\u0120shaping\": 23610, \"\\u0120quot\": 23611, \"\\u0120cherry\": 23612, \"\\u0120Crossref\": 23613, \"\\u00e8\\u00a6\\u013c\\u00e9\\u0128\\u0134\": 23614, \"Standard\": 23615, \"heed\": 23616, \"\\u0120Dell\": 23617, \"\\u0120Vietnamese\": 23618, \"\\u0120ost\": 23619, \"\\u0120Valkyrie\": 23620, \"OA\": 23621, \"Assad\": 23622, \"\\u0120rebound\": 23623, \"\\u0120Traffic\": 23624, \"places\": 23625, \"\\u00e6\\u013a\": 23626, \"\\u0120Buc\": 23627, \"172\": 23628, \"\\u0120shelters\": 23629, \"\\u0120insisting\": 23630, \"\\u0120Certainly\": 23631, \"\\u0120Kenneth\": 23632, \"\\u0120TCP\": 23633, \"\\u0120penal\": 23634, \"\\u0120Replay\": 23635, \"heard\": 23636, \"\\u0120dialect\": 23637, \"iza\": 23638, \"\\u0120FY\": 23639, \"itcher\": 23640, \"\\u0120DL\": 23641, \"\\u0120spiral\": 23642, \"\\u0120quarterbacks\": 23643, \"\\u0120hull\": 23644, \"\\u0120google\": 23645, \"\\u0120todd\": 23646, \"\\u0120Sterling\": 23647, \"\\u0120Plate\": 23648, \"\\u0120spying\": 23649, \"mbol\": 23650, \"\\u0120Realm\": 23651, \"\\u0120Proced\": 23652, \"\\u0120Crash\": 23653, \"\\u0120terminate\": 23654, \"\\u0120protesting\": 23655, \"Center\": 23656, \"guided\": 23657, \"\\u0120uncover\": 23658, \"\\u0120boycott\": 23659, \"\\u0120realizes\": 23660, \"sound\": 23661, \"\\u0120pretending\": 23662, \"\\u0120Vas\": 23663, \"1980\": 23664, \"\\u0120framed\": 23665, \"\\u0120139\": 23666, \"\\u0120descended\": 23667, \"\\u0120rehabilitation\": 23668, \"\\u0120borrowing\": 23669, \"\\u0120Buch\": 23670, \"\\u0120blur\": 23671, \"Ron\": 23672, \"\\u0120Frozen\": 23673, \"enza\": 23674, \"Chief\": 23675, \"\\u0120Poor\": 23676, \"\\u0120translates\": 23677, \"MIN\": 23678, \"\\u0120212\": 23679, \"JECT\": 23680, \"\\u0120erupted\": 23681, \"\\u0120successes\": 23682, \"SEC\": 23683, \"\\u0120plague\": 23684, \"\\u0120gems\": 23685, \"doms\": 23686, \"\\u0120stretches\": 23687, \"\\u0120Spy\": 23688, \"\\u0120storytelling\": 23689, \"Credit\": 23690, \"\\u0120Push\": 23691, \"\\u0120traction\": 23692, \"\\u0120ineffective\": 23693, \"\\u0120Luna\": 23694, \"\\u0120tapes\": 23695, \"\\u0120analytics\": 23696, \"ercise\": 23697, \"\\u0120programmes\": 23698, \"\\u0120Carbon\": 23699, \"\\u0120behold\": 23700, \"heavy\": 23701, \"\\u0120Conservation\": 23702, \"\\u0120FIR\": 23703, \"\\u0120sack\": 23704, \"termin\": 23705, \"ricks\": 23706, \"\\u0120housed\": 23707, \"\\u0120unusually\": 23708, \"Ice\": 23709, \"\\u0120executing\": 23710, \"\\u0120Moroc\": 23711, \"eday\": 23712, \"\\u0120editions\": 23713, \"\\u0120smarter\": 23714, \"\\u0120BA\": 23715, \"\\u0120outlaw\": 23716, \"\\u0120vanished\": 23717, \"iba\": 23718, \"ALSE\": 23719, \"\\u0120Silva\": 23720, \"238\": 23721, \"Could\": 23722, \"\\u0120philosopher\": 23723, \"\\u0120evacuated\": 23724, \"Secret\": 23725, \"142\": 23726, \"\\u0120visas\": 23727, \"\\u00e3\\u0124\\u00ac\": 23728, \"\\u0120Malt\": 23729, \"\\u0120Clearly\": 23730, \"\\u0120Niger\": 23731, \"\\u0120Cairo\": 23732, \"\\u0120Fist\": 23733, \"380\": 23734, \"\\u0120XML\": 23735, \"auto\": 23736, \"itant\": 23737, \"\\u0120reinforced\": 23738, \"Record\": 23739, \"\\u0120Survivor\": 23740, \"GHz\": 23741, \"\\u0120screws\": 23742, \"parents\": 23743, \"\\u0120oceans\": 23744, \"mares\": 23745, \"\\u0120brakes\": 23746, \"vasive\": 23747, \"\\u0120hello\": 23748, \"\\u0120SIM\": 23749, \"rimp\": 23750, \"\\u0120ore\": 23751, \"\\u0120Armour\": 23752, \"247\": 23753, \"\\u0120terrific\": 23754, \"\\u0120tones\": 23755, \"141\": 23756, \"\\u0120Minutes\": 23757, \"Episode\": 23758, \"\\u0120curves\": 23759, \"\\u0120inflammatory\": 23760, \"\\u0120batting\": 23761, \"\\u0120Beautiful\": 23762, \"Lay\": 23763, \"\\u0120unpop\": 23764, \"vable\": 23765, \"\\u0120riots\": 23766, \"\\u0120Tactics\": 23767, \"baugh\": 23768, \"\\u0120Cock\": 23769, \"\\u0120orgasm\": 23770, \"\\u0120Sas\": 23771, \"\\u0120constructor\": 23772, \"etz\": 23773, \"Gov\": 23774, \"\\u0120antagon\": 23775, \"\\u0120theat\": 23776, \"\\u0120deeds\": 23777, \"hao\": 23778, \"cuts\": 23779, \"\\u0120McCl\": 23780, \"\\u0120um\": 23781, \"\\u0120Scientists\": 23782, \"\\u0120grassroots\": 23783, \"yssey\": 23784, \"\\\"]=>\": 23785, \"\\u0120surfaced\": 23786, \"\\u0120shades\": 23787, \"\\u0120neighbours\": 23788, \"\\u0120advertis\": 23789, \"oya\": 23790, \"\\u0120merged\": 23791, \"Upon\": 23792, \"\\u0120gad\": 23793, \"\\u0120anticipate\": 23794, \"Anyway\": 23795, \"\\u0120slogan\": 23796, \"\\u0120disrespect\": 23797, \"Iran\": 23798, \"\\u0120TB\": 23799, \"acted\": 23800, \"\\u0120subpoen\": 23801, \"mediately\": 23802, \"OOOO\": 23803, \"\\u0120waiver\": 23804, \"\\u0120vulnerabilities\": 23805, \"ottesville\": 23806, \"\\u0120Huffington\": 23807, \"Josh\": 23808, \"\\u0120DH\": 23809, \"Monday\": 23810, \"\\u0120Ellen\": 23811, \"Know\": 23812, \"xon\": 23813, \"items\": 23814, \"228\": 23815, \"\\u0120fills\": 23816, \"\\u0120Nike\": 23817, \"\\u0120cumulative\": 23818, \"andals\": 23819, \"Ir\": 23820, \"\\u0120\\u00ec\": 23821, \"\\u0120friction\": 23822, \"igator\": 23823, \"\\u0120scans\": 23824, \"\\u0120Vienna\": 23825, \"ldom\": 23826, \"\\u0120performers\": 23827, \"Prim\": 23828, \"\\u0120bidding\": 23829, \"Mur\": 23830, \"\\u0120leaned\": 23831, \"\\u0120Prix\": 23832, \"alks\": 23833, \"\\u0120[\\u00e2\\u0122\\u00a6]\": 23834, \"\\u0120Twitch\": 23835, \"\\u0120Developer\": 23836, \"\\u0120Gir\": 23837, \"\\u0120callback\": 23838, \"Abstract\": 23839, \"\\u0120accustomed\": 23840, \"\\u0120freedoms\": 23841, \"\\u0120PG\": 23842, \"uracy\": 23843, \"\\u0120lump\": 23844, \"isman\": 23845, \",,,,\": 23846, \"1992\": 23847, \"\\u0120RED\": 23848, \"\\u0120worm\": 23849, \"Match\": 23850, \"\\u0120Platinum\": 23851, \"IJ\": 23852, \"\\u0120Owner\": 23853, \"Trivia\": 23854, \"compl\": 23855, \"\\u0120newborn\": 23856, \"\\u0120fantas\": 23857, \"Own\": 23858, \"\\u01201959\": 23859, \"\\u0120sympath\": 23860, \"\\u0120ubiqu\": 23861, \"\\u0120outputs\": 23862, \"\\u0120allev\": 23863, \"\\u0120prag\": 23864, \"Kevin\": 23865, \"\\u0120favors\": 23866, \"\\u0120burial\": 23867, \"\\u0120nurt\": 23868, \"solete\": 23869, \"cache\": 23870, \"\\u0120156\": 23871, \"\\u0120unlocks\": 23872, \"techn\": 23873, \"Making\": 23874, \"\\u0120conquer\": 23875, \"adic\": 23876, \"\\u00e6\\u0138\": 23877, \"\\u0120elf\": 23878, \"\\u0120electorate\": 23879, \"\\u0120Kurds\": 23880, \"\\u0120Stack\": 23881, \"\\u0120Samurai\": 23882, \"\\u0120\\u00e2\\u013a\\u0127\": 23883, \"\\u0120{}\": 23884, \"\\u0120Said\": 23885, \"\\u0120Fallout\": 23886, \"\\u0120kindness\": 23887, \"\\u0120Customs\": 23888, \"\\u0120Boulevard\": 23889, \"\\u0120helicopters\": 23890, \"otics\": 23891, \"\\u0120Veget\": 23892, \"comment\": 23893, \"\\u0120criticised\": 23894, \"\\u0120polished\": 23895, \"\\u0120Remix\": 23896, \"\\u0120Cultural\": 23897, \"\\u0120recons\": 23898, \"\\u0120doi\": 23899, \"atem\": 23900, \"Screen\": 23901, \"\\u0120barred\": 23902, \"Comments\": 23903, \"\\u0120Generally\": 23904, \"\\u0120slap\": 23905, \"720\": 23906, \"Vari\": 23907, \"pine\": 23908, \"\\u0120empt\": 23909, \"\\u0120hats\": 23910, \"\\u0120Playing\": 23911, \"lab\": 23912, \"average\": 23913, \"forms\": 23914, \"\\u0120Cotton\": 23915, \"\\u0120cans\": 23916, \"\\u0120DON\": 23917, \"\\u0120Somalia\": 23918, \"Crypt\": 23919, \"\\u0120Increases\": 23920, \"Ever\": 23921, \"modern\": 23922, \"\\u0120surgeon\": 23923, \"3000\": 23924, \"\\u0120randomized\": 23925, \"================================================================\": 23926, \"Bern\": 23927, \"impl\": 23928, \"\\u0120COR\": 23929, \"\\u0120proclaim\": 23930, \"thouse\": 23931, \"\\u0120toes\": 23932, \"\\u0120ample\": 23933, \"\\u0120preserving\": 23934, \"\\u0120disbel\": 23935, \"grand\": 23936, \"Besides\": 23937, \"\\u0120silk\": 23938, \"\\u0120Pattern\": 23939, \"hm\": 23940, \"\\u0120enterprises\": 23941, \"\\u0120affidavit\": 23942, \"\\u0120Advisory\": 23943, \"\\u0120advertised\": 23944, \"\\u0120Religious\": 23945, \"sections\": 23946, \"psych\": 23947, \"\\u0120Fields\": 23948, \"aways\": 23949, \"\\u0120hashtag\": 23950, \"\\u0120Nightmare\": 23951, \"\\u0120vampire\": 23952, \"\\u0120forensic\": 23953, \"rossover\": 23954, \"nar\": 23955, \"\\u0120navy\": 23956, \"\\u0120vacant\": 23957, \"\\u0120Duel\": 23958, \"\\u0120hallway\": 23959, \"\\u0120facebook\": 23960, \"identally\": 23961, \"\\u0120NRA\": 23962, \"\\u0120matt\": 23963, \"\\u0120hurricane\": 23964, \"\\u0120Kirby\": 23965, \"\\u0120Puzzle\": 23966, \"\\u0120skirt\": 23967, \"oust\": 23968, \"dullah\": 23969, \"\\u0120analogy\": 23970, \"inion\": 23971, \"\\u0120tomatoes\": 23972, \"\\u0120NV\": 23973, \"\\u0120Peak\": 23974, \"\\u0120Meyer\": 23975, \"\\u0120appointments\": 23976, \"\\u0120masc\": 23977, \"\\u0120alley\": 23978, \"rehend\": 23979, \"\\u0120charities\": 23980, \"\\u0120undo\": 23981, \"\\u0120destinations\": 23982, \"\\u0120Testing\": 23983, \"\\\"></\": 23984, \"\\u0120destined\": 23985, \"\\u0120implements\": 23986, \"\\u0120Harold\": 23987, \"RECT\": 23988, \"\\u0120optimization\": 23989, \"\\u0120kilometres\": 23990, \"\\u0120cmd\": 23991, \"\\u0120impairment\": 23992, \"\\u0120unsuccessful\": 23993, \"\\u0120swiftly\": 23994, \"\\u0120Glasgow\": 23995, \"arten\": 23996, \"\\u0120Shares\": 23997, \"\\u0120Answer\": 23998, \"\\u0120Album\": 23999, \"\\u0120nutritional\": 24000, \"\\u00e3\\u0125\\u0138\": 24001, \"\\u0120Fut\": 24002, \"\\u0120bloc\": 24003, \"\\u0120NFC\": 24004, \"\\u0120wholesale\": 24005, \"\\u0120CW\": 24006, \"\\u0120neglected\": 24007, \"\\u0120launcher\": 24008, \"\\u0120announcements\": 24009, \"OULD\": 24010, \"comb\": 24011, \"\\u0120rotating\": 24012, \"\\u0120rests\": 24013, \"\\u0120Ticket\": 24014, \"chedel\": 24015, \"Lou\": 24016, \"\\u0120Vic\": 24017, \"\\u0120\\\"'\": 24018, \"\\u0120templates\": 24019, \"\\u0120replaces\": 24020, \"Arc\": 24021, \"::::\": 24022, \"\\u0120Gilbert\": 24023, \"\\u0120illnesses\": 24024, \"\\u0120schedules\": 24025, \"\\u0120heterosexual\": 24026, \"LINE\": 24027, \"\\u0120herein\": 24028, \"\\u0120coerc\": 24029, \"\\u0120decreasing\": 24030, \"\\u0120deportation\": 24031, \"sudo\": 24032, \"\\u0120Indigenous\": 24033, \"\\u0120weighs\": 24034, \"Along\": 24035, \"');\": 24036, \"\\u0120Bengals\": 24037, \"707\": 24038, \"\\u0120joints\": 24039, \"verts\": 24040, \"\\u0120149\": 24041, \"naire\": 24042, \"\\u0120simplest\": 24043, \"\\u0120lore\": 24044, \"1080\": 24045, \"fiction\": 24046, \"\\u0120Database\": 24047, \"\\u0120reservation\": 24048, \"\\u0120sou\": 24049, \"\\u0120sanctuary\": 24050, \"audio\": 24051, \"aple\": 24052, \"\\u0120vegetarian\": 24053, \"\\u0120anticipation\": 24054, \"micro\": 24055, \"\\u0120enduring\": 24056, \"\\u0120departed\": 24057, \"\\u0120sidewalk\": 24058, \"\\u0120prohibits\": 24059, \"\\u0120Font\": 24060, \"\\u0120compute\": 24061, \"\\u0120Sect\": 24062, \"\\u0120158\": 24063, \"Battle\": 24064, \"\\u0120bomber\": 24065, \"\\u0120distraction\": 24066, \"\\u0120endured\": 24067, \"\\u0120practitioners\": 24068, \"\\u0120disturbed\": 24069, \"\\u0120drank\": 24070, \"ordered\": 24071, \"\\u0120surprises\": 24072, \"seat\": 24073, \"Security\": 24074, \"\\u0120Wisdom\": 24075, \"ogo\": 24076, \"\\u0120subparagraph\": 24077, \"\\u0120Peninsula\": 24078, \"\\u0120Origins\": 24079, \"iren\": 24080, \"\\u0120Pav\": 24081, \"iggle\": 24082, \"\\u0120gratitude\": 24083, \"\\u0120Gravity\": 24084, \"overty\": 24085, \"iman\": 24086, \"ctr\": 24087, \"\\u0120Caesar\": 24088, \"could\": 24089, \"gem\": 24090, \"\\u0120skies\": 24091, \"\\u0120champ\": 24092, \"\\u0120agreeing\": 24093, \"Family\": 24094, \"Div\": 24095, \"176\": 24096, \"\\u0120messy\": 24097, \"umption\": 24098, \"Federal\": 24099, \"erno\": 24100, \"\\u0120Chat\": 24101, \"Beyond\": 24102, \"\\u0120devote\": 24103, \"\\u0120Walsh\": 24104, \"\\u0120dumped\": 24105, \"\\u0120accumulation\": 24106, \"stad\": 24107, \"hibition\": 24108, \"\\u0120smokers\": 24109, \"\\u0120inspector\": 24110, \"French\": 24111, \"issan\": 24112, \"\\u0120Vita\": 24113, \"\\u0120researching\": 24114, \"RAM\": 24115, \"\\u0120Celtics\": 24116, \"\\u0120cloak\": 24117, \"\\u0120Terra\": 24118, \"Mary\": 24119, \"sold\": 24120, \"\\u0120DOM\": 24121, \"mods\": 24122, \"Intel\": 24123, \"\\u0120multitude\": 24124, \"\\u0120Improved\": 24125, \"\\u0120reliance\": 24126, \"\\u0120artifact\": 24127, \"\\u0120alarming\": 24128, \"Prom\": 24129, \"hon\": 24130, \"TION\": 24131, \"medium\": 24132, \"\\u0120reflex\": 24133, \"\\u0120Excel\": 24134, \"\\u0120weakened\": 24135, \"163\": 24136, \"224\": 24137, \"\\u0120costumes\": 24138, \"\\u0120uniquely\": 24139, \"\\u0120sorrow\": 24140, \"\\u0120mansion\": 24141, \"wp\": 24142, \"\\u0120salv\": 24143, \"\\u0120Grove\": 24144, \"bsp\": 24145, \"\\u0120Sniper\": 24146, \"\\u0120Shipping\": 24147, \"\\u0120POW\": 24148, \"\\u0120undis\": 24149, \"\\u0120branding\": 24150, \"Girl\": 24151, \"\\u0120Ahmad\": 24152, \"\\u0120Lakes\": 24153, \"\\u0120Corey\": 24154, \"\\u0120inheritance\": 24155, \"enery\": 24156, \"\\u0120packing\": 24157, \"\\u0120Prest\": 24158, \"Dest\": 24159, \"FW\": 24160, \"\\u0120regulator\": 24161, \"locked\": 24162, \"\\u0120contested\": 24163, \"\\u0120Melissa\": 24164, \"\\u0120Duc\": 24165, \"\\u0120unpopular\": 24166, \"\\u0120stacked\": 24167, \"\\u01201917\": 24168, \"\\u0120yearly\": 24169, \"\\u0120stare\": 24170, \"\\u0120assessing\": 24171, \"\\u00c3\\u00b8\": 24172, \"\\u0120beverages\": 24173, \"\\u0120competitions\": 24174, \"\\u0120strengthening\": 24175, \"along\": 24176, \"\\u0120Lud\": 24177, \"\\u0120melted\": 24178, \"stanbul\": 24179, \"\\u0120bounty\": 24180, \"ENC\": 24181, \"\\u0120Lands\": 24182, \"\\u0120declares\": 24183, \"\\u0120customize\": 24184, \"\\u0120composite\": 24185, \"\\u00e3\\u0125\\u00ac\": 24186, \"CM\": 24187, \"ographics\": 24188, \"\\u0120Temp\": 24189, \"\\u0120contender\": 24190, \"\\u0120insign\": 24191, \"\\u0120LAN\": 24192, \"\\u0120disasters\": 24193, \"inspired\": 24194, \"\\u0120judgments\": 24195, \"ustainable\": 24196, \"ursion\": 24197, \"\\u0120variance\": 24198, \"\\u0120Ultimately\": 24199, \"\\u0120--------\": 24200, \"uador\": 24201, \"\\u0120RX\": 24202, \"\\u0120melting\": 24203, \"\\u0120Extended\": 24204, \"\\u0120Twe\": 24205, \"Major\": 24206, \"\\u0120Bil\": 24207, \"\\u0120syrup\": 24208, \"quick\": 24209, \"\\u0120Holder\": 24210, \"\\u0120innocence\": 24211, \"ULE\": 24212, \"\\u0120Might\": 24213, \"9999\": 24214, \"\\u0120fal\": 24215, \"\\u0120continuity\": 24216, \"\\u01201953\": 24217, \"\\u0120BS\": 24218, \"still\": 24219, \"Lat\": 24220, \"\\u0120Abuse\": 24221, \"\\u0120unsupported\": 24222, \"xxxxxxxx\": 24223, \"\\u0120institute\": 24224, \"\\u0120fragment\": 24225, \"\\u0120Pep\": 24226, \"Western\": 24227, \"\\u0120Cause\": 24228, \"\\u0120Frag\": 24229, \"\\u0120Ars\": 24230, \"\\u00e0\\u00a5\": 24231, \"astics\": 24232, \"\\u0120bishop\": 24233, \"\\u0120crosses\": 24234, \"\\u0120154\": 24235, \"\\u0120Upgrade\": 24236, \"\\u0120mitigate\": 24237, \"\\u0120Raymond\": 24238, \"Mods\": 24239, \"\\u0120tomato\": 24240, \"\\u0120stumbled\": 24241, \"\\u0120differs\": 24242, \"Initial\": 24243, \"\\u0120Raspberry\": 24244, \"\\u0120ignores\": 24245, \"\\u0120tant\": 24246, \"\\u00c3\\u0142\": 24247, \"\\u0120relay\": 24248, \"\\u0120bisexual\": 24249, \"\\u0120confession\": 24250, \"\\u0120dement\": 24251, \"inas\": 24252, \"\\u0120Heather\": 24253, \"platform\": 24254, \"driving\": 24255, \"bourg\": 24256, \"\\u0120Mush\": 24257, \"\\u0120hyster\": 24258, \"Details\": 24259, \"\\u0120drift\": 24260, \"\\u0120Wald\": 24261, \"\\u0120Luckily\": 24262, \"orf\": 24263, \"\\u0120expire\": 24264, \"\\u0120Punch\": 24265, \"zyme\": 24266, \"gold\": 24267, \"\\u0120unpaid\": 24268, \"\\u0120Trent\": 24269, \"\\u0120unarmed\": 24270, \"\\u0120illicit\": 24271, \"\\u0120Tottenham\": 24272, \"\\u0120smash\": 24273, \"International\": 24274, \"inker\": 24275, \"\\u0120sting\": 24276, \"\\u0120Saddam\": 24277, \"\\u0120ART\": 24278, \"\\u0120truths\": 24279, \"birth\": 24280, \"\\u0120sober\": 24281, \"\\u0120Nit\": 24282, \"\\u0120ib\": 24283, \"\\u0120usable\": 24284, \"\\u0120stacks\": 24285, \"\\u0120Sylv\": 24286, \"\\u0120northeast\": 24287, \"\\u0120domination\": 24288, \"\\u0120Mour\": 24289, \"ENSE\": 24290, \"\\u0120Measure\": 24291, \"\\u0120programmer\": 24292, \"\\u0120<-\": 24293, \"182\": 24294, \"\\u0120Condition\": 24295, \"\\u0120backyard\": 24296, \"irling\": 24297, \"\\u0120Jeb\": 24298, \"\\u0120Creed\": 24299, \"\\u0120Hang\": 24300, \"\\u0120COMP\": 24301, \"FER\": 24302, \"\\u0120Ish\": 24303, \"\\u0120detectives\": 24304, \"---------------\": 24305, \"\\u0120Messenger\": 24306, \"\\u0120looph\": 24307, \"\\u0120gateway\": 24308, \"151\": 24309, \"\\u0120Materials\": 24310, \"\\u0120DT\": 24311, \"\\u0120doomed\": 24312, \"odo\": 24313, \"\\u0120slices\": 24314, \"\\u0120emailed\": 24315, \"\\u0120Perl\": 24316, \"\\u0120renov\": 24317, \"UTH\": 24318, \"odynam\": 24319, \"\\u0120Southwest\": 24320, \"getic\": 24321, \"\\u0120TPP\": 24322, \"\\u0120optimism\": 24323, \"\\u0120Tow\": 24324, \"ulators\": 24325, \"protected\": 24326, \"yles\": 24327, \"\\u00c2\\u00ab\": 24328, \"\\u0120exile\": 24329, \"env\": 24330, \"Prop\": 24331, \"\\u0120Zimmerman\": 24332, \"\\u00d9\\u0130\": 24333, \"Ca\": 24334, \"omaly\": 24335, \"\\u00e3\\u0125\\u0128\": 24336, \"\\u0120railroad\": 24337, \"Lee\": 24338, \"232\": 24339, \"\\u0120replicate\": 24340, \"\\u0120comfortably\": 24341, \"actly\": 24342, \"\\u0120rav\": 24343, \"\\u0120telescope\": 24344, \"\\u0120honesty\": 24345, \"\\u0120Pepper\": 24346, \"\\u0120Bring\": 24347, \"\\u0120richest\": 24348, \"\\u0120outdoors\": 24349, \"\\u0120halls\": 24350, \"\\u0120contend\": 24351, \"ISE\": 24352, \"\\u0120submitting\": 24353, \"\\u0120naive\": 24354, \"arations\": 24355, \"\\u0120143\": 24356, \"\\u0120poised\": 24357, \"responsible\": 24358, \"\\u0120socks\": 24359, \"\\u0120Skull\": 24360, \"Question\": 24361, \"\\u0120discoveries\": 24362, \"Joined\": 24363, \"\\u0120Enemies\": 24364, \"\\u0120Wireless\": 24365, \"\\u0120Revenge\": 24366, \"\\u0120puzzles\": 24367, \"\\u0120ceased\": 24368, \"290\": 24369, \"criptions\": 24370, \"\\u0120Console\": 24371, \"\\u0120boiling\": 24372, \"\\u0120discrep\": 24373, \"\\u0120deduction\": 24374, \"\\u0120arsenal\": 24375, \"XXXX\": 24376, \"\\u0120Amsterdam\": 24377, \"roximately\": 24378, \"\\u0120Shane\": 24379, \"\\u0120posing\": 24380, \"\\u0120ACLU\": 24381, \"\\u0120Companies\": 24382, \"\\u0120theology\": 24383, \"\\u0120Ug\": 24384, \"quarter\": 24385, \"\\u0120Hank\": 24386, \"Coin\": 24387, \"\\u0120Lv\": 24388, \"\\u0120allegation\": 24389, \"\\u0120Avoid\": 24390, \"\\u0120indefinitely\": 24391, \"\\u0120commodities\": 24392, \"\\u0120brig\": 24393, \"\\u0120Manit\": 24394, \"\\u0120tenth\": 24395, \"method\": 24396, \"\\u0120Knicks\": 24397, \"\\u0120\\u00e2\\u0122\\u0130\": 24398, \"\\u0120invoked\": 24399, \"Dial\": 24400, \"ARA\": 24401, \"\\u0120caucus\": 24402, \"227\": 24403, \"\\u0120Jab\": 24404, \"\\u0120ounces\": 24405, \"bay\": 24406, \"\\u0120buddy\": 24407, \"fan\": 24408, \"234\": 24409, \"\\u0120Hil\": 24410, \"adh\": 24411, \"\\u0120TY\": 24412, \"\\u0120IND\": 24413, \"\\u01201939\": 24414, \"\\u0120iteration\": 24415, \"\\u0120Gonzalez\": 24416, \"\\u0120Vert\": 24417, \"\\u0120IO\": 24418, \"emb\": 24419, \"rera\": 24420, \"ench\": 24421, \"\\u0120Requirements\": 24422, \"\\u0120Wins\": 24423, \"\\u0120livestock\": 24424, \"hours\": 24425, \"\\\"\\u00e2\\u0122\\u00a6\": 24426, \"bral\": 24427, \"Marg\": 24428, \"\\u0120Done\": 24429, \"\\u0120wasting\": 24430, \"inged\": 24431, \"groups\": 24432, \"\\u0120wishing\": 24433, \"\\u0120Tumblr\": 24434, \"\\u0120tapping\": 24435, \"\\u0120nationalism\": 24436, \"\\u0120Byr\": 24437, \"\\u0120squares\": 24438, \"\\u0120Actions\": 24439, \"\\u00e3\\u0125\\u00a5\": 24440, \"Inside\": 24441, \"debug\": 24442, \"\\u0120append\": 24443, \"\\u0120stubborn\": 24444, \"\\u0120Cind\": 24445, \"Tell\": 24446, \"\\u0120tearing\": 24447, \"\\u0120Rey\": 24448, \"orc\": 24449, \"\\u0120Dayton\": 24450, \"\\u0120NH\": 24451, \"\\u0120Madness\": 24452, \"Charl\": 24453, \"\\u0120Morrison\": 24454, \"filter\": 24455, \"\\u0120accuse\": 24456, \"\\u0120./\": 24457, \"\\u0120torrent\": 24458, \"\\u0120declines\": 24459, \"gallery\": 24460, \"Mine\": 24461, \"\\u0120negotiation\": 24462, \"\\u0120Bashar\": 24463, \"opia\": 24464, \"1993\": 24465, \"emort\": 24466, \"\\u0120Novel\": 24467, \"\\u0120Fang\": 24468, \"ersive\": 24469, \"\\u0120Instant\": 24470, \"\\u0120roller\": 24471, \"Around\": 24472, \"\\u0120Elections\": 24473, \"Games\": 24474, \"\\u0120inexpensive\": 24475, \"\\u0120wors\": 24476, \"\\u0120vul\": 24477, \"\\u0120Hole\": 24478, \"\\u0120unbelievable\": 24479, \"\\u0120nause\": 24480, \"\\u0120entr\": 24481, \"boat\": 24482, \"\\u0120STE\": 24483, \"\\u0120bush\": 24484, \"\\u0120Hassan\": 24485, \"\\u0120wo\": 24486, \"\\u0120paused\": 24487, \"\\u0120Mig\": 24488, \"lived\": 24489, \"\\u0120scout\": 24490, \"\\u0120lith\": 24491, \"Published\": 24492, \"duino\": 24493, \"cool\": 24494, \"\\u0120circulating\": 24495, \"idas\": 24496, \"\\u0120Pam\": 24497, \"violent\": 24498, \"\\u0120Crawford\": 24499, \"uddle\": 24500, \"\\u0120Letters\": 24501, \"Guard\": 24502, \"morph\": 24503, \"\\u0120wandering\": 24504, \"\\u0120sophomore\": 24505, \"\\u0120queer\": 24506, \"\\u0120Blind\": 24507, \"rue\": 24508, \"\\u0120Marriage\": 24509, \"Dom\": 24510, \"\\u0120padding\": 24511, \"\\u0120folders\": 24512, \"\\u0120meaningless\": 24513, \"\\u0120candidacy\": 24514, \"afort\": 24515, \"\\u0120whistlebl\": 24516, \"\\u0120Identified\": 24517, \"\\u0120cigar\": 24518, \"\\u0120hid\": 24519, \"\\u0120Dubai\": 24520, \"\\u0120posture\": 24521, \"\\u0120hiking\": 24522, \"\\u0120Terminal\": 24523, \"Legendary\": 24524, \"\\u0120TP\": 24525, \"\\u0120ATK\": 24526, \"\\u0120Starbucks\": 24527, \"\\u0120Riot\": 24528, \"1991\": 24529, \"\\u0120Bottom\": 24530, \"effic\": 24531, \"\\u0120Eugene\": 24532, \"\\u0120Wyoming\": 24533, \"\\u0120Rocky\": 24534, \"\\u0120salmon\": 24535, \"\\u0120metro\": 24536, \"\\u0120bilateral\": 24537, \"\\u0120celebrates\": 24538, \"Length\": 24539, \"billion\": 24540, \"Bat\": 24541, \"\\u0120releg\": 24542, \"\\u0120pseudo\": 24543, \"DT\": 24544, \"\\u0120Rhode\": 24545, \"Parent\": 24546, \"pletion\": 24547, \"\\u0120attribut\": 24548, \"\\u0120tuning\": 24549, \"\\u0120NOTE\": 24550, \"\\u0120Rebel\": 24551, \"icus\": 24552, \"Fund\": 24553, \"\\u0120cocktail\": 24554, \"\\u0120501\": 24555, \"\\u0120spoon\": 24556, \"\\u0120brutality\": 24557, \"\\u0120unite\": 24558, \"\\u0120microbi\": 24559, \"\\u0120Reich\": 24560, \"positive\": 24561, \"\\u0120amazed\": 24562, \"\\u0120NT\": 24563, \"Desc\": 24564, \"ECTION\": 24565, \"\\u0120falsely\": 24566, \"\\u0120Highlander\": 24567, \"\\u0120Crist\": 24568, \"\\u0120Victorian\": 24569, \"\\u0120distributions\": 24570, \"their\": 24571, \"\\u0120Einstein\": 24572, \"\\u0120pod\": 24573, \"\\u0120epidem\": 24574, \"\\u0120heap\": 24575, \"\\u0120Ranch\": 24576, \"\\u0120anthem\": 24577, \"\\u0120reapp\": 24578, \"\\u0120Auburn\": 24579, \"\\u0120concurrent\": 24580, \"\\u0120Throughout\": 24581, \"\\u0120POST\": 24582, \"\\u00e2\\u013a\": 24583, \"\\u0120homemade\": 24584, \"kick\": 24585, \"Beg\": 24586, \"\\u0120chassis\": 24587, \"counter\": 24588, \"\\u0120merger\": 24589, \"\\u0120laps\": 24590, \"217\": 24591, \"union\": 24592, \"\\u0120Trigger\": 24593, \"\\u0120debated\": 24594, \"\\u0120silently\": 24595, \"\\u0120restraint\": 24596, \"Bal\": 24597, \"0000000\": 24598, \"\\u0120formidable\": 24599, \"\\u0120Filip\": 24600, \"\\u0120sacrifices\": 24601, \"Food\": 24602, \"\\u0120dwarf\": 24603, \"\\u0120Sequ\": 24604, \"inian\": 24605, \"Moreover\": 24606, \"\\u0120tangible\": 24607, \"opsis\": 24608, \"\\u0120Minecraft\": 24609, \"\\u0120Registration\": 24610, \"oan\": 24611, \"\\u0120representations\": 24612, \"\\u0120thirst\": 24613, \"\\u0120corp\": 24614, \"irement\": 24615, \"Made\": 24616, \"loe\": 24617, \">\\\"\": 24618, \"cats\": 24619, \"*.\": 24620, \"\\u0120gestures\": 24621, \"general\": 24622, \"League\": 24623, \"\\u0120packets\": 24624, \"\\u0120Inspector\": 24625, \"\\u0120Berg\": 24626, \"\\u0120fraudulent\": 24627, \"\\u0120criticize\": 24628, \"Fun\": 24629, \"\\u0120blaming\": 24630, \"ndra\": 24631, \"\\u0120slash\": 24632, \"\\u0120Eston\": 24633, \"\\u0120proposing\": 24634, \"\\u0120whales\": 24635, \"\\u0120therapist\": 24636, \"\\u0120subset\": 24637, \"\\u0120leisure\": 24638, \"ELD\": 24639, \"\\u0120CVE\": 24640, \"\\u0120Activity\": 24641, \"\\u0120culmin\": 24642, \"shop\": 24643, \"\\u0120DAY\": 24644, \"ischer\": 24645, \"\\u0120Admiral\": 24646, \"\\u0120Attacks\": 24647, \"\\u01201958\": 24648, \"\\u0120memoir\": 24649, \"\\u0120folded\": 24650, \"\\u0120sexist\": 24651, \"\\u0120153\": 24652, \"\\u0120LI\": 24653, \"\\u0120readings\": 24654, \"\\u0120embarrassment\": 24655, \"\\u0120Employment\": 24656, \"wart\": 24657, \"chin\": 24658, \"\\u0120continuation\": 24659, \"lia\": 24660, \"Recently\": 24661, \"\\u0120duel\": 24662, \"\\u0120evacuation\": 24663, \"\\u0120Kashmir\": 24664, \"\\u0120disposition\": 24665, \"\\u0120Rig\": 24666, \"\\u0120bolts\": 24667, \"\\u0120insurers\": 24668, \"467\": 24669, \"Mex\": 24670, \"\\u0120retaliation\": 24671, \"\\u0120misery\": 24672, \"\\u0120unreasonable\": 24673, \"raining\": 24674, \"Imm\": 24675, \"\\u0120PU\": 24676, \"emer\": 24677, \"\\u0120genital\": 24678, \"\\u00e3\\u0124\\u00b3\": 24679, \"\\u0120Candy\": 24680, \"\\u0120onions\": 24681, \"\\u0120Patt\": 24682, \"liner\": 24683, \"\\u0120conceded\": 24684, \"\\u0120fa\": 24685, \"\\u0120forc\": 24686, \"\\u0120Hernandez\": 24687, \"\\u0120Geoff\": 24688, \"debian\": 24689, \"\\u0120Teams\": 24690, \"\\u0120cries\": 24691, \"\\u0120homeowners\": 24692, \"237\": 24693, \"ABC\": 24694, \"\\u0120stitch\": 24695, \"\\u0120statistic\": 24696, \"\\u0120headers\": 24697, \"\\u0120Biology\": 24698, \"\\u0120motors\": 24699, \"\\u0120GEN\": 24700, \"\\u0120Lip\": 24701, \"\\u0120hates\": 24702, \"\\u0120heel\": 24703, \"Self\": 24704, \"ipl\": 24705, \"EDIT\": 24706, \"orting\": 24707, \"\\u0120annot\": 24708, \"\\u0120Speech\": 24709, \"oldemort\": 24710, \"\\u0120Javascript\": 24711, \"\\u0120LeBron\": 24712, \"\\u0120footprint\": 24713, \"\\u0120fn\": 24714, \"\\u0120seizures\": 24715, \"nas\": 24716, \"hide\": 24717, \"\\u01201954\": 24718, \"\\u0120Bee\": 24719, \"\\u0120Declaration\": 24720, \"\\u0120Katie\": 24721, \"\\u0120reservations\": 24722, \"NR\": 24723, \"female\": 24724, \"\\u0120saturated\": 24725, \"\\u0120biblical\": 24726, \"\\u0120trolls\": 24727, \"Device\": 24728, \"photos\": 24729, \"\\u0120drums\": 24730, \"\\u00e3\\u0125\\u012b\\u00e3\\u0125\\u00a9\\u00e3\\u0124\\u00b4\\u00e3\\u0125\\u00b3\": 24731, \"Night\": 24732, \"fighter\": 24733, \"\\u0120Hak\": 24734, \"riber\": 24735, \"\\u0120cush\": 24736, \"\\u0120disciplinary\": 24737, \"baum\": 24738, \"\\u0120GH\": 24739, \"\\u0120Schmidt\": 24740, \"ilibrium\": 24741, \"\\u0120sixty\": 24742, \"\\u0120Kushner\": 24743, \"rots\": 24744, \"\\u0120pund\": 24745, \"\\u0120Rac\": 24746, \"\\u0120springs\": 24747, \"\\u0120conve\": 24748, \"Business\": 24749, \"Fall\": 24750, \"\\u0120qualifications\": 24751, \"\\u0120verses\": 24752, \"\\u0120narciss\": 24753, \"\\u0120Koh\": 24754, \"\\u0120Wow\": 24755, \"\\u0120Charlottesville\": 24756, \"edo\": 24757, \"\\u0120interrogation\": 24758, \"\\u0120Wool\": 24759, \"365\": 24760, \"Brian\": 24761, \"\\u0120\\u00e2\\u013e\\u0135\": 24762, \"\\u0120alleges\": 24763, \"onds\": 24764, \"idation\": 24765, \"\\u0120Jackie\": 24766, \"yu\": 24767, \"\\u0120lakes\": 24768, \"\\u0120worthwhile\": 24769, \"\\u0120crystals\": 24770, \"\\u0120Juda\": 24771, \"\\u0120comprehend\": 24772, \"\\u0120flush\": 24773, \"\\u0120absorption\": 24774, \"\\u0120OC\": 24775, \"\\u0120frightened\": 24776, \"\\u0120Chocolate\": 24777, \"Martin\": 24778, \"\\u0120buys\": 24779, \"\\u0120bucks\": 24780, \"\\u0120appell\": 24781, \"\\u0120Championships\": 24782, \"\\u0120listener\": 24783, \"\\u0120Defensive\": 24784, \"\\u0120cz\": 24785, \"uds\": 24786, \"\\u0120Mate\": 24787, \"\\u0120replay\": 24788, \"\\u0120decorated\": 24789, \"\\u0120sunk\": 24790, \"\\u0120VIP\": 24791, \"\\u0120Ank\": 24792, \"\\u0120195\": 24793, \"aaaa\": 24794, \"Nobody\": 24795, \"\\u0120Milk\": 24796, \"\\u0120Gur\": 24797, \"\\u0120Mk\": 24798, \"\\u0120Sara\": 24799, \"\\u0120seating\": 24800, \"\\u0120Wid\": 24801, \"Track\": 24802, \"\\u0120employs\": 24803, \"\\u0120gigantic\": 24804, \"APP\": 24805, \"\\u00e3\\u0124\\u00a7\": 24806, \"inventory\": 24807, \"\\u0120towel\": 24808, \"atche\": 24809, \"lasting\": 24810, \"\\u0120TL\": 24811, \"\\u0120latency\": 24812, \"\\u0120kne\": 24813, \"Ber\": 24814, \"meaning\": 24815, \"\\u0120upheld\": 24816, \"\\u0120playground\": 24817, \"\\u0120mant\": 24818, \"Side\": 24819, \"\\u0120stereo\": 24820, \"\\u0120northwest\": 24821, \"\\u0120exceptionally\": 24822, \"\\u0120rays\": 24823, \"\\u0120recurring\": 24824, \"Drive\": 24825, \"\\u0120upright\": 24826, \"\\u0120abduct\": 24827, \"\\u0120Marathon\": 24828, \"\\u0120goodbye\": 24829, \"\\u0120alphabet\": 24830, \"hp\": 24831, \"\\u0120courtroom\": 24832, \"rington\": 24833, \"othing\": 24834, \"Tag\": 24835, \"\\u0120diplomats\": 24836, \"\\u0120barbar\": 24837, \"\\u0120Aqua\": 24838, \"183\": 24839, \"3333\": 24840, \"\\u0120maturity\": 24841, \"\\u0120instability\": 24842, \"\\u0120Apache\": 24843, \"\\u0120===\": 24844, \"\\u0120fasting\": 24845, \"\\u0120Grid\": 24846, \"ModLoader\": 24847, \"\\u0120152\": 24848, \"Abs\": 24849, \"\\u0120Operating\": 24850, \"etti\": 24851, \"\\u0120acquaint\": 24852, \"Donnell\": 24853, \"\\u0120Kem\": 24854, \"\\u0120Forge\": 24855, \"\\u0120armored\": 24856, \"Mil\": 24857, \"\\u0120philosophers\": 24858, \"invest\": 24859, \"Players\": 24860, \"\\u00e2\\u012a\": 24861, \"\\u0120myriad\": 24862, \"\\u0120comrades\": 24863, \"Rot\": 24864, \"\\u0120remembering\": 24865, \"\\u0120corresponds\": 24866, \"\\u0120programmers\": 24867, \"\\u0120Lynn\": 24868, \"\\u0120olig\": 24869, \"\\u0120coherent\": 24870, \"ynchron\": 24871, \"\\u0120Chemical\": 24872, \"\\u0120jugg\": 24873, \"pair\": 24874, \"posts\": 24875, \"Eye\": 24876, \"\\u0120Inner\": 24877, \"\\u0120semester\": 24878, \"ottest\": 24879, \"\\u0120Emirates\": 24880, \"ricanes\": 24881, \"orously\": 24882, \"mits\": 24883, \"\\u0120Wis\": 24884, \"\\u0120dodge\": 24885, \"location\": 24886, \"\\u0120faded\": 24887, \"Amazon\": 24888, \"\\u0120Proceed\": 24889, \"\\u0120INFO\": 24890, \"journal\": 24891, \"\\u0120Truck\": 24892, \"Ten\": 24893, \"\\u0120217\": 24894, \"\\u0120statutes\": 24895, \"mobile\": 24896, \"\\u0120Types\": 24897, \"Recomm\": 24898, \"buster\": 24899, \"pex\": 24900, \"\\u0120legends\": 24901, \"\\u0120headache\": 24902, \"faced\": 24903, \"\\u0120WiFi\": 24904, \"ifty\": 24905, \"\\u0120HER\": 24906, \"\\u0120circuits\": 24907, \"ERROR\": 24908, \"226\": 24909, \"olin\": 24910, \"\\u0120cylinder\": 24911, \"ospace\": 24912, \"ikers\": 24913, \"Prem\": 24914, \"Quant\": 24915, \"\\u0120conflicting\": 24916, \"\\u0120slightest\": 24917, \"\\u0120forged\": 24918, \"ionage\": 24919, \"Stephen\": 24920, \"\\u0120Kub\": 24921, \"\\u0120Opportun\": 24922, \"\\u0120Heal\": 24923, \"\\u0120blo\": 24924, \"\\u0120rulers\": 24925, \"\\u0120huh\": 24926, \"\\u0120submarine\": 24927, \"fy\": 24928, \"asser\": 24929, \"\\u0120allowance\": 24930, \"\\u0120Kasich\": 24931, \"\\u0120Tas\": 24932, \"\\u0120Australians\": 24933, \"ForgeModLoader\": 24934, \"\\u0120\\u00e2\\u0128\\u0133\": 24935, \"\\u0120Matrix\": 24936, \"amins\": 24937, \"\\u01201200\": 24938, \"\\u0120Acqu\": 24939, \"236\": 24940, \"Document\": 24941, \"\\u0120Breaking\": 24942, \"193\": 24943, \"\\u0120Subst\": 24944, \"\\u0120Roller\": 24945, \"\\u0120Properties\": 24946, \"\\u0120NI\": 24947, \"tier\": 24948, \"\\u0120crushing\": 24949, \"\\u0120advocating\": 24950, \"Furthermore\": 24951, \"keepers\": 24952, \"\\u0120sexism\": 24953, \"xd\": 24954, \"\\u0120caller\": 24955, \"\\u0120Sense\": 24956, \"chieve\": 24957, \"\\u0120TF\": 24958, \"\\u0120fueled\": 24959, \"\\u0120reminiscent\": 24960, \"\\u0120obsess\": 24961, \"urst\": 24962, \"\\u0120uphold\": 24963, \"\\u0120Fans\": 24964, \"hetics\": 24965, \"\\u0120\\u00e2\\u0139\": 24966, \"\\u0120Bath\": 24967, \"\\u0120beverage\": 24968, \"\\u0120oscill\": 24969, \"254\": 24970, \"\\u0120poles\": 24971, \"\\u0120gradual\": 24972, \"\\u0120exting\": 24973, \"\\u0120Suff\": 24974, \"\\u0120Suddenly\": 24975, \"\\u0120liking\": 24976, \"\\u01201949\": 24977, \"unciation\": 24978, \"amination\": 24979, \"\\u0120Omar\": 24980, \"\\u0120LV\": 24981, \"\\u0120Consequently\": 24982, \"\\u0120synthes\": 24983, \"\\u0120GIF\": 24984, \"\\u0120pains\": 24985, \"\\u0120interacting\": 24986, \"uously\": 24987, \"incre\": 24988, \"\\u0120rumor\": 24989, \"\\u0120Scientology\": 24990, \"197\": 24991, \"\\u0120Zig\": 24992, \"\\u0120spelling\": 24993, \"\\u0120ASS\": 24994, \"\\u0120extingu\": 24995, \"mson\": 24996, \"\\u0120gh\": 24997, \"\\u0120remarked\": 24998, \"\\u0120Strategic\": 24999, \"\\u0120MON\": 25000, \"\\u00e5\\u00a5\": 25001, \"gae\": 25002, \"\\u0120WHAT\": 25003, \"Eric\": 25004, \"\\u0120Campus\": 25005, \"\\u0120methane\": 25006, \"\\u0120imagin\": 25007, \"JUST\": 25008, \"\\u0120Alm\": 25009, \"XT\": 25010, \"iq\": 25011, \"\\u0120RSS\": 25012, \"\\u0120wrongdoing\": 25013, \"atta\": 25014, \"\\u0120bigot\": 25015, \"\\u0120demonstrators\": 25016, \"\\u0120Calvin\": 25017, \"\\u0120Villa\": 25018, \"\\u0120membrane\": 25019, \"\\u0120Awesome\": 25020, \"\\u0120benefic\": 25021, \"268\": 25022, \"\\u0120magnificent\": 25023, \"\\u0120Lots\": 25024, \"Greg\": 25025, \"\\u0120Boris\": 25026, \"\\u0120detainees\": 25027, \"\\u0120Herman\": 25028, \"\\u0120whispered\": 25029, \"\\u0120awe\": 25030, \"Professor\": 25031, \"funding\": 25032, \"\\u0120physiological\": 25033, \"\\u0120Destruction\": 25034, \"\\u0120limb\": 25035, \"\\u0120manipulated\": 25036, \"\\u0120bubbles\": 25037, \"\\u0120pseud\": 25038, \"\\u0120hydra\": 25039, \"\\u0120Bristol\": 25040, \"\\u0120stellar\": 25041, \"\\u0120Expansion\": 25042, \"\\u0120Kell\": 25043, \"\\u0120Interestingly\": 25044, \"\\u0120mans\": 25045, \"\\u0120dragging\": 25046, \"\\u0120ecological\": 25047, \"\\u0120Fit\": 25048, \"\\u0120gent\": 25049, \"\\u0120benefited\": 25050, \"\\u0120Haiti\": 25051, \"\\u0120polyg\": 25052, \"\\u00e3\\u0125\\u0130\": 25053, \"\\u01202030\": 25054, \"\\u0120prow\": 25055, \"\\u0120reconstruction\": 25056, \"\\u0120wast\": 25057, \"\\u0120psychic\": 25058, \"\\u0120Greeks\": 25059, \"Handler\": 25060, \"162\": 25061, \"\\u0120Pulse\": 25062, \"\\u0120solicit\": 25063, \"\\u0120sys\": 25064, \"\\u0120influx\": 25065, \"\\u0120Gentle\": 25066, \"percent\": 25067, \"\\u0120proliferation\": 25068, \"\\u0120taxable\": 25069, \"\\u0120disregard\": 25070, \"\\u0120escaping\": 25071, \"\\u0120ginger\": 25072, \"\\u0120withstand\": 25073, \"\\u0120devastated\": 25074, \"\\u0120Dew\": 25075, \"series\": 25076, \"\\u0120injected\": 25077, \"elaide\": 25078, \"\\u0120turnover\": 25079, \"heat\": 25080, \"\\u013b\\u0124\": 25081, \"Happy\": 25082, \"\\u0120Silent\": 25083, \"\\u00e3\\u0124\\u0143\": 25084, \"ivism\": 25085, \"\\u0120irrational\": 25086, \"AMA\": 25087, \"\\u0120reef\": 25088, \"rub\": 25089, \"\\u0120162\": 25090, \"\\u0120bankers\": 25091, \"\\u0120Ethics\": 25092, \"vv\": 25093, \"\\u0120criticisms\": 25094, \"Kn\": 25095, \"186\": 25096, \"Movie\": 25097, \"\\u0120Tories\": 25098, \"\\u0120nood\": 25099, \"\\u0120distortion\": 25100, \"False\": 25101, \"odore\": 25102, \"\\u0120tasty\": 25103, \"Research\": 25104, \"\\u0120UID\": 25105, \"-)\": 25106, \"\\u0120divorced\": 25107, \"\\u0120MU\": 25108, \"\\u0120Hayes\": 25109, \"\\u0120Isn\": 25110, \"iani\": 25111, \"\\u0120HQ\": 25112, \"\\u0120\\\"#\": 25113, \"ignant\": 25114, \"\\u0120traumatic\": 25115, \"\\u0120Ling\": 25116, \"Hun\": 25117, \"\\u0120sabot\": 25118, \"online\": 25119, \"random\": 25120, \"\\u0120renamed\": 25121, \"rared\": 25122, \"KA\": 25123, \"dead\": 25124, \"\\u00c3\\u00a9t\": 25125, \"\\u0120Assistance\": 25126, \"\\u0120seaf\": 25127, \"++++++++\": 25128, \"\\u0120seldom\": 25129, \"\\u0120Webb\": 25130, \"\\u0120boolean\": 25131, \"ulet\": 25132, \"\\u0120refrain\": 25133, \"\\u0120DIY\": 25134, \"rule\": 25135, \"\\u0120shutting\": 25136, \"\\u0120utilizing\": 25137, \"loading\": 25138, \"\\u0120Param\": 25139, \"coal\": 25140, \"ooter\": 25141, \"\\u0120attracting\": 25142, \"\\u0120Dol\": 25143, \"\\u0120hers\": 25144, \"agnetic\": 25145, \"\\u0120Reach\": 25146, \"imo\": 25147, \"\\u0120discarded\": 25148, \"\\u0120Pip\": 25149, \"015\": 25150, \"\\u00c3\\u00bcr\": 25151, \"\\u0120mug\": 25152, \"Imagine\": 25153, \"COL\": 25154, \"\\u0120cursed\": 25155, \"\\u0120Shows\": 25156, \"\\u0120Curtis\": 25157, \"\\u0120Sachs\": 25158, \"speaking\": 25159, \"\\u0120Vista\": 25160, \"\\u0120Framework\": 25161, \"ongo\": 25162, \"\\u0120subreddit\": 25163, \"\\u0120crus\": 25164, \"\\u0120Oval\": 25165, \"Row\": 25166, \"growing\": 25167, \"\\u0120installment\": 25168, \"\\u0120glac\": 25169, \"\\u0120Advance\": 25170, \"ECK\": 25171, \"\\u0120LGBTQ\": 25172, \"LEY\": 25173, \"\\u0120acet\": 25174, \"\\u0120successive\": 25175, \"\\u0120Nicole\": 25176, \"\\u01201957\": 25177, \"Quote\": 25178, \"\\u0120circumstance\": 25179, \"ackets\": 25180, \"\\u0120142\": 25181, \"ortium\": 25182, \"\\u0120guessed\": 25183, \"\\u0120Frame\": 25184, \"\\u0120perpetrators\": 25185, \"\\u0120Aviation\": 25186, \"\\u0120Bench\": 25187, \"\\u0120handc\": 25188, \"Ap\": 25189, \"\\u01201956\": 25190, \"259\": 25191, \"rand\": 25192, \"NetMessage\": 25193, \"din\": 25194, \"urtles\": 25195, \"hig\": 25196, \"\\u0120VIII\": 25197, \"ffiti\": 25198, \"\\u0120Swords\": 25199, \"bial\": 25200, \"\\u0120kidnapping\": 25201, \"device\": 25202, \"\\u0120barn\": 25203, \"\\u0120Eli\": 25204, \"aucas\": 25205, \"Send\": 25206, \"Constructed\": 25207, \"\\u0120\\u00c2\\u00bd\": 25208, \"\\u0120needles\": 25209, \"\\u0120advertisements\": 25210, \"\\u0120vou\": 25211, \"\\u0120exhibited\": 25212, \"\\u0120Fortress\": 25213, \"Ask\": 25214, \"Berry\": 25215, \"TYPE\": 25216, \"\\u0120cancers\": 25217, \"umping\": 25218, \"\\u0120Territory\": 25219, \"\\u0120prud\": 25220, \"\\u0120nas\": 25221, \"\\u0120atheist\": 25222, \"\\u0120balances\": 25223, \"\\u00e3\\u0123\\u0141\": 25224, \"\\u0120Shawn\": 25225, \"&&\": 25226, \"\\u0120landsc\": 25227, \"\\u0120RGB\": 25228, \"\\u0120petty\": 25229, \"\\u0120excellence\": 25230, \"\\u0120translations\": 25231, \"\\u0120parcel\": 25232, \"\\u0120Chev\": 25233, \"East\": 25234, \"\\u0120Output\": 25235, \"imi\": 25236, \"\\u0120ambient\": 25237, \"\\u0120Threat\": 25238, \"\\u0120villains\": 25239, \"\\u0120550\": 25240, \"ICA\": 25241, \"\\u0120taller\": 25242, \"\\u0120leaking\": 25243, \"cup\": 25244, \"\\u0120polish\": 25245, \"\\u0120infectious\": 25246, \"\\u0120KC\": 25247, \"\\u0120@@\": 25248, \"background\": 25249, \"\\u0120bureaucracy\": 25250, \"\\u0120Sai\": 25251, \"unless\": 25252, \"itious\": 25253, \"\\u0120Skype\": 25254, \"Atl\": 25255, \"IDENT\": 25256, \"008\": 25257, \"\\u0120hypocr\": 25258, \"\\u0120pitchers\": 25259, \"\\u0120guessing\": 25260, \"\\u0120FINAL\": 25261, \"Between\": 25262, \"\\u0120villagers\": 25263, \"\\u0120252\": 25264, \"fashion\": 25265, \"\\u0120Tunis\": 25266, \"Beh\": 25267, \"\\u0120Exc\": 25268, \"\\u0120MID\": 25269, \"288\": 25270, \"\\u0120Haskell\": 25271, \"196\": 25272, \"\\u0120NOR\": 25273, \"\\u0120specs\": 25274, \"\\u0120invari\": 25275, \"\\u0120glut\": 25276, \"\\u0120Cars\": 25277, \"\\u0120impulse\": 25278, \"\\u0120honors\": 25279, \"gel\": 25280, \"\\u0120jurisdictions\": 25281, \"\\u0120Bundle\": 25282, \"ulas\": 25283, \"California\": 25284, \"\\u0120Increase\": 25285, \"\\u0120pear\": 25286, \"\\u0120singles\": 25287, \"\\u0120cues\": 25288, \"\\u0120underwent\": 25289, \"\\u0120WS\": 25290, \"\\u0120exaggerated\": 25291, \"\\u0120dubious\": 25292, \"\\u0120flashing\": 25293, \"LOG\": 25294, \")].\": 25295, \"Journal\": 25296, \"tg\": 25297, \"Van\": 25298, \"\\u0120Istanbul\": 25299, \"\\u0120Insp\": 25300, \"\\u0120Franken\": 25301, \"Draw\": 25302, \"\\u0120sadness\": 25303, \"\\u0120ironic\": 25304, \"\\u0120Fry\": 25305, \"xc\": 25306, \"\\u0120164\": 25307, \"isch\": 25308, \"Way\": 25309, \"\\u0120Protestant\": 25310, \"horn\": 25311, \"\\u0120unaff\": 25312, \"\\u0120Viv\": 25313, \"illas\": 25314, \"\\u0120Productions\": 25315, \"\\u0120Hogan\": 25316, \"\\u0120perimeter\": 25317, \"\\u0120Sisters\": 25318, \"\\u0120spontaneous\": 25319, \"\\u0120downside\": 25320, \"\\u0120descendants\": 25321, \"\\u0120orn\": 25322, \"worm\": 25323, \"Japanese\": 25324, \"\\u01201955\": 25325, \"\\u0120151\": 25326, \"\\u0120Doing\": 25327, \"elsen\": 25328, \"umbles\": 25329, \"\\u0120radically\": 25330, \"\\u0120Drum\": 25331, \"\\u0120Bach\": 25332, \"\\u0120liabilities\": 25333, \"\\u0120OB\": 25334, \"\\u0120Elementary\": 25335, \"\\u0120meme\": 25336, \"ynes\": 25337, \"\\u0120fingerprint\": 25338, \"\\u0120Grab\": 25339, \"\\u0120undertake\": 25340, \"Members\": 25341, \"\\u0120Reader\": 25342, \"\\u0120Sims\": 25343, \"god\": 25344, \"\\u0120hypothetical\": 25345, \"scient\": 25346, \"\\u0120AJ\": 25347, \"\\u0120charism\": 25348, \"\\u0120admissions\": 25349, \"\\u0120Missile\": 25350, \"trade\": 25351, \"\\u0120exercising\": 25352, \"\\u0120Background\": 25353, \"Written\": 25354, \"\\u0120vocals\": 25355, \"whether\": 25356, \"\\u0120vi\": 25357, \"\\u0120Winner\": 25358, \"\\u0120litter\": 25359, \"\\u0120Shooting\": 25360, \"STEM\": 25361, \"\\u00e3\\u0124\\u00a1\": 25362, \"\\u0120AFL\": 25363, \"\\u0120variability\": 25364, \"\\u0120eats\": 25365, \"\\u0120DPS\": 25366, \"brow\": 25367, \"\\u0120elephants\": 25368, \"\\u0120strat\": 25369, \"\\u0120\\u00c5\": 25370, \"\\u0120settlers\": 25371, \"Matthew\": 25372, \"\\u0120inadvert\": 25373, \"HI\": 25374, \"\\u0120IMF\": 25375, \"\\u0120Goal\": 25376, \"\\u0120nerves\": 25377, \"Johnson\": 25378, \"eye\": 25379, \"ablishment\": 25380, \"Thursday\": 25381, \"BILITY\": 25382, \"Had\": 25383, \"amoto\": 25384, \"hetamine\": 25385, \"eps\": 25386, \"\\u0120mitochond\": 25387, \"\\u0120compressed\": 25388, \"\\u0120Trevor\": 25389, \"\\u0120Animals\": 25390, \"Tool\": 25391, \"Lock\": 25392, \"\\u0120tweak\": 25393, \"\\u0120pinch\": 25394, \"\\u0120cancellation\": 25395, \"Pot\": 25396, \"\\u0120focal\": 25397, \"\\u0120Astron\": 25398, \"173\": 25399, \"\\u0120ASC\": 25400, \"\\u0120OTHER\": 25401, \"umni\": 25402, \"\\u0120demise\": 25403, \"dl\": 25404, \"\\u00d9\\u0127\": 25405, \"Semitism\": 25406, \"\\u0120cracking\": 25407, \"\\u0120collaborative\": 25408, \"\\u0120explores\": 25409, \"sql\": 25410, \"\\u0120herbs\": 25411, \"\\u0120configurations\": 25412, \"mis\": 25413, \"\\u0120Result\": 25414, \"acey\": 25415, \"\\u0120Smoke\": 25416, \"\\u0120sanct\": 25417, \"elia\": 25418, \"\\u0120degener\": 25419, \"\\u0120deepest\": 25420, \"\\u0120screamed\": 25421, \"\\u0120nap\": 25422, \"Software\": 25423, \"\\u0120STAR\": 25424, \"EF\": 25425, \"\\u0120Xin\": 25426, \"sponsored\": 25427, \"manship\": 25428, \"233\": 25429, \"\\u0120primaries\": 25430, \"\\u0120filtering\": 25431, \"\\u0120assemble\": 25432, \"mil\": 25433, \"\\u0120Myers\": 25434, \"bows\": 25435, \"\\u0120punched\": 25436, \"Mic\": 25437, \"\\u0120innovations\": 25438, \"\\u0120func\": 25439, \"ando\": 25440, \"\\u0120fracking\": 25441, \"\\u0120Vul\": 25442, \"\\u00d0\\u00be\\u00d0\": 25443, \"oshop\": 25444, \"\\u0120Immun\": 25445, \"\\u0120settling\": 25446, \"\\u0120adolescents\": 25447, \"\\u0120rebuilding\": 25448, \"\\u0120transforming\": 25449, \"\\u0120parole\": 25450, \"\\u0120harbor\": 25451, \"\\u0120booking\": 25452, \"otional\": 25453, \"ongevity\": 25454, \"\\u0120Yo\": 25455, \"bug\": 25456, \"\\u0120emerges\": 25457, \"\\u0120Methods\": 25458, \"\\u0120Chu\": 25459, \"Pres\": 25460, \"\\u0120Dungeons\": 25461, \"\\u0120trailing\": 25462, \"\\u0120Rum\": 25463, \"\\u0120Hugh\": 25464, \"\\u00e5\\u00a4\\u00a9\": 25465, \"\\u0120Era\": 25466, \"\\u0120Battles\": 25467, \"Results\": 25468, \"\\u0120Trading\": 25469, \"\\u0120versa\": 25470, \"css\": 25471, \"axies\": 25472, \"heet\": 25473, \"\\u0120greed\": 25474, \"1989\": 25475, \"\\u0120gardens\": 25476, \"\\u0120contingent\": 25477, \"Park\": 25478, \"\\u0120Leafs\": 25479, \"hook\": 25480, \"robe\": 25481, \"\\u0120diplomacy\": 25482, \"\\u0120Fuel\": 25483, \"\\u0120Invasion\": 25484, \"\\u0120upgrading\": 25485, \"Male\": 25486, \"\\u0120elic\": 25487, \"\\u0120relentless\": 25488, \"\\u0120Covenant\": 25489, \"apesh\": 25490, \"\\u0120Trop\": 25491, \"Ty\": 25492, \"production\": 25493, \"arty\": 25494, \"\\u0120punches\": 25495, \"ako\": 25496, \"cyclopedia\": 25497, \"\\u0120Rabbit\": 25498, \"\\u0120HDMI\": 25499, \"\\u0120141\": 25500, \"\\u0120foil\": 25501, \"ItemImage\": 25502, \"\\u0120FG\": 25503, \"\\u0120implementations\": 25504, \"\\u0120Pom\": 25505, \"ixtures\": 25506, \"\\u0120await\": 25507, \"\\u0120330\": 25508, \"amus\": 25509, \"\\u0120umbrella\": 25510, \"\\u0120foresee\": 25511, \"separ\": 25512, \"\\u0120circumcision\": 25513, \"\\u0120peripheral\": 25514, \"Say\": 25515, \"\\u0120Expert\": 25516, \"Inc\": 25517, \"\\u0120withdrew\": 25518, \"\\u0120Anders\": 25519, \"fried\": 25520, \"\\u0120radioactive\": 25521, \"\\u0120Opening\": 25522, \"\\u0120boarding\": 25523, \"\\u0120ND\": 25524, \"\\u0120overthrow\": 25525, \"Activ\": 25526, \"WP\": 25527, \"\\u0120Acts\": 25528, \"\\u00d7\\u013b\": 25529, \"\\u0120motions\": 25530, \"vic\": 25531, \"\\u0120Mighty\": 25532, \"\\u0120Defender\": 25533, \"aer\": 25534, \"\\u0120thankful\": 25535, \"\\u0120Killing\": 25536, \"\\u0120Bris\": 25537, \"moil\": 25538, \"\\u0120predicting\": 25539, \"266\": 25540, \"choice\": 25541, \"\\u0120killers\": 25542, \"\\u0120incub\": 25543, \"\\u0120Chest\": 25544, \"athering\": 25545, \"\\u0120proclaimed\": 25546, \"flower\": 25547, \"ossom\": 25548, \"umbledore\": 25549, \"\\u0120Cycling\": 25550, \"\\u0120Occupy\": 25551, \"AGES\": 25552, \"Pen\": 25553, \"\\u0120Yug\": 25554, \"\\u0120packaged\": 25555, \"\\u0120heightened\": 25556, \"cot\": 25557, \"stack\": 25558, \"Cond\": 25559, \"\\u0120stamps\": 25560, \"mage\": 25561, \"\\u0120persuaded\": 25562, \"\\u0120ensl\": 25563, \"\\u0120Cardinal\": 25564, \"\\u0120solitary\": 25565, \"\\u0120possessing\": 25566, \"\\u0120Cork\": 25567, \"\\u0120evid\": 25568, \"\\u0120Tay\": 25569, \"\\u0120blues\": 25570, \"\\u0120extremism\": 25571, \"\\u0120lunar\": 25572, \"\\u0120clown\": 25573, \"Techn\": 25574, \"\\u0120festivals\": 25575, \"\\u0120PvP\": 25576, \"\\u0120Lar\": 25577, \"\\u0120consequently\": 25578, \"present\": 25579, \"\\u0120someday\": 25580, \"\\u00e7\\u0130\\u012d\": 25581, \"\\u0120Meteor\": 25582, \"\\u0120touring\": 25583, \"culture\": 25584, \"\\u0120beaches\": 25585, \"Ship\": 25586, \"cause\": 25587, \"\\u0120Flood\": 25588, \"\\u00e3\\u0125\\u00af\": 25589, \"\\u0120purity\": 25590, \"those\": 25591, \"\\u0120emission\": 25592, \"bolt\": 25593, \"\\u0120chord\": 25594, \"\\u0120Scripture\": 25595, \"Lu\": 25596, \"\\u0120${\": 25597, \"created\": 25598, \"Others\": 25599, \"258\": 25600, \"\\u0120elemental\": 25601, \"\\u0120annoyed\": 25602, \"\\u0120AE\": 25603, \"dan\": 25604, \"\\u0120Sag\": 25605, \"Researchers\": 25606, \"\\u0120fairy\": 25607, \"\\u00e2\\u0122\\u0135\\u00e2\\u0122\\u0135\": 25608, \"============\": 25609, \"Smart\": 25610, \"GGGG\": 25611, \"\\u0120skeletons\": 25612, \"\\u0120pupils\": 25613, \"linked\": 25614, \"\\u0120urgency\": 25615, \"enabled\": 25616, \"\\u0120Fuck\": 25617, \"\\u0120councill\": 25618, \"rab\": 25619, \"UAL\": 25620, \"TI\": 25621, \"\\u0120lifes\": 25622, \"\\u0120confessed\": 25623, \"Bug\": 25624, \"\\u0120harmon\": 25625, \"\\u0120CONFIG\": 25626, \"\\u0120Neutral\": 25627, \"Double\": 25628, \"\\u0120staple\": 25629, \"\\u0120SHA\": 25630, \"British\": 25631, \"\\u0120SNP\": 25632, \"ATOR\": 25633, \"oco\": 25634, \"\\u0120swinging\": 25635, \"gex\": 25636, \"oleon\": 25637, \"plain\": 25638, \"\\u0120Missing\": 25639, \"\\u0120Trophy\": 25640, \"vari\": 25641, \"ranch\": 25642, \"\\u0120301\": 25643, \"440\": 25644, \"0000000000000000\": 25645, \"\\u0120restoring\": 25646, \"\\u0120haul\": 25647, \"ucing\": 25648, \"nerg\": 25649, \"\\u0120futures\": 25650, \"\\u0120strategist\": 25651, \"question\": 25652, \"\\u0120lateral\": 25653, \"\\u0120Bard\": 25654, \"\\u0120sor\": 25655, \"\\u0120Rhodes\": 25656, \"\\u0120Downtown\": 25657, \"?????-\": 25658, \"\\u0120Lit\": 25659, \"\\u0120Bened\": 25660, \"\\u0120coil\": 25661, \"street\": 25662, \"\\u0120Portal\": 25663, \"FILE\": 25664, \"\\u0120Gru\": 25665, \"*,\": 25666, \"231\": 25667, \"neum\": 25668, \"\\u0120sucked\": 25669, \"\\u0120rapper\": 25670, \"\\u0120tendencies\": 25671, \"\\u0120Lauren\": 25672, \"cellaneous\": 25673, \"267\": 25674, \"\\u0120browse\": 25675, \"\\u0120overc\": 25676, \"header\": 25677, \"oise\": 25678, \"\\u0120beet\": 25679, \"\\u0120Gle\": 25680, \"Stay\": 25681, \"\\u0120mum\": 25682, \"\\u0120typed\": 25683, \"\\u0120discounts\": 25684, \"Talk\": 25685, \"\\u0120Og\": 25686, \"existing\": 25687, \"\\u0120Sell\": 25688, \"uph\": 25689, \"CI\": 25690, \"\\u0120Austrian\": 25691, \"\\u0120Warm\": 25692, \"\\u0120dismissal\": 25693, \"\\u0120averages\": 25694, \"camera\": 25695, \"\\u0120allegiance\": 25696, \"LAN\": 25697, \"=\\\"#\": 25698, \"\\u0120commentators\": 25699, \"\\u0120Setting\": 25700, \"\\u0120Midwest\": 25701, \"\\u0120pharmac\": 25702, \"\\u0120EXP\": 25703, \"\\u0120stainless\": 25704, \"Chicago\": 25705, \"\\u0120tan\": 25706, \"244\": 25707, \"\\u0120countryside\": 25708, \"\\u0120Vac\": 25709, \"295\": 25710, \"\\u0120pinned\": 25711, \"\\u0120crises\": 25712, \"\\u0120standardized\": 25713, \"Task\": 25714, \"\\u0120Jail\": 25715, \"\\u0120Docker\": 25716, \"colored\": 25717, \"forth\": 25718, \"\\\"},\": 25719, \"\\u0120patrons\": 25720, \"\\u0120spice\": 25721, \"\\u0120mourn\": 25722, \"\\u0120Mood\": 25723, \"\\u0120laundry\": 25724, \"\\u0120equip\": 25725, \"\\u0120Mole\": 25726, \"yll\": 25727, \"\\u0120THC\": 25728, \"nation\": 25729, \"\\u0120Sherlock\": 25730, \"\\u0120issu\": 25731, \"\\u0120Kre\": 25732, \"\\u0120Americas\": 25733, \"\\u0120AAA\": 25734, \"\\u0120systematically\": 25735, \"\\u0120contra\": 25736, \"\\u0120Sally\": 25737, \"\\u0120rationale\": 25738, \"\\u0120carriage\": 25739, \"\\u0120peaks\": 25740, \"\\u0120contradiction\": 25741, \"ensation\": 25742, \"\\u0120Failure\": 25743, \"\\u0120props\": 25744, \"\\u0120namespace\": 25745, \"\\u0120cove\": 25746, \"fields\": 25747, \"\\u00e3\\u0124\\u012d\": 25748, \"\\u0120wool\": 25749, \"\\u0120Catch\": 25750, \"\\u0120presumed\": 25751, \"\\u0120Diana\": 25752, \"ragon\": 25753, \"igi\": 25754, \"\\u0120hamm\": 25755, \"\\u0120stunt\": 25756, \"\\u0120GUI\": 25757, \"\\u0120Observatory\": 25758, \"\\u0120Shore\": 25759, \"\\u0120smells\": 25760, \"annah\": 25761, \"\\u0120cockpit\": 25762, \"\\u0120Duterte\": 25763, \"850\": 25764, \"\\u0120oppressed\": 25765, \"breaker\": 25766, \"\\u0120Contribut\": 25767, \"\\u0120Peru\": 25768, \"\\u0120Monsanto\": 25769, \"\\u0120Attempt\": 25770, \"\\u0120commanding\": 25771, \"\\u0120fridge\": 25772, \"\\u0120Rin\": 25773, \"\\u0120Chess\": 25774, \"uality\": 25775, \"\\u0120ol\": 25776, \"Republican\": 25777, \"\\u0120Glory\": 25778, \"\\u0120WIN\": 25779, \".......\": 25780, \"agent\": 25781, \"reading\": 25782, \"\\u0120inh\": 25783, \"Jones\": 25784, \"\\u0120clicks\": 25785, \"alan\": 25786, \"\\u0120[];\": 25787, \"\\u0120Majesty\": 25788, \"\\u0120Ced\": 25789, \"opus\": 25790, \"atel\": 25791, \"\\u00c3\\u00aa\": 25792, \"ARC\": 25793, \"\\u0120Ecuador\": 25794, \"\\u00e3\\u0125\\u0142\": 25795, \"\\u0120Kuro\": 25796, \"\\u0120rituals\": 25797, \"\\u0120captive\": 25798, \"\\u0120ounce\": 25799, \"\\u0120disagreement\": 25800, \"\\u0120slog\": 25801, \"fuel\": 25802, \"Pet\": 25803, \"Mail\": 25804, \"\\u0120exercised\": 25805, \"\\u0120solic\": 25806, \"\\u0120rainfall\": 25807, \"\\u0120devotion\": 25808, \"\\u0120Assessment\": 25809, \"\\u0120robotic\": 25810, \"options\": 25811, \"\\u0120RP\": 25812, \"\\u0120Families\": 25813, \"\\u0120Flames\": 25814, \"\\u0120assignments\": 25815, \"007\": 25816, \"akedown\": 25817, \"\\u0120vocabulary\": 25818, \"Reilly\": 25819, \"\\u0120caval\": 25820, \"gars\": 25821, \"\\u0120suppressed\": 25822, \"\\u0120SET\": 25823, \"\\u0120Johns\": 25824, \"\\u0120warp\": 25825, \"broken\": 25826, \"\\u0120statues\": 25827, \"\\u0120advocated\": 25828, \"\\u0120275\": 25829, \"\\u0120peril\": 25830, \"omorph\": 25831, \"\\u0120Femin\": 25832, \"perfect\": 25833, \"\\u0120hatch\": 25834, \"Lib\": 25835, \"512\": 25836, \"\\u0120lifelong\": 25837, \"313\": 25838, \"\\u0120cheeks\": 25839, \"\\u0120numbered\": 25840, \"\\u0120Mug\": 25841, \"Body\": 25842, \"ravel\": 25843, \"Weight\": 25844, \"\\u0120Jak\": 25845, \"\\u0120Heath\": 25846, \"\\u0120kissing\": 25847, \"\\u0120JUST\": 25848, \"\\u0120waving\": 25849, \"upload\": 25850, \"\\u0120insider\": 25851, \"\\u0120Progressive\": 25852, \"\\u0120Filter\": 25853, \"tta\": 25854, \"\\u0120Beam\": 25855, \"\\u0120violently\": 25856, \"ipation\": 25857, \"\\u0120skepticism\": 25858, \"\\u01201918\": 25859, \"\\u0120Annie\": 25860, \"\\u0120SI\": 25861, \"\\u0120genetics\": 25862, \"\\u0120onboard\": 25863, \"atl\": 25864, \"\\u0120Friedman\": 25865, \"\\u0120Bri\": 25866, \"ceptive\": 25867, \"\\u0120pirate\": 25868, \"\\u0120Reporter\": 25869, \"278\": 25870, \"\\u0120mythology\": 25871, \"\\u0120eclipse\": 25872, \"\\u0120skins\": 25873, \"\\u0120glyph\": 25874, \"ingham\": 25875, \"Files\": 25876, \"Cour\": 25877, \"women\": 25878, \"\\u0120regimes\": 25879, \"\\u0120photographed\": 25880, \"Kat\": 25881, \"\\u0120MAX\": 25882, \"Officials\": 25883, \"\\u0120unexpectedly\": 25884, \"\\u0120impressions\": 25885, \"Front\": 25886, \";;;;;;;;\": 25887, \"\\u0120supremacy\": 25888, \"\\u0120sang\": 25889, \"\\u0120aggravated\": 25890, \"\\u0120abruptly\": 25891, \"\\u0120Sector\": 25892, \"\\u0120excuses\": 25893, \"\\u0120costing\": 25894, \"idepress\": 25895, \"Stack\": 25896, \"\\u0120RNA\": 25897, \"obil\": 25898, \"\\u0120ghosts\": 25899, \"ldon\": 25900, \"atibility\": 25901, \"Topics\": 25902, \"\\u0120reimburse\": 25903, \"\\u0120HM\": 25904, \"\\u0120Deg\": 25905, \"\\u0120thief\": 25906, \"yet\": 25907, \"ogenesis\": 25908, \"leaning\": 25909, \"\\u0120Kol\": 25910, \"\\u0120Basketball\": 25911, \"\\u0120fi\": 25912, \"\\u0120Seeing\": 25913, \"\\u0120recycling\": 25914, \"\\u0120[-\": 25915, \"Congress\": 25916, \"\\u0120lectures\": 25917, \"Psy\": 25918, \"\\u0120nep\": 25919, \"\\u0120maid\": 25920, \"\\u0120oriented\": 25921, \"AX\": 25922, \"\\u0120respectful\": 25923, \"rene\": 25924, \"flush\": 25925, \"\\u0120Unloaded\": 25926, \"request\": 25927, \"grid\": 25928, \"\\u0120Alternatively\": 25929, \"\\u0120Hugo\": 25930, \"\\u0120decree\": 25931, \"\\u0120Buddhism\": 25932, \"andum\": 25933, \"Android\": 25934, \"\\u0120Congo\": 25935, \"\\u0120Joyce\": 25936, \"\\u0120acknowledging\": 25937, \"hesive\": 25938, \"\\u0120Tomorrow\": 25939, \"\\u0120Hiro\": 25940, \"thren\": 25941, \"\\u0120Maced\": 25942, \"\\u0120hoax\": 25943, \"\\u0120Increased\": 25944, \"\\u0120Pradesh\": 25945, \"Wild\": 25946, \"______\": 25947, \"161\": 25948, \"\\u0120aunt\": 25949, \"\\u0120distributing\": 25950, \"\\u0120Tucker\": 25951, \"\\u0120SSL\": 25952, \"\\u0120Wolves\": 25953, \"Building\": 25954, \"oult\": 25955, \"\\u0120Luo\": 25956, \"\\u0120Yas\": 25957, \"\\u0120Spir\": 25958, \"\\u0120Shape\": 25959, \"\\u0120Cambod\": 25960, \"\\u0120IPv\": 25961, \"\\u0120ml\": 25962, \"\\u0120extrad\": 25963, \"390\": 25964, \"\\u0120Penny\": 25965, \"dream\": 25966, \"\\u0120stationed\": 25967, \"optional\": 25968, \"eworthy\": 25969, \".</\": 25970, \"\\u0120undertaking\": 25971, \"\\u0120chickens\": 25972, \"\\u0120stimuli\": 25973, \"\\u0120Else\": 25974, \"igators\": 25975, \"\\u0120Beginning\": 25976, \"ctory\": 25977, \"\\u0120prepares\": 25978, \"\\u0120delta\": 25979, \"\\u0120vicinity\": 25980, \"tool\": 25981, \"\\u0120workshops\": 25982, \"MHz\": 25983, \"\\u0120accusation\": 25984, \"\\u0120histories\": 25985, \"ropolis\": 25986, \"\\u0120Churchill\": 25987, \"\\u0120neon\": 25988, \"\\u0120baff\": 25989, \"dies\": 25990, \"maybe\": 25991, \"\\u0120\\u00e8\\u00a3\\u0131\\u00e8\\u00a6\\u013c\\u00e9\\u0128\\u0134\": 25992, \"\\u0120symptom\": 25993, \"ECH\": 25994, \"\\u0120Manuel\": 25995, \"\\u0120banana\": 25996, \"\\u0120HB\": 25997, \"\\u0120****\": 25998, \"\\u0120Koreans\": 25999, \"coll\": 26000, \"FB\": 26001, \"\\u0120praying\": 26002, \"\\u0120Cannot\": 26003, \"\\u0120Mile\": 26004, \"\\u0120embracing\": 26005, \"\\u0120Silk\": 26006, \"393\": 26007, \"oters\": 26008, \"FD\": 26009, \"\\u0120daylight\": 26010, \"alias\": 26011, \"\\u0120Brigade\": 26012, \"\\u0120Hannah\": 26013, \"\\u0120clergy\": 26014, \"\\u0120southeast\": 26015, \"\\u0120alcoholic\": 26016, \"\\u0120proposes\": 26017, \"livion\": 26018, \"\\u0120calculating\": 26019, \"\\u0120stimulate\": 26020, \"\\u0120splitting\": 26021, \"eight\": 26022, \"\\u0120Indy\": 26023, \"plays\": 26024, \"\\u0120Pik\": 26025, \"\\u0120domest\": 26026, \"\\u0120forgiveness\": 26027, \"\\u0120Rings\": 26028, \"patient\": 26029, \"kinson\": 26030, \"Mont\": 26031, \"igible\": 26032, \";\\\"\": 26033, \"\\u0120periodically\": 26034, \"ammad\": 26035, \"\\u0120Britt\": 26036, \"pard\": 26037, \"\\u0120arbitration\": 26038, \"\\u0120Schneider\": 26039, \"\\u0120Corporate\": 26040, \"\\u0120Maya\": 26041, \"\\u0120snakes\": 26042, \"aum\": 26043, \"\\u0120blasted\": 26044, \"\\u0120mysteries\": 26045, \"\\u0120revive\": 26046, \"ocamp\": 26047, \"\\u0120Dodge\": 26048, \"\\u0120Opera\": 26049, \"279\": 26050, \"\\u0120orphan\": 26051, \"\\u0120specifies\": 26052, \"\\u0120Mets\": 26053, \"Duration\": 26054, \"Hen\": 26055, \"\\u0120fireworks\": 26056, \"\\u0120prosecute\": 26057, \"\\u0120Tillerson\": 26058, \"dp\": 26059, \"usage\": 26060, \"liness\": 26061, \"\\u0120Debian\": 26062, \"\\u0120224\": 26063, \"rises\": 26064, \"\\u0120Infect\": 26065, \"atra\": 26066, \"\\u0120RR\": 26067, \"\\u0120Lor\": 26068, \"diff\": 26069, \"\\u0120Charleston\": 26070, \"\\u0120acoustic\": 26071, \"\\u0120amuse\": 26072, \"330\": 26073, \"\\u0120cer\": 26074, \"\\u0120Tac\": 26075, \"\\u0120[+\": 26076, \"\\u0120cardiac\": 26077, \"\\u0120Restaurant\": 26078, \"ergy\": 26079, \"\\u0120fuzz\": 26080, \"\\u0120bites\": 26081, \"\\u0120hazardous\": 26082, \"\\u0120brighter\": 26083, \"rans\": 26084, \"\\u0120Stephanie\": 26085, \"extra\": 26086, \"RET\": 26087, \"\\u0120Christine\": 26088, \"\\u0120Sue\": 26089, \"statement\": 26090, \"\\u0120bolster\": 26091, \"\\u0120antit\": 26092, \"Radio\": 26093, \"BIT\": 26094, \"\\u00e3\\u0124\\u00b0\": 26095, \"\\u0120visions\": 26096, \"\\u0120Concept\": 26097, \"\\u0120inline\": 26098, \"\\u0120Philosophy\": 26099, \"isans\": 26100, \"\\u0120Irving\": 26101, \"\\u00c3\\u00a3\": 26102, \"taking\": 26103, \"\\u0120inconsist\": 26104, \"\\u0120Kumar\": 26105, \"\\u0120lig\": 26106, \"\\u0120Schumer\": 26107, \"\\u0120Regulations\": 26108, \"\\u0120Hz\": 26109, \"thro\": 26110, \"\\u0120Voldemort\": 26111, \"\\u0120MED\": 26112, \"\\u0120Frederick\": 26113, \"Pad\": 26114, \"221\": 26115, \"\\u0120alleging\": 26116, \"\\u0120Communication\": 26117, \"\\u0120167\": 26118, \"\\u0120forecasts\": 26119, \"\\u0120spiders\": 26120, \"Organ\": 26121, \"\\u0120Participants\": 26122, \"\\u0120Ops\": 26123, \"design\": 26124, \"Close\": 26125, \"\\u0120facto\": 26126, \"\\u0120bombers\": 26127, \"resistant\": 26128, \"ategories\": 26129, \"School\": 26130, \"\\u0120homework\": 26131, \"\\u0120corro\": 26132, \"Tuesday\": 26133, \"\\u0120Brendan\": 26134, \"\\u0120MX\": 26135, \"\\u0120TS\": 26136, \"\\u0120Stri\": 26137, \"\\u0120stakeholders\": 26138, \"\\u0120Millennium\": 26139, \"\\u0120transferring\": 26140, \"Jud\": 26141, \"\\u0120tac\": 26142, \"\\u01201600\": 26143, \"\\u0120SDK\": 26144, \"rb\": 26145, \"\\u0120interpretations\": 26146, \"\\u0120SG\": 26147, \"\\u0120upstairs\": 26148, \"\\u0120Harvest\": 26149, \"\\u0120vagina\": 26150, \"\\u0120ingest\": 26151, \"xf\": 26152, \"\\u0120Orion\": 26153, \"\\u0120Joey\": 26154, \"\\u0120sandwic\": 26155, \"\\u0120immortal\": 26156, \"\\u0120flipped\": 26157, \"ortex\": 26158, \"threatening\": 26159, \"\\u0120sniper\": 26160, \"\\u0120converts\": 26161, \"\\u0120installations\": 26162, \"\\u0120Bulgar\": 26163, \"orsche\": 26164, \"mails\": 26165, \"\\u0120lure\": 26166, \"\\u0120narrowly\": 26167, \"\\u0120grenade\": 26168, \"\\u0120Ging\": 26169, \"\\u0120underwear\": 26170, \"--------------\": 26171, \"\\u0120chased\": 26172, \"\\u0120VAL\": 26173, \"\\u0120parenting\": 26174, \"\\u0120Hamb\": 26175, \"\\u0120Blaz\": 26176, \"\\u0120anarchist\": 26177, \"\\u0120Median\": 26178, \"\\u0120Programs\": 26179, \"\\u00ce\\u00bd\": 26180, \"\\u0120obj\": 26181, \"\\u0120Nokia\": 26182, \"orman\": 26183, \"anqu\": 26184, \"atism\": 26185, \"opa\": 26186, \"\\u0120fulfilling\": 26187, \"\\u0120puppy\": 26188, \"\\u0120entit\": 26189, \"\\u0120Sebastian\": 26190, \"\\u0120shooters\": 26191, \"\\u0120richer\": 26192, \"\\u00e8\\u00a1\": 26193, \"\\u0120tempted\": 26194, \"\\u0120ATT\": 26195, \"\\u0120CV\": 26196, \"\\u0120tore\": 26197, \"Resource\": 26198, \"\\u0120Devils\": 26199, \"408\": 26200, \"inational\": 26201, \"\\u0120assurance\": 26202, \"\\u0120Darren\": 26203, \"\\u0120whichever\": 26204, \"posure\": 26205, \"\\u0120fury\": 26206, \"Stock\": 26207, \"\\u0120universally\": 26208, \"response\": 26209, \"\\u0120oak\": 26210, \"\\u0120workload\": 26211, \"\\u0120Corner\": 26212, \"eele\": 26213, \"\\\"...\": 26214, \"\\u0120deprived\": 26215, \"kowski\": 26216, \"\\u0120casts\": 26217, \"\\u0120affiliation\": 26218, \"\\u0120Ach\": 26219, \"\\u0120Asked\": 26220, \"athe\": 26221, \"\\u0120lact\": 26222, \"\\u0120Thu\": 26223, \"rm\": 26224, \"\\u0120airlines\": 26225, \"\\u0120notions\": 26226, \"Format\": 26227, \"\\u0120FAA\": 26228, \"\\u00e3\\u0125\\u012c\": 26229, \"driver\": 26230, \"\\u0120transcend\": 26231, \"Settings\": 26232, \"\\u0120Prosecut\": 26233, \"\\u0120spinal\": 26234, \"\\u0120defaults\": 26235, \"FK\": 26236, \"\\u0120prefers\": 26237, \"rendered\": 26238, \"thus\": 26239, \"film\": 26240, \"\\u0120tiger\": 26241, \"\\u0120Spicer\": 26242, \"recogn\": 26243, \"\\u0120Rugby\": 26244, \"Network\": 26245, \"\\u0120pity\": 26246, \"\\u0120compartment\": 26247, \"casters\": 26248, \"\\u0120Monroe\": 26249, \"\\u0120720\": 26250, \"\\u0120corrections\": 26251, \"\\u0120dopamine\": 26252, \"\\u0120AZ\": 26253, \"Cut\": 26254, \"\\u0120roomm\": 26255, \"\\u0120speculate\": 26256, \"Hash\": 26257, \"\\u0120restrictive\": 26258, \"1111\": 26259, \"redible\": 26260, \"onel\": 26261, \"\\u0120rampant\": 26262, \"reported\": 26263, \"\\u0120Suite\": 26264, \"\\u0120Minimum\": 26265, \"alys\": 26266, \"azard\": 26267, \"loop\": 26268, \"\\u0120lent\": 26269, \"sha\": 26270, \"\\u0120vandal\": 26271, \"menu\": 26272, \"\\u0120Boehner\": 26273, \"\\u0120narratives\": 26274, \"\\u0120authenticity\": 26275, \"269\": 26276, \"anic\": 26277, \"duty\": 26278, \"285\": 26279, \"\\u0120thanked\": 26280, \"\\u0120betrayed\": 26281, \"lift\": 26282, \"\\u0120southwest\": 26283, \"\\u0120Dexter\": 26284, \"\\u0120Bod\": 26285, \"\\u0120keywords\": 26286, \"Average\": 26287, \"DIS\": 26288, \"\\u0120ethnicity\": 26289, \"!),\": 26290, \"\\u0120Nationals\": 26291, \"\\u00e1\\u00b9\": 26292, \"\\u0120Tah\": 26293, \"ioxid\": 26294, \"\\u0120widget\": 26295, \"\\u0120pasta\": 26296, \"\\u0120billing\": 26297, \"\\u0120trilogy\": 26298, \"\\u0120Lines\": 26299, \"\\u0120sniff\": 26300, \"\\u0120nephew\": 26301, \"Late\": 26302, \"\\u0120princip\": 26303, \"\\u0120Loop\": 26304, \"\\u0120Marxist\": 26305, \"\\u0120dissolved\": 26306, \"\\u0120contexts\": 26307, \"\\u0120Amount\": 26308, \"\\u0120Spike\": 26309, \"\\u0120totals\": 26310, \"\\u0120organizer\": 26311, \"\\u0120uprising\": 26312, \"ships\": 26313, \"YY\": 26314, \"\\u0120Northeast\": 26315, \"money\": 26316, \"gradation\": 26317, \"\\u0120goalkeeper\": 26318, \"\\u0120Hear\": 26319, \"\\u0120steak\": 26320, \"\\u0120BuzzFeed\": 26321, \"\\u0120solemn\": 26322, \"\\u0120Scand\": 26323, \"\\u0120popping\": 26324, \"\\u0120adhere\": 26325, \"\\u0120Alleg\": 26326, \"byte\": 26327, \"\\u0120Wolver\": 26328, \"\\u0120unin\": 26329, \"\\u0120recol\": 26330, \"itud\": 26331, \"\\u0120mimic\": 26332, \"ibus\": 26333, \"\\u0120predicts\": 26334, \"\\u0120Keeper\": 26335, \"iating\": 26336, \"\\u0120deception\": 26337, \"\\u0120learnt\": 26338, \"\\u0120diary\": 26339, \"\\u0120conditional\": 26340, \"\\u0120relic\": 26341, \"\\u0120invoke\": 26342, \"ienced\": 26343, \"\\u00e5\\u012a\": 26344, \"\\u0120Pont\": 26345, \"\\u0120cellphone\": 26346, \"\\u0120speeding\": 26347, \"\\u0120tackling\": 26348, \"\\u0120nude\": 26349, \"opened\": 26350, \"\\u0120Manafort\": 26351, \"\\u01201952\": 26352, \"\\u0120majors\": 26353, \"\\u0120Silence\": 26354, \"\\u0120logistics\": 26355, \"\\u0120weighted\": 26356, \"\\u0120Psychiat\": 26357, \"\\\":[\\\"\": 26358, \"\\u0120sickness\": 26359, \"\\u0120dividends\": 26360, \"zon\": 26361, \"Release\": 26362, \"\\u0120Keys\": 26363, \"\\u0120Ich\": 26364, \"\\u0120enz\": 26365, \"\\u0120Fernand\": 26366, \"\\u0120\\u00ce\\u00b1\": 26367, \"\\u0120meanings\": 26368, \"\\u0120penny\": 26369, \"\\u0120stern\": 26370, \"\\u0120lar\": 26371, \"\\u0120Published\": 26372, \"\\u0120backdrop\": 26373, \"Kim\": 26374, \"\\u0120Synt\": 26375, \"\\u0120debuted\": 26376, \"wm\": 26377, \"\\u0120Isle\": 26378, \"\\u0120regulating\": 26379, \"otti\": 26380, \"\\u0120Scholars\": 26381, \"icester\": 26382, \"\\u0120Chef\": 26383, \"\\u0120pops\": 26384, \"\\u0120Launcher\": 26385, \"\\u0120Various\": 26386, \"\\u0120commenting\": 26387, \"oslav\": 26388, \"enzie\": 26389, \"\\u0120rivalry\": 26390, \"\\u00e2\\u0124\\u00ac\": 26391, \"Really\": 26392, \"\\u0120orc\": 26393, \"\\u0120bean\": 26394, \"\\u0120Judy\": 26395, \"Notice\": 26396, \"\\u0120Bike\": 26397, \"?]\": 26398, \"\\u0120rented\": 26399, \"sten\": 26400, \"\\u0120forefront\": 26401, \"\\u0120Baldwin\": 26402, \"\\u0120yielded\": 26403, \"tails\": 26404, \"Prime\": 26405, \"\\u0120Sources\": 26406, \"icator\": 26407, \"Sean\": 26408, \"\\u0120marching\": 26409, \"Output\": 26410, \"\\u0120Jungle\": 26411, \"\\u0120reside\": 26412, \"zzle\": 26413, \"\\u0120Andrews\": 26414, \"\\u0120torque\": 26415, \"Basic\": 26416, \"Actually\": 26417, \"strap\": 26418, \"penter\": 26419, \"\\u0120exams\": 26420, \"\\u0120Ya\": 26421, \"\\u0120159\": 26422, \"\\u0120Decision\": 26423, \"\\u0120ransom\": 26424, \"eteenth\": 26425, \"ensing\": 26426, \"213\": 26427, \"\\u0120sunset\": 26428, \"404\": 26429, \"\\u0120Rapid\": 26430, \"\\u0120Hein\": 26431, \"\\u0120Aboriginal\": 26432, \"\\u0120organism\": 26433, \"\\u0120Sever\": 26434, \"\\u0120cla\": 26435, \"aji\": 26436, \"Simple\": 26437, \"\\u0120Flavor\": 26438, \"\\u0120Eval\": 26439, \"prus\": 26440, \"\\u0120chorus\": 26441, \"DAY\": 26442, \"\\u0120denounced\": 26443, \"\\u0120biography\": 26444, \"\\u0120Turnbull\": 26445, \"Recent\": 26446, \"Normal\": 26447, \"lections\": 26448, \"Word\": 26449, \"\\u0120ferry\": 26450, \"\\u0120Wagner\": 26451, \"hom\": 26452, \"Unit\": 26453, \"\\u0120supermarket\": 26454, \"\\u0120Sith\": 26455, \"\\u0120nominees\": 26456, \"\\u0120dictatorship\": 26457, \"iddler\": 26458, \"\\u0120announces\": 26459, \"\\u0120Them\": 26460, \"\\u0120Neptune\": 26461, \"\\u0120deity\": 26462, \"\\u0120Yi\": 26463, \"\\u0120monarch\": 26464, \"ARR\": 26465, \"\\u0120invaded\": 26466, \"\\u0120Hok\": 26467, \"untary\": 26468, \"Certain\": 26469, \"ega\": 26470, \"\\u0120kidding\": 26471, \"\\u0120Regulation\": 26472, \"\\u0120tray\": 26473, \"\\u0120photographers\": 26474, \"\\u0120Arcane\": 26475, \"\\u0120discharged\": 26476, \"\\u0120evangelical\": 26477, \"\\u0120interchange\": 26478, \"\\u0120filmmaker\": 26479, \"\\u0120Endless\": 26480, \"\\u0120290\": 26481, \"\\u0120Salvador\": 26482, \"ASY\": 26483, \"\\u0120Signal\": 26484, \"\\u0120wrath\": 26485, \"\\u00e2\\u013e\": 26486, \"lot\": 26487, \"'/\": 26488, \"\\u0120projectile\": 26489, \"\\u0120employing\": 26490, \"\\u0120Interface\": 26491, \"191\": 26492, \"atellite\": 26493, \"\\u0120Rath\": 26494, \"package\": 26495, \"\\u0120indications\": 26496, \"Jason\": 26497, \"\\u0120args\": 26498, \"\\u0120GHz\": 26499, \"\\u0120tilt\": 26500, \"nants\": 26501, \"won\": 26502, \"\\u00e3\\u0124\\u00b5\": 26503, \"redd\": 26504, \"rescent\": 26505, \"\\u0120Calendar\": 26506, \"\\u0120modular\": 26507, \"\\u0120assisting\": 26508, \"\\u0120redeem\": 26509, \"\\u0120Bean\": 26510, \"\\u0120worsh\": 26511, \"\\u0120decentralized\": 26512, \")...\": 26513, \"377\": 26514, \"\\u0120arrays\": 26515, \"\\u0120accomplishments\": 26516, \"\\u00ce\\u00bf\": 26517, \"dot\": 26518, \"\\u0120mutually\": 26519, \"\\u0120obstruct\": 26520, \"\\u0120misrepresent\": 26521, \"orest\": 26522, \"ionic\": 26523, \"ruce\": 26524, \"%;\": 26525, \"\\u0120knowingly\": 26526, \"porting\": 26527, \"inently\": 26528, \"Ari\": 26529, \"\\u0120Schultz\": 26530, \"Da\": 26531, \"\\u0120Cere\": 26532, \"\\u0120obsolete\": 26533, \"\\u0127\\u012d\": 26534, \"give\": 26535, \"\\u0120bait\": 26536, \"\\u0120enlarg\": 26537, \"Neill\": 26538, \"\\u01201933\": 26539, \"\\u0120reconsider\": 26540, \"\\u0120Sergeant\": 26541, \"\\u0120Diane\": 26542, \"\\u0120Cogn\": 26543, \"\\u0120Icon\": 26544, \"Position\": 26545, \"\\u0120fost\": 26546, \"\\u0120stirring\": 26547, \"seven\": 26548, \"\\u0120SpaceX\": 26549, \"uggets\": 26550, \"\\u0120medd\": 26551, \"Gal\": 26552, \"\\u0120Sister\": 26553, \"Boy\": 26554, \"\\u0120triggering\": 26555, \"Taking\": 26556, \"\\u0120screams\": 26557, \"\\u0120causal\": 26558, \"\\u0120awaken\": 26559, \"Arm\": 26560, \"297\": 26561, \"\\u0120dispatched\": 26562, \"\\u0120FALSE\": 26563, \"\\u0120organizational\": 26564, \"\\u0120Tong\": 26565, \"\\u0120dilemma\": 26566, \"demon\": 26567, \"Spl\": 26568, \"\\u0120hooks\": 26569, \"uding\": 26570, \"\\u0120validate\": 26571, \"\\u0120potion\": 26572, \"\\u0120claw\": 26573, \"\\u0120burgl\": 26574, \"\\u0120quir\": 26575, \"ACA\": 26576, \"\\u0120Brennan\": 26577, \"\\u0120durability\": 26578, \"\\u0120bombings\": 26579, \"\\u0120Window\": 26580, \"\\u0120culprit\": 26581, \"325\": 26582, \"Therefore\": 26583, \"umbered\": 26584, \"performance\": 26585, \"warts\": 26586, \"\\u0120enforcing\": 26587, \"\\u0120Blow\": 26588, \"\\u0120reprint\": 26589, \"ifax\": 26590, \"alpha\": 26591, \"\\u0120sinister\": 26592, \"\\u0120burger\": 26593, \"fighting\": 26594, \"Score\": 26595, \"\\u0120Stones\": 26596, \"iem\": 26597, \"405\": 26598, \"chemy\": 26599, \"\\u0120vinegar\": 26600, \"nom\": 26601, \"\\u0120prevailing\": 26602, \"\\u0120Latest\": 26603, \"\\u00c2\\u00b6\": 26604, \"\\u0120ba\": 26605, \"\\u0120Writer\": 26606, \"\\u0120177\": 26607, \"\\u0120Conway\": 26608, \"\\u0120collects\": 26609, \"\\u0120quantitative\": 26610, \"\\u0120horrors\": 26611, \"ogens\": 26612, \"\\u0120Slov\": 26613, \"\\u0120lays\": 26614, \"haw\": 26615, \"\\u0120Slash\": 26616, \"\\u0120nightclub\": 26617, \"\\u0120Davies\": 26618, \"\\u0120bride\": 26619, \"\\u0120Scarlet\": 26620, \"ymm\": 26621, \"\\u0120Applications\": 26622, \"velength\": 26623, \"\\u0120revival\": 26624, \"\\u0120softly\": 26625, \"\\u0120zoo\": 26626, \"itaire\": 26627, \"Cur\": 26628, \"\\u0120electrom\": 26629, \"\\u0120planting\": 26630, \"OTO\": 26631, \"\\u0120Elements\": 26632, \"\\u0120swallow\": 26633, \"porter\": 26634, \"\\u0120laptops\": 26635, \"\\u0120peanut\": 26636, \"\\u0120lobbyists\": 26637, \"\\u00ce\\u00b2\": 26638, \"Panel\": 26639, \"\\u0120Joan\": 26640, \"imil\": 26641, \"tnc\": 26642, \"\\u0120resisted\": 26643, \"\\u0120outwe\": 26644, \"\\u0120retaining\": 26645, \"atri\": 26646, \"\\u0120poorer\": 26647, \"\\u0120Syrians\": 26648, \"\\u0120Hammond\": 26649, \"\\u0120weld\": 26650, \"uder\": 26651, \"topic\": 26652, \"\\u0120TT\": 26653, \"ricia\": 26654, \"\\u0120thieves\": 26655, \"Lic\": 26656, \"\\u0120Gust\": 26657, \"\\u0120Ways\": 26658, \"areth\": 26659, \"243\": 26660, \"\\u0120broadcaster\": 26661, \"shield\": 26662, \"assium\": 26663, \"uble\": 26664, \"\\u0120airstrikes\": 26665, \"onso\": 26666, \"\\u0120pedal\": 26667, \"\\u0120collectors\": 26668, \"\\u0120Vander\": 26669, \"\\u0120Mesa\": 26670, \"\\u0120dictator\": 26671, \"\\u0120dir\": 26672, \"enton\": 26673, \"cart\": 26674, \"score\": 26675, \"adder\": 26676, \"Cry\": 26677, \"\\u0120ssh\": 26678, \"gger\": 26679, \"\\u0120drunken\": 26680, \"\\u0120GS\": 26681, \"\\u0120Seat\": 26682, \"\\u0120cornerback\": 26683, \"\\u0120skipped\": 26684, \"\\u0120Researchers\": 26685, \"\\u0120Audi\": 26686, \"Reference\": 26687, \"\\u0120haunted\": 26688, \"\\u00c3\\u00ab\": 26689, \"\\u0120Clinic\": 26690, \"cz\": 26691, \"\\u0120ps\": 26692, \"\\u0120Paladin\": 26693, \"\\u0120Recipe\": 26694, \"\\u0120stigma\": 26695, \"oppy\": 26696, \"\\u0120monkeys\": 26697, \"\\u0120Hawk\": 26698, \"Sad\": 26699, \"\\\"/>\": 26700, \"\\u0120Workshop\": 26701, \"\\u0120Retail\": 26702, \"\\u0120Avatar\": 26703, \"625\": 26704, \"Na\": 26705, \"\\u0120VC\": 26706, \"\\u0120Secure\": 26707, \"MY\": 26708, \"1988\": 26709, \"ossip\": 26710, \"\\u0120prostate\": 26711, \"\\u0120unden\": 26712, \"\\u0120gamer\": 26713, \"\\u0120Contents\": 26714, \"\\u0120Warhammer\": 26715, \"\\u0120Sentinel\": 26716, \"310\": 26717, \"\\u0120segregation\": 26718, \"\\u0120Flex\": 26719, \"\\u0120MAY\": 26720, \"\\u0120drills\": 26721, \"\\u0120Drugs\": 26722, \"Islamic\": 26723, \"\\u0120spur\": 26724, \"\\u0120cafe\": 26725, \"\\u0120imaginary\": 26726, \"\\u0120guiding\": 26727, \"\\u0120swings\": 26728, \"\\u0120Theme\": 26729, \"oby\": 26730, \"\\u0120nud\": 26731, \"\\u0120begging\": 26732, \"\\u0120strongh\": 26733, \"\\u0120rejecting\": 26734, \"\\u0120pedestrians\": 26735, \"\\u0120Prospect\": 26736, \"Rare\": 26737, \"sle\": 26738, \"\\u0120concessions\": 26739, \"\\u0120Constitutional\": 26740, \"\\u0120beams\": 26741, \"\\u0120fibers\": 26742, \"poon\": 26743, \"\\u0120instincts\": 26744, \"property\": 26745, \"\\u0120BIG\": 26746, \"Sanders\": 26747, \"imates\": 26748, \"\\u0120coating\": 26749, \"\\u0120corpses\": 26750, \"\\u0120TRUE\": 26751, \"checked\": 26752, \"\\u0120166\": 26753, \"Ash\": 26754, \"\\u0120JS\": 26755, \"\\u0120Fiction\": 26756, \"\\u0120communal\": 26757, \"\\u0120energetic\": 26758, \"oooooooo\": 26759, \"\\u0120nowadays\": 26760, \"ILD\": 26761, \"ibo\": 26762, \"\\u0120SUV\": 26763, \"Ren\": 26764, \"\\u0120dwelling\": 26765, \"Silver\": 26766, \"\\u0120tally\": 26767, \"\\u0120Moving\": 26768, \"\\u0120coward\": 26769, \"\\u0120generals\": 26770, \"\\u0120horns\": 26771, \"\\u0120circulated\": 26772, \"\\u0120robbed\": 26773, \"\\u0120Unlimited\": 26774, \"\\u0120harassed\": 26775, \"\\u0120inhibit\": 26776, \"\\u0120composer\": 26777, \"\\u0120Spotify\": 26778, \"\\u0120spreads\": 26779, \"364\": 26780, \"\\u0120suicidal\": 26781, \"\\u0120noises\": 26782, \"\\u0120Stur\": 26783, \"\\u0120saga\": 26784, \"\\u0120Kag\": 26785, \"iso\": 26786, \"\\u0120theoretically\": 26787, \"Money\": 26788, \"\\u0120similarity\": 26789, \"\\u0120sliced\": 26790, \"utils\": 26791, \"inges\": 26792, \"\\\"-\": 26793, \"\\u0120anth\": 26794, \"\\u0120imped\": 26795, \"Module\": 26796, \"Throughout\": 26797, \"\\u0120menus\": 26798, \"committee\": 26799, \"andi\": 26800, \"obj\": 26801, \"inav\": 26802, \"fired\": 26803, \"\\u0120Abdullah\": 26804, \"\\u0120undead\": 26805, \"\\u0120fonts\": 26806, \"Hold\": 26807, \"ENG\": 26808, \"\\u0120sustainability\": 26809, \"\\u0120flick\": 26810, \"\\u0120razor\": 26811, \"\\u0120Fest\": 26812, \"\\u0120Characters\": 26813, \"\\u0120wording\": 26814, \"\\u0120populist\": 26815, \"\\u0120criticizing\": 26816, \"\\u0120muse\": 26817, \"vine\": 26818, \"\\u0120cardboard\": 26819, \"\\u0120kindly\": 26820, \"\\u0120fringe\": 26821, \"\\u0120Theft\": 26822, \"icultural\": 26823, \"\\u0120governors\": 26824, \"\\u0120\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\": 26825, \"\\u0120163\": 26826, \"\\u0120timeout\": 26827, \"\\u0120Auth\": 26828, \"Children\": 26829, \"AU\": 26830, \"\\u0120redemption\": 26831, \"\\u0120Alger\": 26832, \"\\u01201914\": 26833, \"\\u0120waved\": 26834, \"\\u0120astronauts\": 26835, \"ograms\": 26836, \"\\u0120swamp\": 26837, \"\\u0120Finnish\": 26838, \"\\u0120candle\": 26839, \"\\u0120tonnes\": 26840, \"utm\": 26841, \"\\u0120ray\": 26842, \"\\u0120spun\": 26843, \"\\u0120fearful\": 26844, \"articles\": 26845, \"\\u0120caus\": 26846, \"orically\": 26847, \"\\u0120Requires\": 26848, \"\\u0120Gol\": 26849, \"\\u0120pope\": 26850, \"\\u0120inaugural\": 26851, \"\\u0120gle\": 26852, \"ADA\": 26853, \"\\u0120ISIL\": 26854, \"\\u0120Offensive\": 26855, \"\\u0120watchdog\": 26856, \"\\u0120balcon\": 26857, \"entity\": 26858, \"\\u0120Hoo\": 26859, \"\\u0120gallon\": 26860, \"ACC\": 26861, \"\\u0120doubling\": 26862, \"\\u0120implication\": 26863, \"\\u0120Sight\": 26864, \"\\u0120doctr\": 26865, \"-------\": 26866, \"\\u0120\\\\\\\\\": 26867, \"\\u0120malt\": 26868, \"Roll\": 26869, \"\\u0120\\u00e2\\u012b\\u00a5\": 26870, \"\\u0120recap\": 26871, \"adding\": 26872, \"uces\": 26873, \"\\u0120Bend\": 26874, \"figure\": 26875, \"\\u0120turkey\": 26876, \"\\u0120societal\": 26877, \"\\u0120Tickets\": 26878, \"\\u0120commercially\": 26879, \"\\u0120spicy\": 26880, \"\\u0120216\": 26881, \"\\u0120Ramp\": 26882, \"\\u0120superiority\": 26883, \"\\u00c3\\u00af\": 26884, \"\\u0120Tracker\": 26885, \"Carl\": 26886, \"\\u0120Coy\": 26887, \"\\u0120Patriot\": 26888, \"\\u0120consulted\": 26889, \"\\u0120listings\": 26890, \"\\u0120slew\": 26891, \"reenshot\": 26892, \"\\u0120Gone\": 26893, \"\\u0120[...]\": 26894, \"309\": 26895, \"\\u0120hottest\": 26896, \"\\u00d8\\u00b1\": 26897, \"\\u0120rocky\": 26898, \"\\u0120Diaz\": 26899, \"\\u0120massage\": 26900, \"\\u0120paraly\": 26901, \"\\u0120pony\": 26902, \"Az\": 26903, \"\\u0120cartridge\": 26904, \"\\u0120NZ\": 26905, \"\\u0120snack\": 26906, \"\\u0120Lamar\": 26907, \"plement\": 26908, \"\\u0120Leslie\": 26909, \"\\u0120mater\": 26910, \"\\u0120snipp\": 26911, \"246\": 26912, \"\\u0120jointly\": 26913, \"\\u0120Brisbane\": 26914, \"\\u0120iPod\": 26915, \"\\u0120pumping\": 26916, \"\\u0120goat\": 26917, \"\\u0120Sharon\": 26918, \"ealing\": 26919, \"\\u0120coron\": 26920, \"\\u0120anomal\": 26921, \"rahim\": 26922, \"\\u0120Connection\": 26923, \"\\u0120sculpture\": 26924, \"\\u0120scheduling\": 26925, \"\\u0120Daddy\": 26926, \"athing\": 26927, \"\\u0120eyebrows\": 26928, \"\\u0120curved\": 26929, \"\\u0120sentiments\": 26930, \"\\u0120drafting\": 26931, \"Drop\": 26932, \"([\": 26933, \"\\u0120nominal\": 26934, \"\\u0120Leadership\": 26935, \"\\u0120Grow\": 26936, \"\\u0120176\": 26937, \"\\u0120constructive\": 26938, \"ivation\": 26939, \"\\u0120corrupted\": 26940, \"gerald\": 26941, \"\\u0120Cros\": 26942, \"\\u0120Chester\": 26943, \"\\u0120Lap\": 26944, \"\\u00e3\\u0123\\u00aa\": 26945, \"OTH\": 26946, \"DATA\": 26947, \"\\u0120almond\": 26948, \"probably\": 26949, \"Imp\": 26950, \"\\u0120feast\": 26951, \"\\u0120Warcraft\": 26952, \"Flor\": 26953, \"\\u0120checkpoint\": 26954, \"\\u0120transcription\": 26955, \"\\u0120204\": 26956, \"\\u0120tweaks\": 26957, \"\\u0120relieve\": 26958, \"Science\": 26959, \"\\u0120performer\": 26960, \"Zone\": 26961, \"\\u0120turmoil\": 26962, \"igated\": 26963, \"hibit\": 26964, \"\\u0120Cafe\": 26965, \"themed\": 26966, \"\\u0120fluor\": 26967, \"bench\": 26968, \"\\u0120decom\": 26969, \"\\u0120Unt\": 26970, \"\\u0120Barrett\": 26971, \"\\u0120Facts\": 26972, \"\\u0120tasting\": 26973, \"\\u0120PTSD\": 26974, \"\\u0120Seal\": 26975, \"\\u0120Judaism\": 26976, \"\\u0120Dynamic\": 26977, \"\\u0120Cors\": 26978, \"Ve\": 26979, \"\\u0120Ming\": 26980, \"\\u0120Transform\": 26981, \"von\": 26982, \"\\u0120Defenders\": 26983, \"\\u0120Tactical\": 26984, \"\\u0120Von\": 26985, \"\\u0120Univers\": 26986, \"\\u0120distorted\": 26987, \"\\u0120Breath\": 26988, \"?'\\\"\": 26989, \"\\u0120agon\": 26990, \"\\u0120Deadly\": 26991, \"\\u0120lan\": 26992, \"\\u0120Cycle\": 26993, \"orned\": 26994, \"\\u0120reliably\": 26995, \"\\u0120glor\": 26996, \"\\u0120Monkey\": 26997, \"\\u00e3\\u0125\\u00a1\": 26998, \"\\u0120adren\": 26999, \"\\u0120microwave\": 27000, \"\\u0120Alban\": 27001, \"ircraft\": 27002, \"digit\": 27003, \"smart\": 27004, \"\\u0120Dread\": 27005, \"\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\\u00c2\\u00af\": 27006, \"{{\": 27007, \"\\u0120Rochester\": 27008, \"\\u0120simplified\": 27009, \"\\u0120inflicted\": 27010, \"\\u0120takeover\": 27011, \"\\u0120yourselves\": 27012, \"aditional\": 27013, \"\\u0120muscular\": 27014, \"KS\": 27015, \"\\u0120ingen\": 27016, \"Tax\": 27017, \"\\u0120Feature\": 27018, \"277\": 27019, \"\\u0120cruc\": 27020, \"\\u0120crate\": 27021, \"\\u0120unidentified\": 27022, \"\\u0120acclaimed\": 27023, \"\\u0120Manga\": 27024, \"\\u0120Frances\": 27025, \"\\u0120Nepal\": 27026, \"\\u0120Gerald\": 27027, \"\\u0120Kuwait\": 27028, \"\\u0120slain\": 27029, \"\\u0120Heb\": 27030, \"\\u0120Goku\": 27031, \"\\u00e3\\u0123\\u00ae\\u00e6\": 27032, \"286\": 27033, \"Mrs\": 27034, \"\\u0120Cody\": 27035, \"\\u0120Sanctuary\": 27036, \"016\": 27037, \"\\u0120dismant\": 27038, \"\\u0120dataset\": 27039, \"\\u0120Hond\": 27040, \"buck\": 27041, \"\\u0120Patterson\": 27042, \"\\u0120palette\": 27043, \"\\u0120GD\": 27044, \"icol\": 27045, \"\\u0120Lodge\": 27046, \"\\u0120planetary\": 27047, \"akin\": 27048, \"\\u0120Registered\": 27049, \"abwe\": 27050, \"\\u0120Petersburg\": 27051, \"\\u0120hailed\": 27052, \"\\u0120Piece\": 27053, \"Sche\": 27054, \"\\u0120DOJ\": 27055, \"\\u0120enumer\": 27056, \"181\": 27057, \"\\u0120Observer\": 27058, \"\\u0120Bold\": 27059, \"founded\": 27060, \"commerce\": 27061, \"\\u0120exploits\": 27062, \"\\u0120Finding\": 27063, \"URN\": 27064, \"\\u0120Sne\": 27065, \"\\u0120Acid\": 27066, \"ayette\": 27067, \"\\u0120Values\": 27068, \"\\u0120drastic\": 27069, \"\\u0120architectural\": 27070, \"\\u0120\\\".\": 27071, \"\\u00d7\\u0137\": 27072, \"umped\": 27073, \"\\u0120wrapping\": 27074, \"\\u0120widow\": 27075, \"\\u0120Slayer\": 27076, \"lace\": 27077, \"once\": 27078, \"Germany\": 27079, \"avoid\": 27080, \"\\u0120temples\": 27081, \"PAR\": 27082, \"\\u00c3\\u00b4\": 27083, \"\\u0120Lucifer\": 27084, \"\\u0120Flickr\": 27085, \"lov\": 27086, \"forces\": 27087, \"\\u0120scouting\": 27088, \"\\u0120louder\": 27089, \"tesy\": 27090, \"\\u0120beforehand\": 27091, \"\\u00c4\\u0135\": 27092, \"\\u0120Neon\": 27093, \"\\u0120Wol\": 27094, \"\\u0120Typically\": 27095, \"\\u0120Politico\": 27096, \"-+-+\": 27097, \"\\u0120builder\": 27098, \"\\u0120derive\": 27099, \"Kill\": 27100, \"\\u0120poker\": 27101, \"\\u0120ambiguous\": 27102, \"\\u0120lifts\": 27103, \"\\u0120cyt\": 27104, \"\\u0120ribs\": 27105, \"oodle\": 27106, \"\\u0120Sounds\": 27107, \"hair\": 27108, \"\\u0120Syndrome\": 27109, \"tf\": 27110, \"\\u0120proportional\": 27111, \"uid\": 27112, \"\\u0120pertaining\": 27113, \"\\u0120Kindle\": 27114, \"\\u0120Negro\": 27115, \"\\u0120reiterated\": 27116, \"\\u0120Tonight\": 27117, \"oths\": 27118, \"\\u0120Cornell\": 27119, \"\\u0120owing\": 27120, \"\\u0120208\": 27121, \"elfare\": 27122, \"ocating\": 27123, \"\\u0120Birds\": 27124, \"Subscribe\": 27125, \"\\u0120essays\": 27126, \"\\u0120burdens\": 27127, \"\\u0120illustrations\": 27128, \"arious\": 27129, \"ERAL\": 27130, \"\\u0120Calcul\": 27131, \"\\u0120xen\": 27132, \"\\u0120LinkedIn\": 27133, \"\\u0120Jung\": 27134, \"\\u0120redesign\": 27135, \"Connor\": 27136, \"296\": 27137, \"\\u0120reversal\": 27138, \"\\u0120Adelaide\": 27139, \"\\u0120LL\": 27140, \"\\u0120sinking\": 27141, \"\\u0120gum\": 27142, \"USH\": 27143, \"capt\": 27144, \"\\u0120Grimm\": 27145, \"\\u0120footsteps\": 27146, \"\\u0120CBD\": 27147, \"ispers\": 27148, \"\\u0120prose\": 27149, \"Wednesday\": 27150, \"\\u0120Movies\": 27151, \"edin\": 27152, \"\\u0120overturned\": 27153, \"\\u0120contentious\": 27154, \"USB\": 27155, \"~~~~~~~~~~~~~~~~\": 27156, \"\\u0120Copper\": 27157, \"\\u0120pointless\": 27158, \"NV\": 27159, \"values\": 27160, \"olphin\": 27161, \"dain\": 27162, \"\\u0120deposited\": 27163, \"\\u0120GW\": 27164, \"\\u0120preceded\": 27165, \"\\u0120Cla\": 27166, \"\\u0120Golem\": 27167, \"\\u0120Nim\": 27168, \"\\u0120\\u00ce\\u00b2\": 27169, \"\\u0120Engineers\": 27170, \"middle\": 27171, \"\\u0120flatt\": 27172, \"operative\": 27173, \"\\u0120councils\": 27174, \"imbabwe\": 27175, \"elin\": 27176, \"\\u0120stressful\": 27177, \"\\u0120LD\": 27178, \"\\u0120resh\": 27179, \"lake\": 27180, \"\\u0120wheelchair\": 27181, \"\\u0120Alternative\": 27182, \"\\u0120optimize\": 27183, \"operation\": 27184, \"\\u0120peek\": 27185, \"\\u0120oneself\": 27186, \"igil\": 27187, \"\\u0120transitions\": 27188, \"opathy\": 27189, \"blank\": 27190, \"\\u0120169\": 27191, \"171\": 27192, \"________________________________________________________________\": 27193, \"\\u0120laundering\": 27194, \"Enc\": 27195, \"\\u0120DEC\": 27196, \"\\u0120workouts\": 27197, \"\\u0120spikes\": 27198, \"\\u0120dinosaurs\": 27199, \"\\u0120discriminatory\": 27200, \"Pool\": 27201, \"Rather\": 27202, \"385\": 27203, \"RNA\": 27204, \"testers\": 27205, \"eto\": 27206, \"\\u0120Identity\": 27207, \"\\u0120vein\": 27208, \"\\u0120Burton\": 27209, \"\\u0120arcade\": 27210, \"420\": 27211, \"Ultimately\": 27212, \"\\u0120Sadly\": 27213, \"\\u00c3\\u00b0\": 27214, \"pill\": 27215, \"\\u0120cubic\": 27216, \"\\u0120Spectrum\": 27217, \"these\": 27218, \"states\": 27219, \"\\u0120unofficial\": 27220, \"hawks\": 27221, \"\\u0120EVERY\": 27222, \"\\u0120rainbow\": 27223, \"\\u0120incarceration\": 27224, \"anding\": 27225, \"\\u0120syll\": 27226, \"\\u0120Everton\": 27227, \"\\u0120179\": 27228, \"\\u0120Serbia\": 27229, \"\\u0120189\": 27230, \"meter\": 27231, \"\\u0120Mickey\": 27232, \"\\u0120antiqu\": 27233, \"\\u0120factual\": 27234, \"neck\": 27235, \"\\u0120Nare\": 27236, \"norm\": 27237, \"must\": 27238, \"\\u0120highways\": 27239, \"\\u0120glam\": 27240, \"\\u0120dividing\": 27241, \"\\u0120Squadron\": 27242, \"\\u0120Martha\": 27243, \"\\u0120births\": 27244, \"Cover\": 27245, \"////////////////\": 27246, \"\\u0120Wong\": 27247, \"Phot\": 27248, \"\\u0120ALS\": 27249, \"rio\": 27250, \"\\u0120Nonetheless\": 27251, \"\\u0120Lemon\": 27252, \"\\u0120206\": 27253, \"\\u0120EE\": 27254, \"\\u0120derivative\": 27255, \"\\u0120WWII\": 27256, \"vote\": 27257, \"\\u0120therein\": 27258, \"\\u0120separating\": 27259, \"446\": 27260, \"sync\": 27261, \"\\u0120Streets\": 27262, \"\\u0120ratt\": 27263, \"\\u0120municipality\": 27264, \"\\u0120Shortly\": 27265, \"\\u0120monk\": 27266, \"),\\\"\": 27267, \"\\u0120scrub\": 27268, \"\\u0120operatives\": 27269, \"Neither\": 27270, \"Place\": 27271, \"\\u0120Limit\": 27272, \"Female\": 27273, \"\\u0120Actor\": 27274, \"Character\": 27275, \"\\u0120constituted\": 27276, \"357\": 27277, \"\\u0120protested\": 27278, \"\\u0120Straw\": 27279, \"\\u0120Height\": 27280, \"ilda\": 27281, \"\\u0120Typh\": 27282, \"\\u0120floods\": 27283, \"\\u0120cosmetic\": 27284, \"WAY\": 27285, \"perture\": 27286, \"upon\": 27287, \"tons\": 27288, \"essing\": 27289, \"\\u0120Pocket\": 27290, \"\\u0120rooft\": 27291, \"\\u0120Caucas\": 27292, \"\\u0120antidepress\": 27293, \"\\u0120incompatible\": 27294, \"ECD\": 27295, \"\\u0120opera\": 27296, \"\\u0120Contest\": 27297, \"\\u0120generators\": 27298, \"lime\": 27299, \"Defense\": 27300, \"1987\": 27301, \"forum\": 27302, \"\\u0120savage\": 27303, \"\\u0120Hungarian\": 27304, \"nz\": 27305, \"\\u0120metallic\": 27306, \"\\u0120expelled\": 27307, \"\\u0120residency\": 27308, \"\\u0120dresses\": 27309, \"666\": 27310, \"\\u0120Clement\": 27311, \"fires\": 27312, \"Category\": 27313, \"\\u0120geek\": 27314, \"alis\": 27315, \"\\u0120cemetery\": 27316, \"educated\": 27317, \"\\u0120crawl\": 27318, \"\\u0120Unable\": 27319, \"\\u0120Tyson\": 27320, \"akis\": 27321, \"\\u0120pardon\": 27322, \"\\u0120Wra\": 27323, \"\\u0120strengthened\": 27324, \"\\u0120Fors\": 27325, \"335\": 27326, \"\\u0120HC\": 27327, \"\\u0120Mond\": 27328, \"\\u0120visuals\": 27329, \"\\u0120Beatles\": 27330, \"ettlement\": 27331, \"\\u0120\\u00ef\": 27332, \"gro\": 27333, \"\\u0120bash\": 27334, \"\\u0120poorest\": 27335, \"\\u0120excel\": 27336, \"\\u0120aspirations\": 27337, \"\\u0120Municip\": 27338, \"ensible\": 27339, \"\\u0120ceremonies\": 27340, \"\\u0120intimidation\": 27341, \"\\u0120CONTR\": 27342, \"beck\": 27343, \"\\u0120Kap\": 27344, \"asu\": 27345, \"\\u0120trademarks\": 27346, \"\\u0120Sew\": 27347, \"\\u0120Competition\": 27348, \"network\": 27349, \"\\u0120Arri\": 27350, \"\\u0120Tet\": 27351, \"Roaming\": 27352, \"WC\": 27353, \"Dat\": 27354, \"\\u0120sob\": 27355, \"\\u0120pairing\": 27356, \"\\u0120overdose\": 27357, \"SAY\": 27358, \"aber\": 27359, \"\\u0120revolt\": 27360, \"\\u0120Fah\": 27361, \"acting\": 27362, \"eq\": 27363, \"estation\": 27364, \"Fight\": 27365, \"\\u0120Marks\": 27366, \"273\": 27367, \"\\u0120178\": 27368, \"Raw\": 27369, \"\\u00e3\\u0123\\u012d\": 27370, \"349\": 27371, \"blocks\": 27372, \"\\u0120verge\": 27373, \"estine\": 27374, \"\\u0120Podesta\": 27375, \"\\u0120invasive\": 27376, \"\\u0120profoundly\": 27377, \"\\u0120Ao\": 27378, \"each\": 27379, \"\\u0120lest\": 27380, \"interpret\": 27381, \"\\u0120shrinking\": 27382, \"\\u0120errone\": 27383, \"\\u0120chees\": 27384, \"lys\": 27385, \"\\u0120Ivy\": 27386, \"\\u0120Directory\": 27387, \"\\u0120hinted\": 27388, \"VICE\": 27389, \"\\u0120contacting\": 27390, \"\\u0120Gent\": 27391, \"hei\": 27392, \"\\u0120labeling\": 27393, \"\\u0120mercury\": 27394, \"\\u0120Lite\": 27395, \"\\u0120expires\": 27396, \"\\u0120destabil\": 27397, \"ritis\": 27398, \"cu\": 27399, \"\\u0120feathers\": 27400, \"\\u0120steer\": 27401, \"\\u0120programmed\": 27402, \"\\u0120Vader\": 27403, \"Going\": 27404, \"\\u0120Elim\": 27405, \"\\u0120yo\": 27406, \"\\u0120Miche\": 27407, \"\\u0120203\": 27408, \"\\u0120sleeves\": 27409, \"\\u0120bully\": 27410, \"\\u0120Humans\": 27411, \"368\": 27412, \"\\u0120compress\": 27413, \"\\u0120Banner\": 27414, \"ARS\": 27415, \"\\u0120awhile\": 27416, \"\\u0120calib\": 27417, \"\\u0120sponsorship\": 27418, \"\\u0120Difficulty\": 27419, \"\\u0120Papers\": 27420, \"\\u0120identifier\": 27421, \"}.\": 27422, \"\\u0120yog\": 27423, \"\\u0120Shia\": 27424, \"\\u0120cleanup\": 27425, \"\\u0120vibe\": 27426, \"introdu\": 27427, \"imming\": 27428, \"Australia\": 27429, \"\\u0120outlines\": 27430, \"\\u0120Youtube\": 27431, \"train\": 27432, \"\\u0120Makes\": 27433, \"\\u0120deported\": 27434, \"\\u0120centr\": 27435, \"\\u0120Dug\": 27436, \"\\u0120Boulder\": 27437, \"\\u0120Buffy\": 27438, \"\\u0120injunction\": 27439, \"\\u0120Harley\": 27440, \"\\u0120Groups\": 27441, \"\\u0120Dumbledore\": 27442, \"\\u0120Clara\": 27443, \"\\u0120\\\"-\": 27444, \"\\u0120sacrificed\": 27445, \"eph\": 27446, \"Shadow\": 27447, \"ibling\": 27448, \"\\u0120freelance\": 27449, \"\\u0120evidently\": 27450, \"phal\": 27451, \"\\u0120retains\": 27452, \"Mir\": 27453, \"\\u0120finite\": 27454, \"dar\": 27455, \"\\u0120Cous\": 27456, \"\\u0120repaired\": 27457, \"\\u0120periodic\": 27458, \"\\u0120championships\": 27459, \"\\u0120asteroid\": 27460, \"blind\": 27461, \"\\u0120expressly\": 27462, \"\\u0120Astros\": 27463, \"\\u0120scaled\": 27464, \"\\u0120geographical\": 27465, \"\\u0120Rapids\": 27466, \"Enjoy\": 27467, \"\\u0120elastic\": 27468, \"\\u0120Mohamed\": 27469, \"Market\": 27470, \"begin\": 27471, \"\\u0120discovers\": 27472, \"\\u0120telecommunications\": 27473, \"\\u0120scanner\": 27474, \"\\u0120enlarge\": 27475, \"\\u0120sharks\": 27476, \"\\u0120psychedel\": 27477, \"\\u0120Rouge\": 27478, \"\\u0120snapshot\": 27479, \"isine\": 27480, \"XP\": 27481, \"\\u0120pesticides\": 27482, \"\\u0120LSD\": 27483, \"\\u0120Distribution\": 27484, \"really\": 27485, \"\\u0120degradation\": 27486, \"\\u0120disguise\": 27487, \"\\u0120biom\": 27488, \"\\u0120EXT\": 27489, \"\\u0120equations\": 27490, \"\\u0120hazards\": 27491, \"\\u0120Compared\": 27492, \")*\": 27493, \"\\u0120virtues\": 27494, \"\\u0120elders\": 27495, \"\\u0120enhancing\": 27496, \"\\u0120Across\": 27497, \"eros\": 27498, \"angling\": 27499, \"\\u0120combust\": 27500, \"ucci\": 27501, \"\\u0120concussion\": 27502, \"\\u0120contraception\": 27503, \"\\u0120Kang\": 27504, \"\\u0120expresses\": 27505, \"\\u0120aux\": 27506, \"\\u0120Pione\": 27507, \"\\u0120exhibits\": 27508, \"Debug\": 27509, \"OTAL\": 27510, \"\\u0120Already\": 27511, \"\\u0120Wheeler\": 27512, \"\\u0120expands\": 27513, \"?:\": 27514, \"\\u0120reconciliation\": 27515, \"\\u0120pirates\": 27516, \"\\u0120purse\": 27517, \"\\u0120discourage\": 27518, \"\\u0120spectacle\": 27519, \"Rank\": 27520, \"\\u0120wraps\": 27521, \"\\u0120Thought\": 27522, \"\\u0120impending\": 27523, \"Opp\": 27524, \"\\u0120Anglo\": 27525, \"\\u0120EUR\": 27526, \"\\u0120screwed\": 27527, \"retched\": 27528, \"\\u0120encouragement\": 27529, \"models\": 27530, \"\\u0120confuse\": 27531, \"mmm\": 27532, \"\\u0120Vitamin\": 27533, \"\\u00e2\\u0138\\u0133\\u00e2\\u0138\\u0133\": 27534, \"Cru\": 27535, \"\\u0120knights\": 27536, \"\\u0120discard\": 27537, \"\\u0120bishops\": 27538, \"\\u0120Wear\": 27539, \"\\u0120Garrett\": 27540, \"kan\": 27541, \"\\u00e3\\u0125\\u0141\": 27542, \"\\u0120masculine\": 27543, \"capital\": 27544, \"\\u0120Aus\": 27545, \"\\u0120fatally\": 27546, \"thanks\": 27547, \"\\u0120AU\": 27548, \"\\u0120Gut\": 27549, \"1200\": 27550, \"\\u012000000000\": 27551, \"\\u0120surrog\": 27552, \"\\u0120BIOS\": 27553, \"raits\": 27554, \"\\u0120Watts\": 27555, \"\\u0120resurrection\": 27556, \"\\u0120Electoral\": 27557, \"\\u0120Tips\": 27558, \"4000\": 27559, \"\\u0120nutrient\": 27560, \"\\u0120depicting\": 27561, \"\\u0120sprink\": 27562, \"\\u0120muff\": 27563, \"\\u0120LIM\": 27564, \"\\u0120Sample\": 27565, \"psc\": 27566, \"ibi\": 27567, \"generated\": 27568, \"\\u0120specimens\": 27569, \"\\u0120dissatisf\": 27570, \"\\u0120tailored\": 27571, \"\\u0120holdings\": 27572, \"\\u0120Monthly\": 27573, \"\\u0120Eat\": 27574, \"poons\": 27575, \"\\u0120nec\": 27576, \"\\u0120Cage\": 27577, \"\\u0120Lotus\": 27578, \"\\u0120Lantern\": 27579, \"\\u0120frontier\": 27580, \"\\u0120pensions\": 27581, \"\\u0120joked\": 27582, \"\\u0120Hardy\": 27583, \"=-=-=-=-\": 27584, \"rade\": 27585, \"UID\": 27586, \"\\u0120rails\": 27587, \"\\u0120emit\": 27588, \"\\u0120slate\": 27589, \"\\u0120smug\": 27590, \"\\u0120spit\": 27591, \"\\u0120Calls\": 27592, \"\\u0120Jacobs\": 27593, \"feat\": 27594, \"\\u0120UE\": 27595, \"\\u0120restruct\": 27596, \"\\u0120regeneration\": 27597, \"\\u0120energies\": 27598, \"\\u0120Connor\": 27599, \"OHN\": 27600, \"\\u0120Cheese\": 27601, \"\\u0120ger\": 27602, \"\\u0120resurrect\": 27603, \"management\": 27604, \"NW\": 27605, \"\\u0120presently\": 27606, \"\\u0120Bruins\": 27607, \"Member\": 27608, \"\\u0120Mang\": 27609, \"idan\": 27610, \"\\u0120boosting\": 27611, \"wyn\": 27612, \"+.\": 27613, \"requisite\": 27614, \"\\u0120NYPD\": 27615, \"\\u0120Megan\": 27616, \"\\u0120Conditions\": 27617, \"\\u0120pics\": 27618, \"nesium\": 27619, \"\\u0120Rash\": 27620, \"\\u0120174\": 27621, \"\\u0120Ducks\": 27622, \"\\u0120embro\": 27623, \"zu\": 27624, \"onian\": 27625, \"religious\": 27626, \"\\u0120craz\": 27627, \"\\u0120ACA\": 27628, \"\\u0120Zucker\": 27629, \"EMA\": 27630, \"\\u0120Pros\": 27631, \"Weapon\": 27632, \"\\u0120Knox\": 27633, \"\\u0120Arduino\": 27634, \"\\u0120stove\": 27635, \"\\u0120heavens\": 27636, \"\\u0120Purchase\": 27637, \"\\u0120herd\": 27638, \"\\u0120fundraiser\": 27639, \"Digital\": 27640, \"5000\": 27641, \"\\u0120proponents\": 27642, \"/\\u00e2\\u0122\\u012d\": 27643, \"\\u0120jelly\": 27644, \"\\u0120Visa\": 27645, \"\\u0120monks\": 27646, \"\\u0120advancement\": 27647, \"\\u0120Wer\": 27648, \"\\u0120187\": 27649, \"eus\": 27650, \"ertility\": 27651, \"\\u0120fetal\": 27652, \"\\u01201936\": 27653, \"Lo\": 27654, \"\\u0120outfits\": 27655, \"\\u0120staircase\": 27656, \"bomb\": 27657, \"\\u0120customized\": 27658, \"clair\": 27659, \"Tree\": 27660, \"\\u0120mapped\": 27661, \"\\u0120Considering\": 27662, \"\\u0120Torres\": 27663, \"\\u0120methyl\": 27664, \"\\u0120approximate\": 27665, \"\\u0120doom\": 27666, \"\\u0120Hansen\": 27667, \"\\u0120crossover\": 27668, \"\\u0120standalone\": 27669, \"\\u00e4\\u00bc\": 27670, \"\\u0120invites\": 27671, \"\\u0120graveyard\": 27672, \"\\u0120hp\": 27673, \"DonaldTrump\": 27674, \"\\u0120escort\": 27675, \"Gar\": 27676, \"\\u0120predecessors\": 27677, \"\\u0120hay\": 27678, \"\\u0120enzyme\": 27679, \"\\u0120Straight\": 27680, \"visors\": 27681, \"Ing\": 27682, \"aneously\": 27683, \"\\u0120Applied\": 27684, \"\\u0120fec\": 27685, \"\\u0120Durant\": 27686, \"\\u0120outspoken\": 27687, \"orb\": 27688, \"\\u0120zeal\": 27689, \"\\u0120disgrace\": 27690, \"').\": 27691, \"\\u0120Cheng\": 27692, \"289\": 27693, \"\\u0120Rena\": 27694, \"\\u0120Suicide\": 27695, \"294\": 27696, \"\\u0120outraged\": 27697, \"\\u0120Newman\": 27698, \"\\u0120Nvidia\": 27699, \"\\u0120Aber\": 27700, \"\\u0120Bers\": 27701, \"\\u0120recreation\": 27702, \"Window\": 27703, \"\\u0120DP\": 27704, \"xe\": 27705, \"\\u0120pedoph\": 27706, \"\\u0120fallout\": 27707, \"amboo\": 27708, \"\\u0120presentations\": 27709, \"\\u0120Apps\": 27710, \"\\u0120html\": 27711, \"345\": 27712, \"\\u0120XXX\": 27713, \"\\u0120rubbing\": 27714, \"\\u0120Leather\": 27715, \"\\u0120humidity\": 27716, \"seys\": 27717, \"established\": 27718, \"\\u0120Units\": 27719, \"646\": 27720, \"\\u0120respectable\": 27721, \"Auto\": 27722, \"\\u0120thriving\": 27723, \"\\u0120Innovation\": 27724, \"angs\": 27725, \"Extra\": 27726, \"regulation\": 27727, \"298\": 27728, \"pick\": 27729, \"Examples\": 27730, \"\\u0120CJ\": 27731, \"Attack\": 27732, \"\\u0120dracon\": 27733, \"LT\": 27734, \"\\u0120sticker\": 27735, \"rers\": 27736, \"\\u0120sunny\": 27737, \"Iss\": 27738, \"regulated\": 27739, \"dim\": 27740, \"\\u0120Abstract\": 27741, \"\\u0120husbands\": 27742, \"Office\": 27743, \"omination\": 27744, \"itars\": 27745, \"ANGE\": 27746, \"ascal\": 27747, \"\\u0120Kris\": 27748, \"\\u0120Infantry\": 27749, \"\\u0120malf\": 27750, \"\\u0120Athe\": 27751, \"\\u0120Rally\": 27752, \"balanced\": 27753, \"........................\": 27754, \"OUP\": 27755, \"\\u0120molecule\": 27756, \"metics\": 27757, \"\\u0120Split\": 27758, \"\\u0120Instructions\": 27759, \"\\u0120Nights\": 27760, \"cards\": 27761, \"\\u0120tug\": 27762, \"\\u0120cone\": 27763, \"\\u00e5\\u0143\": 27764, \"\\u0120tx\": 27765, \"\\u0120Discussion\": 27766, \"\\u0120catastrophe\": 27767, \"ppe\": 27768, \"gio\": 27769, \"\\u0120communism\": 27770, \"\\u0120halted\": 27771, \"\\u0120Guant\": 27772, \"clean\": 27773, \"\\u0120Sched\": 27774, \"\\u0120Kanye\": 27775, \"\\u0120wander\": 27776, \"\\u0120Seriously\": 27777, \"\\u0120188\": 27778, \"ennial\": 27779, \"follow\": 27780, \"productive\": 27781, \"\\u0120Flow\": 27782, \"\\u0120Sail\": 27783, \"\\u0120craw\": 27784, \"\\u0120simulations\": 27785, \"oru\": 27786, \"angles\": 27787, \"\\u0120Nolan\": 27788, \"\\u0120menstru\": 27789, \"470\": 27790, \"\\u0120207\": 27791, \"aja\": 27792, \"\\u0120casually\": 27793, \"boarding\": 27794, \"\\u0120222\": 27795, \"ovy\": 27796, \"\\u0120Numbers\": 27797, \"umat\": 27798, \"OE\": 27799, \"287\": 27800, \"\\u0120Clemson\": 27801, \"\\u0120certs\": 27802, \"\\u0120slid\": 27803, \"\\u0120Tribe\": 27804, \"\\u0120toast\": 27805, \"\\u0120fortunes\": 27806, \"\\u0120fals\": 27807, \"\\u0120Committees\": 27808, \"\\u0120gp\": 27809, \"\\u0120fiery\": 27810, \"\\u0120Nets\": 27811, \"\\u0120Anime\": 27812, \"Package\": 27813, \"\\u0120Compare\": 27814, \"laughter\": 27815, \"infect\": 27816, \"\\u0120atrocities\": 27817, \"\\u0120justices\": 27818, \"\\u0120insults\": 27819, \"\\u0120Vernon\": 27820, \"\\u0120shaken\": 27821, \"\\u0120persona\": 27822, \"estamp\": 27823, \"367\": 27824, \"brain\": 27825, \"\\u0120experimenting\": 27826, \"Ken\": 27827, \"\\u0120Electronics\": 27828, \"\\u0120161\": 27829, \"domain\": 27830, \"\\u0120graphical\": 27831, \"bishop\": 27832, \"\\u0120whopping\": 27833, \"\\u0120Evangel\": 27834, \"\\u0120advertisers\": 27835, \"\\u0120Spear\": 27836, \"\\u0120bids\": 27837, \"\\u0120destroys\": 27838, \"utz\": 27839, \"\\u0120undersc\": 27840, \"\\u0120ADD\": 27841, \"\\u0120ants\": 27842, \"\\u0120Cum\": 27843, \"ipples\": 27844, \"\\u0120Fill\": 27845, \"\\u0120glanced\": 27846, \"\\u0120indicted\": 27847, \"\\u0120Eff\": 27848, \"\\u0120miscon\": 27849, \"\\u0120Desktop\": 27850, \"\\u0120abide\": 27851, \"\\u00e3\\u0125\\u0122\": 27852, \"\\u0120Io\": 27853, \"\\u0120Coul\": 27854, \"\\u0120capsule\": 27855, \"\\u0120Chrys\": 27856, \"MON\": 27857, \"\\u0120undes\": 27858, \"\\u0120IRA\": 27859, \"\\u0120citation\": 27860, \"\\u0120dictate\": 27861, \"\\u0120Networks\": 27862, \"\\u0120Conflict\": 27863, \"\\u0120Stuff\": 27864, \"xa\": 27865, \"isec\": 27866, \"\\u0120Chemistry\": 27867, \"\\u0120quarterly\": 27868, \"Williams\": 27869, \"anan\": 27870, \"Opt\": 27871, \"\\u0120Alexandria\": 27872, \"outheastern\": 27873, \"\\u0120Springfield\": 27874, \"\\u0120Blacks\": 27875, \"\\u0120geography\": 27876, \"242\": 27877, \"\\u0120utmost\": 27878, \"\\u0120Exxon\": 27879, \"abouts\": 27880, \"EVA\": 27881, \"\\u0120Enable\": 27882, \"\\u0120Barr\": 27883, \"\\u0120disagreed\": 27884, \"\\u0120Cyprus\": 27885, \"\\u0120dementia\": 27886, \"\\u0120labs\": 27887, \"\\u0120ubiquitous\": 27888, \"\\u0120LOVE\": 27889, \"\\u0120consolidated\": 27890, \"sr\": 27891, \"\\u0120creamy\": 27892, \"\\u0120Timber\": 27893, \"Regardless\": 27894, \"\\u0120Certificate\": 27895, \"\\u0120\\\"...\": 27896, \"ogenous\": 27897, \"Captain\": 27898, \"\\u0120insulting\": 27899, \"\\u0120Soros\": 27900, \"\\u0120Instr\": 27901, \"\\u0120Bulgaria\": 27902, \"better\": 27903, \"\\u0120sucking\": 27904, \"\\u0120Davidson\": 27905, \"atz\": 27906, \"\\u0120collateral\": 27907, \"gif\": 27908, \"\\u0120plagued\": 27909, \"\\u0120Cancel\": 27910, \"\\u0120Gardner\": 27911, \"RB\": 27912, \"\\u0120sixteen\": 27913, \"Remove\": 27914, \"uristic\": 27915, \"cook\": 27916, \"Rod\": 27917, \"\\u0120comprising\": 27918, \"fle\": 27919, \")\\u00e2\\u0122\\u0136\": 27920, \"\\u0120Viking\": 27921, \"growth\": 27922, \"agonal\": 27923, \"\\u0120srf\": 27924, \"afety\": 27925, \"mot\": 27926, \"Nearly\": 27927, \"stown\": 27928, \"\\u0120Factor\": 27929, \"\\u0120automobile\": 27930, \"\\u0120procedural\": 27931, \"mask\": 27932, \"ampires\": 27933, \"\\u0120disappears\": 27934, \"jab\": 27935, \"315\": 27936, \"\\u01201951\": 27937, \"needed\": 27938, \"\\u0120daring\": 27939, \"leader\": 27940, \"\\u0120podium\": 27941, \"\\u0120unhealthy\": 27942, \"\\u0120mund\": 27943, \"\\u0120pyramid\": 27944, \"ocre\": 27945, \"\\u0120kissed\": 27946, \"\\u0120dreamed\": 27947, \"\\u0120Fantastic\": 27948, \"\\u0120Gly\": 27949, \"\\u00e5\\u012c\": 27950, \"\\u0120greatness\": 27951, \"\\u0120spices\": 27952, \"\\u0120metropolitan\": 27953, \"\\u0120compuls\": 27954, \"iets\": 27955, \"1016\": 27956, \"\\u0120Sham\": 27957, \"\\u0120Pyr\": 27958, \"flies\": 27959, \"\\u0120Midnight\": 27960, \"\\u0120swallowed\": 27961, \"\\u0120genres\": 27962, \"\\u0120Lucky\": 27963, \"\\u0120Rewards\": 27964, \"\\u0120dispatch\": 27965, \"\\u0120IPA\": 27966, \"\\u0120Apply\": 27967, \"\\u0120aven\": 27968, \"alities\": 27969, \"312\": 27970, \"things\": 27971, \"\\u0120().\": 27972, \"\\u0120mates\": 27973, \"\\u0120Sz\": 27974, \"\\u0120COP\": 27975, \"olate\": 27976, \"OFF\": 27977, \"\\u0120recharge\": 27978, \"caps\": 27979, \"\\u0120Yorker\": 27980, \"icone\": 27981, \"\\u0120galaxies\": 27982, \"ileaks\": 27983, \"Dave\": 27984, \"\\u0120Puzz\": 27985, \"\\u0120Celtic\": 27986, \"\\u0120AFC\": 27987, \"276\": 27988, \"\\u0120Sons\": 27989, \"\\u0120affirmative\": 27990, \"Hor\": 27991, \"\\u0120tutorials\": 27992, \"\\u0120CITY\": 27993, \"\\u0120Rosa\": 27994, \"\\u0120Extension\": 27995, \"Series\": 27996, \"\\u0120fats\": 27997, \"\\u0120rab\": 27998, \"lis\": 27999, \"\\u0120unic\": 28000, \"\\u0120eve\": 28001, \"\\u0120Spin\": 28002, \"\\u0120adulthood\": 28003, \"typ\": 28004, \"\\u0120sectarian\": 28005, \"\\u0120checkout\": 28006, \"\\u0120Cycl\": 28007, \"Single\": 28008, \"\\u0120martyr\": 28009, \"\\u0120chilling\": 28010, \"888\": 28011, \"oufl\": 28012, \"\\u0120];\": 28013, \"\\u0120congestion\": 28014, \"mk\": 28015, \"\\u0120Whereas\": 28016, \"\\u01201938\": 28017, \"urrencies\": 28018, \"erion\": 28019, \"\\u0120boast\": 28020, \"\\u0120Patients\": 28021, \"\\u0120chap\": 28022, \"\\u0120BD\": 28023, \"realDonaldTrump\": 28024, \"\\u0120examines\": 28025, \"hov\": 28026, \"\\u0120startling\": 28027, \"\\u0120Babylon\": 28028, \"wid\": 28029, \"omew\": 28030, \"brance\": 28031, \"\\u0120Odyssey\": 28032, \"wig\": 28033, \"\\u0120torch\": 28034, \"\\u0120Vox\": 28035, \"\\u0120Moz\": 28036, \"\\u0120Troll\": 28037, \"\\u0120Ans\": 28038, \"Similarly\": 28039, \"\\u0120Ful\": 28040, \"006\": 28041, \"Unless\": 28042, \"\\u0120Alone\": 28043, \"stead\": 28044, \"\\u0120Publisher\": 28045, \"rights\": 28046, \"tu\": 28047, \"\\u0120Doesn\": 28048, \"\\u0120professionally\": 28049, \"\\u0120clo\": 28050, \"icz\": 28051, \"\\u0120steals\": 28052, \"\\u0120\\u00e1\": 28053, \"1986\": 28054, \"\\u0120sturdy\": 28055, \"\\u0120Johann\": 28056, \"\\u0120medals\": 28057, \"\\u0120filings\": 28058, \"\\u0120Fraser\": 28059, \"done\": 28060, \"\\u0120multinational\": 28061, \"\\u0120feder\": 28062, \"\\u0120worthless\": 28063, \"\\u0120pest\": 28064, \"Yesterday\": 28065, \"ankind\": 28066, \"\\u0120gays\": 28067, \"\\u0120borne\": 28068, \"\\u0120POS\": 28069, \"Picture\": 28070, \"\\u0120percentages\": 28071, \"251\": 28072, \"rame\": 28073, \"\\u0120potions\": 28074, \"AMD\": 28075, \"\\u0120Lebanese\": 28076, \"\\u0120rang\": 28077, \"\\u0120LSU\": 28078, \"ongs\": 28079, \"\\u0120peninsula\": 28080, \"\\u0120Clause\": 28081, \"ALK\": 28082, \"oha\": 28083, \"\\u0120MacBook\": 28084, \"\\u0120unanimous\": 28085, \"\\u0120lenders\": 28086, \"\\u0120hangs\": 28087, \"\\u0120franchises\": 28088, \"orers\": 28089, \"\\u0120Updates\": 28090, \"\\u0120isolate\": 28091, \"andro\": 28092, \"Soon\": 28093, \"\\u0120disruptive\": 28094, \"\\u0120Surve\": 28095, \"\\u0120stitches\": 28096, \"\\u0120Scorp\": 28097, \"\\u0120Dominion\": 28098, \"\\u0120supplying\": 28099, \"Arg\": 28100, \"\\u0120turret\": 28101, \"\\u0120Luk\": 28102, \"\\u0120brackets\": 28103, \"*)\": 28104, \"\\u0120Revolutionary\": 28105, \"\\u0120Honest\": 28106, \"\\u0120noticing\": 28107, \"\\u0120Shannon\": 28108, \"\\u0120afforded\": 28109, \"\\u0120tha\": 28110, \"\\u0120Janet\": 28111, \"!--\": 28112, \"\\u0120Narendra\": 28113, \"\\u0120Plot\": 28114, \"Hol\": 28115, \"sever\": 28116, \"eenth\": 28117, \"\\u0120obstruction\": 28118, \"\\u01201024\": 28119, \"staff\": 28120, \"jas\": 28121, \"orget\": 28122, \"scenes\": 28123, \"laughs\": 28124, \"\\u0120Fargo\": 28125, \"crime\": 28126, \"\\u0120orchestr\": 28127, \"\\u0120delet\": 28128, \"iliary\": 28129, \"rieved\": 28130, \"\\u0120militar\": 28131, \"\\u0120Greene\": 28132, \"\\u00e2\\u0139\\u0131\": 28133, \"\\u00e3\\u0123\\u00a6\": 28134, \"\\u0120Guards\": 28135, \"\\u0120unleashed\": 28136, \"\\u0120Weber\": 28137, \"\\u0120adjustable\": 28138, \"\\u0120caliber\": 28139, \"\\u0120motivations\": 28140, \"\\u0120\\u00c3\\u0142\": 28141, \"mAh\": 28142, \"\\u0120Lanka\": 28143, \"handle\": 28144, \"\\u0120pent\": 28145, \"\\u0120Rav\": 28146, \"\\u0120Angular\": 28147, \"\\u0120Kau\": 28148, \"umbing\": 28149, \"\\u0120philanthrop\": 28150, \"\\u0120dehyd\": 28151, \"\\u0120toxicity\": 28152, \"eer\": 28153, \"\\u0120YORK\": 28154, \"witz\": 28155, \"\\u00e5\\u00bc\": 28156, \"\\u0120IE\": 28157, \"community\": 28158, \"\\u0120AH\": 28159, \"\\u0120retali\": 28160, \"\\u0120massively\": 28161, \"\\u0120Daniels\": 28162, \"\\u0120DEL\": 28163, \"\\u0120carcin\": 28164, \"Url\": 28165, \"\\u0120routing\": 28166, \"\\u0120NPCs\": 28167, \"\\u0120RAF\": 28168, \"ryce\": 28169, \"\\u0120waived\": 28170, \"\\u0120Guatem\": 28171, \"Everybody\": 28172, \"\\u0120covenant\": 28173, \"\\u0120173\": 28174, \"\\u0120relaxing\": 28175, \"\\u0120quart\": 28176, \"almost\": 28177, \"\\u0120guarded\": 28178, \"\\u0120Soldiers\": 28179, \"\\u0120PLAY\": 28180, \"\\u0120outgoing\": 28181, \"LAND\": 28182, \"\\u0120rewrite\": 28183, \"\\u0120MOV\": 28184, \"\\u0120Imper\": 28185, \"\\u0120Solution\": 28186, \"\\u0120phenomenal\": 28187, \"\\u0120longevity\": 28188, \"\\u0120impat\": 28189, \"\\u0120Nissan\": 28190, \"irie\": 28191, \"\\u0120odor\": 28192, \"\\u0120Zar\": 28193, \"oks\": 28194, \"\\u0120militias\": 28195, \"\\u0120SPEC\": 28196, \"\\u0120tolerated\": 28197, \"arser\": 28198, \"\\u0120Bradford\": 28199, \"+,\": 28200, \"\\u0120surreal\": 28201, \"sf\": 28202, \"Canadian\": 28203, \"\\u0120resemblance\": 28204, \"\\u0120carbohydrate\": 28205, \"VIEW\": 28206, \"\\u0120accessory\": 28207, \"meal\": 28208, \"largest\": 28209, \"iegel\": 28210, \"Someone\": 28211, \"\\u0120toughest\": 28212, \"oso\": 28213, \"\\u0120funnel\": 28214, \"\\u0120condemnation\": 28215, \"luent\": 28216, \"\\u0120wired\": 28217, \"\\u0120Sunset\": 28218, \"Jesus\": 28219, \"\\u0120PST\": 28220, \"\\u0120Pages\": 28221, \"\\u0120Tycoon\": 28222, \"\\u0120PF\": 28223, \"\\u0120selections\": 28224, \"\\u0120\\u00e0\\u00a4\": 28225, \"partisan\": 28226, \"\\u0120highs\": 28227, \"\\u0120Rune\": 28228, \"\\u0120crafts\": 28229, \"lead\": 28230, \"\\u0120Parents\": 28231, \"\\u0120reclaim\": 28232, \"eker\": 28233, \"\\u0120Allied\": 28234, \"aeper\": 28235, \"\\u0120looming\": 28236, \"\\u0120beneficiaries\": 28237, \"\\u0120Hull\": 28238, \"Students\": 28239, \"Jewish\": 28240, \"dj\": 28241, \"\\u0120pact\": 28242, \"template\": 28243, \"\\u0120Officials\": 28244, \"\\u0120Baylor\": 28245, \"\\u0120hemp\": 28246, \"\\u0120youths\": 28247, \"\\u0120Levels\": 28248, \"\\u0120Xiao\": 28249, \"\\u0120Ches\": 28250, \"\\u0120endeavor\": 28251, \"\\u0120Removed\": 28252, \"\\u0120hippocamp\": 28253, \"Hell\": 28254, \"\\u00e3\\u0124\\u012c\": 28255, \"805\": 28256, \"\\u0120dinosaur\": 28257, \"\\u0120Wrath\": 28258, \"\\u0120Indonesian\": 28259, \"\\u0120calculator\": 28260, \"\\u0120Dictionary\": 28261, \"\\u0120420\": 28262, \"\\u0120MAG\": 28263, \"(_\": 28264, \"!,\": 28265, \"tarians\": 28266, \"\\u0120restricting\": 28267, \"racuse\": 28268, \"\\u0120weekday\": 28269, \"OUNT\": 28270, \"\\u0120shrugged\": 28271, \"leground\": 28272, \"\\u0120bald\": 28273, \"\\u0120Doctors\": 28274, \"\\u0120touted\": 28275, \"\\u0120Maxwell\": 28276, \"\\u0120214\": 28277, \"\\u0120diplomat\": 28278, \"\\u0120repression\": 28279, \"\\u0120constituency\": 28280, \"vice\": 28281, \"ranked\": 28282, \"\\u0120Napoleon\": 28283, \"gang\": 28284, \"\\u0120Forever\": 28285, \"tun\": 28286, \"\\u0120bulb\": 28287, \"\\u0120PDT\": 28288, \"\\u0120Cisco\": 28289, \"VEN\": 28290, \"\\u0120resumed\": 28291, \"Steven\": 28292, \"\\u0120Manitoba\": 28293, \"\\u0120fabulous\": 28294, \"\\u0120Agents\": 28295, \"1984\": 28296, \"\\u0120amusing\": 28297, \"\\u0120Mysteries\": 28298, \"\\u0120orthodox\": 28299, \"floor\": 28300, \"\\u0120questionnaire\": 28301, \"\\u0120penetrate\": 28302, \"\\u0120filmmakers\": 28303, \"\\u0120Unc\": 28304, \"\\u0120stamped\": 28305, \"\\u0120thirteen\": 28306, \"\\u0120outfield\": 28307, \"\\u0120forwarded\": 28308, \"\\u0120appra\": 28309, \"\\u0120aided\": 28310, \"try\": 28311, \"\\u0120unfocused\": 28312, \"\\u0120Liz\": 28313, \"\\u0120Wendy\": 28314, \"\\u0120Scene\": 28315, \"Charg\": 28316, \"\\u0120rejects\": 28317, \"\\u0120leftist\": 28318, \"\\u0120Providence\": 28319, \"\\u0120Brid\": 28320, \"regn\": 28321, \"\\u0120prophecy\": 28322, \"\\u0120LIVE\": 28323, \"499\": 28324, \"\\u0120forge\": 28325, \"\\u0120FML\": 28326, \"\\u0120intrinsic\": 28327, \"\\u0120Frog\": 28328, \"\\u0120wont\": 28329, \"\\u0120Holt\": 28330, \"\\u0120famed\": 28331, \"CLUS\": 28332, \"aepernick\": 28333, \"\\u0120Hate\": 28334, \"\\u0120Cay\": 28335, \"\\u0120registering\": 28336, \"ortality\": 28337, \"ropy\": 28338, \"ocalyptic\": 28339, \"aan\": 28340, \"nav\": 28341, \"\\u0120fascist\": 28342, \"IFIED\": 28343, \"\\u0120implicated\": 28344, \"\\u0120Resort\": 28345, \"\\u0120Chandler\": 28346, \"\\u0120Brick\": 28347, \"Pin\": 28348, \"ysc\": 28349, \"Usage\": 28350, \"\\u0120Helm\": 28351, \"usra\": 28352, \"\\u00e2\\u013a\\u0127\\u00e2\\u013a\\u0127\": 28353, \"\\u0120Abbas\": 28354, \"\\u0120unanimously\": 28355, \"\\u0120keeper\": 28356, \"\\u0120addicted\": 28357, \"???\": 28358, \"\\u0120helmets\": 28359, \"\\u0120antioxid\": 28360, \"apsed\": 28361, \"808\": 28362, \"giene\": 28363, \"\\u0120waits\": 28364, \"\\u0120minion\": 28365, \"raved\": 28366, \"\\u0120Porsche\": 28367, \"\\u0120dreaming\": 28368, \"\\u0120171\": 28369, \"\\u0120Cain\": 28370, \"\\u0120unfor\": 28371, \"asso\": 28372, \"\\u0120Configuration\": 28373, \"kun\": 28374, \"hardt\": 28375, \"\\u0120nested\": 28376, \"\\u0120LDS\": 28377, \"LES\": 28378, \"\\u0120tying\": 28379, \"enos\": 28380, \"\\u0120cue\": 28381, \"\\u0120Marqu\": 28382, \"skirts\": 28383, \"\\u0120clicked\": 28384, \"\\u0120expiration\": 28385, \"\\u0120Accordingly\": 28386, \"\\u0120WC\": 28387, \"\\u0120blessings\": 28388, \"\\u0120addictive\": 28389, \"\\u0120Narr\": 28390, \"yx\": 28391, \"\\u0120Jaguars\": 28392, \"\\u0120rents\": 28393, \"\\u0120Siber\": 28394, \"\\u0120tipped\": 28395, \"ousse\": 28396, \"\\u0120Fitzgerald\": 28397, \"\\u0120hierarch\": 28398, \"outine\": 28399, \"\\u0120wavelength\": 28400, \">.\": 28401, \"chid\": 28402, \"\\u0120Processing\": 28403, \"/+\": 28404, \"ranking\": 28405, \"Easy\": 28406, \"\\u0120Construct\": 28407, \"\\u0120tet\": 28408, \"insured\": 28409, \"HUD\": 28410, \"\\u0120quoting\": 28411, \"\\u0120communicated\": 28412, \"inx\": 28413, \"\\u0120inmate\": 28414, \"\\u0120erected\": 28415, \"\\u0120Absolutely\": 28416, \"\\u0120Surely\": 28417, \"\\u0120unim\": 28418, \"\\u0120Throne\": 28419, \"heid\": 28420, \"\\u0120claws\": 28421, \"\\u0120superstar\": 28422, \"\\u0120Lenn\": 28423, \"\\u0120Whis\": 28424, \"Uk\": 28425, \"abol\": 28426, \"\\u0120sket\": 28427, \"\\u0120Niet\": 28428, \"\\u0120perks\": 28429, \"\\u0120affinity\": 28430, \"\\u0120openings\": 28431, \"phasis\": 28432, \"\\u0120discriminate\": 28433, \"Tip\": 28434, \"vc\": 28435, \"\\u0120grinding\": 28436, \"\\u0120Jenny\": 28437, \"\\u0120asthma\": 28438, \"holes\": 28439, \"\\u0120Homer\": 28440, \"\\u0120registers\": 28441, \"\\u0120Glad\": 28442, \"\\u0120creations\": 28443, \"\\u0120lithium\": 28444, \"\\u0120applause\": 28445, \"until\": 28446, \"Justice\": 28447, \"\\u0120Turks\": 28448, \"\\u0120scandals\": 28449, \"\\u0120bake\": 28450, \"tank\": 28451, \"Mech\": 28452, \"\\u0120Means\": 28453, \"\\u0120Maid\": 28454, \"Republicans\": 28455, \"isal\": 28456, \"windows\": 28457, \"\\u0120Santos\": 28458, \"\\u0120vegetation\": 28459, \"338\": 28460, \"tri\": 28461, \"\\u0120flux\": 28462, \"insert\": 28463, \"\\u0120clarified\": 28464, \"\\u0120mortg\": 28465, \"\\u0120Chim\": 28466, \"\\u0120Tort\": 28467, \"\\u0120disclaim\": 28468, \"metal\": 28469, \"\\u0120Aside\": 28470, \"\\u0120induction\": 28471, \"\\u0120infl\": 28472, \"\\u0120atheists\": 28473, \"amph\": 28474, \"\\u0120ether\": 28475, \"\\u0120Vital\": 28476, \"\\u0120Built\": 28477, \"Mind\": 28478, \"\\u0120weaponry\": 28479, \"SET\": 28480, \"\\u0120186\": 28481, \"admin\": 28482, \"gam\": 28483, \"contract\": 28484, \"afa\": 28485, \"\\u0120derivatives\": 28486, \"\\u0120snacks\": 28487, \"\\u0120churn\": 28488, \"Econom\": 28489, \"\\u0120capped\": 28490, \"\\u0120Understanding\": 28491, \"\\u0120Hers\": 28492, \"\\u0120Iz\": 28493, \"\\u0120duct\": 28494, \"IENT\": 28495, \"aughty\": 28496, \"\\u0120\\u00e2\\u013e\\u0136\": 28497, \"\\u0120NP\": 28498, \"\\u0120sailing\": 28499, \"Initialized\": 28500, \"\\u0120ted\": 28501, \"\\u0120reactors\": 28502, \"\\u0120Lomb\": 28503, \"\\u0120choke\": 28504, \"\\u0120Worm\": 28505, \"\\u0120admiration\": 28506, \"\\u0120swung\": 28507, \"ensibly\": 28508, \"\\u0120rash\": 28509, \"\\u0120Goals\": 28510, \"\\u0120Important\": 28511, \"Shot\": 28512, \"\\u0120Ras\": 28513, \"\\u0120trainers\": 28514, \"\\u0120Bun\": 28515, \"Working\": 28516, \"\\u0120harmed\": 28517, \"\\u0120Pandora\": 28518, \"\\u0120LTE\": 28519, \"\\u0120mushroom\": 28520, \"\\u0120CHAR\": 28521, \"\\u0120Fee\": 28522, \"\\u0120Moy\": 28523, \"Born\": 28524, \"oliberal\": 28525, \"\\u0120Martial\": 28526, \"\\u0120gentlemen\": 28527, \"\\u0120lingering\": 28528, \"Official\": 28529, \"\\u0120graffiti\": 28530, \"\\u0120Names\": 28531, \"Der\": 28532, \"\\u0120quint\": 28533, \"istrate\": 28534, \"azeera\": 28535, \"\\u0120NOTICE\": 28536, \"\\u0120Florence\": 28537, \"\\u0120payable\": 28538, \"\\u0120depicts\": 28539, \"\\u0120Species\": 28540, \"Heart\": 28541, \"\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\": 28542, \"\\u0120enclosed\": 28543, \"Increases\": 28544, \"Daily\": 28545, \"\\u0120Lis\": 28546, \"\\u0120enactment\": 28547, \"\\u0120Bacon\": 28548, \"\\u0120Steele\": 28549, \"demand\": 28550, \"\\u0120183\": 28551, \"\\u0120mouths\": 28552, \"\\u0120stranded\": 28553, \"\\u0120enhancement\": 28554, \"011\": 28555, \"\\u0120Whats\": 28556, \"\\u0120healed\": 28557, \"eny\": 28558, \"\\u0120Rab\": 28559, \"\\u0120340\": 28560, \"\\u0120Labyrinth\": 28561, \"roach\": 28562, \"\\u0120Yosh\": 28563, \"\\u0120Clippers\": 28564, \"\\u0120concerts\": 28565, \"Internet\": 28566, \"355\": 28567, \"\\u0120stickers\": 28568, \"\\u0120termed\": 28569, \"\\u0120Axe\": 28570, \"\\u0120grandparents\": 28571, \"France\": 28572, \"\\u0120Clim\": 28573, \"\\u0120Uh\": 28574, \"ulic\": 28575, \"\\u0120thrill\": 28576, \"centric\": 28577, \"\\u0120Overview\": 28578, \"\\u0120Conduct\": 28579, \"\\u0120substantive\": 28580, \"\\u0120182\": 28581, \"mur\": 28582, \"\\u0120stray\": 28583, \"\\u0120Coff\": 28584, \"\\u0120repetitive\": 28585, \"\\u0120Forgotten\": 28586, \"\\u0120qualification\": 28587, \"ewitness\": 28588, \"\\u0120Zimbabwe\": 28589, \"\\u0120simulated\": 28590, \"\\u0120JD\": 28591, \"253\": 28592, \"\\u0120Ware\": 28593, \"\\u0120unsc\": 28594, \"Times\": 28595, \"\\u0120summons\": 28596, \"\\u0120disconnected\": 28597, \"\\u0120184\": 28598, \"cius\": 28599, \"\\u0120Gujar\": 28600, \"odka\": 28601, \"\\u0120erase\": 28602, \"\\u0120Tobacco\": 28603, \"elected\": 28604, \"\\u0120uncont\": 28605, \"\\u0120Shepard\": 28606, \"\\u0120Lamp\": 28607, \"\\u0120alerted\": 28608, \"\\u0120operative\": 28609, \"arna\": 28610, \"uint\": 28611, \"\\u0120negligence\": 28612, \"acements\": 28613, \"\\u0120supra\": 28614, \"\\u0120prevail\": 28615, \"\\u0120Shark\": 28616, \"\\u0120belts\": 28617, \"\\u00e3\\u0123\\u00ab\": 28618, \"\\u0120tighter\": 28619, \"Engineers\": 28620, \"\\u0120inactive\": 28621, \"\\u0120exponent\": 28622, \"\\u0120Willie\": 28623, \"aples\": 28624, \"\\u0120heir\": 28625, \"\\u0120Hits\": 28626, \"iann\": 28627, \"\\u0120Says\": 28628, \"\\u0120currents\": 28629, \"\\u0120Bengal\": 28630, \"\\u0120arist\": 28631, \"Buffer\": 28632, \"\\u0120breeze\": 28633, \"\\u0120Wesley\": 28634, \"Cola\": 28635, \"\\u0120pronoun\": 28636, \"\\u0120deed\": 28637, \"\\u0120Kling\": 28638, \"\\u0120oft\": 28639, \"\\u0120inflict\": 28640, \"\\u0120punishing\": 28641, \"\\u0120nm\": 28642, \"iku\": 28643, \"ODUCT\": 28644, \"014\": 28645, \"\\u0120subsidy\": 28646, \"\\u0120DEA\": 28647, \"\\u0120Herbert\": 28648, \"\\u0120Jal\": 28649, \"Bank\": 28650, \"\\u0120deferred\": 28651, \"\\u0120shipment\": 28652, \"Bott\": 28653, \"\\u0120alle\": 28654, \"bearing\": 28655, \"HTML\": 28656, \"Offline\": 28657, \"\\u0120213\": 28658, \"\\u0120scrolling\": 28659, \"\\u0120scanned\": 28660, \"\\u0120Libyan\": 28661, \"\\u0120TOP\": 28662, \"chrom\": 28663, \"dt\": 28664, \"column\": 28665, \"PsyNetMessage\": 28666, \"Zero\": 28667, \"\\u0120torso\": 28668, \"050\": 28669, \"\\u00e2\\u0137\\u0132\": 28670, \"\\u0120imperson\": 28671, \"\\u0120Schwartz\": 28672, \"udic\": 28673, \"\\u0120pissed\": 28674, \"\\u0120Sapp\": 28675, \"257\": 28676, \"\\u0120ISPs\": 28677, \"ogl\": 28678, \"\\u0120supervised\": 28679, \"\\u0120adolescent\": 28680, \"\\u0120attained\": 28681, \"\\u0120Delivery\": 28682, \"\\u0120Bunny\": 28683, \"\\u01201937\": 28684, \"\\u0120miniature\": 28685, \"\\u0120os\": 28686, \"\\u0120370\": 28687, \"608\": 28688, \"\\u0120Mourinho\": 28689, \"\\u0120innate\": 28690, \"\\u0120tempo\": 28691, \"\\u0120NM\": 28692, \"\\u0120Fallen\": 28693, \"009\": 28694, \"\\u0120provocative\": 28695, \"Streamer\": 28696, \"\\u0120Benedict\": 28697, \"\\u0120Bolshe\": 28698, \"\\u0120turtle\": 28699, \"\\u0120PCB\": 28700, \"\\u0120Equal\": 28701, \"Director\": 28702, \"\\u0120Rend\": 28703, \"\\u0120fluids\": 28704, \"Authorities\": 28705, \"\\u0120cousins\": 28706, \"requency\": 28707, \"\\u0120Neighbor\": 28708, \"sets\": 28709, \"shared\": 28710, \"Charles\": 28711, \"password\": 28712, \"\\u0120gears\": 28713, \"\\u0120211\": 28714, \"\\u0120Hardware\": 28715, \"rika\": 28716, \"\\u0120upstream\": 28717, \"Hom\": 28718, \"\\u0120disproportionately\": 28719, \"ivities\": 28720, \"\\u0120undefined\": 28721, \"\\u0120electrons\": 28722, \"\\u0120commemor\": 28723, \"Eventually\": 28724, \"\\u0120><\": 28725, \"\\u0120irresponsible\": 28726, \"218\": 28727, \"\\u0120Released\": 28728, \"\\u0120OVER\": 28729, \"\\u0120IGN\": 28730, \"\\u0120Bread\": 28731, \"stellar\": 28732, \"\\u0120Sage\": 28733, \"tted\": 28734, \"damage\": 28735, \"edition\": 28736, \"\\u0120Prec\": 28737, \"\\u0120lime\": 28738, \"\\u0120confinement\": 28739, \"\\u0120calorie\": 28740, \"weapon\": 28741, \"\\u0120differing\": 28742, \"\\u0120Sina\": 28743, \"mys\": 28744, \"amd\": 28745, \"\\u0120intricate\": 28746, \"kk\": 28747, \"\\u0120PAT\": 28748, \"\\u00c3\\u00a3o\": 28749, \"stones\": 28750, \"links\": 28751, \"\\u0120ranch\": 28752, \"Semitic\": 28753, \"\\u0120differentiate\": 28754, \"\\u0120Singer\": 28755, \"occupied\": 28756, \"\\u0120fortress\": 28757, \"cmd\": 28758, \"\\u0120interception\": 28759, \"\\u0120Ankara\": 28760, \"\\u0120rept\": 28761, \"\\u0120Solitaire\": 28762, \"\\u0120remake\": 28763, \"pred\": 28764, \"\\u0120dared\": 28765, \"autions\": 28766, \"\\u0120BACK\": 28767, \"Running\": 28768, \"\\u0120debugging\": 28769, \"\\u0120graphs\": 28770, \"399\": 28771, \"\\u0120Nigel\": 28772, \"\\u0120bun\": 28773, \"\\u0120pillow\": 28774, \"\\u0120progressed\": 28775, \"fashioned\": 28776, \"\\u0120obedience\": 28777, \"ERN\": 28778, \"\\u0120rehears\": 28779, \"Cell\": 28780, \"tl\": 28781, \"Sher\": 28782, \"\\u0120herald\": 28783, \"\\u0120Payment\": 28784, \"\\u0120Cory\": 28785, \"\\u0120Dept\": 28786, \"\\u0120repent\": 28787, \"\\u0120Weak\": 28788, \"uckland\": 28789, \"\\u0120pleasing\": 28790, \"\\u0120shortages\": 28791, \"\\u0120jurors\": 28792, \"\\u0120Kab\": 28793, \"qqa\": 28794, \"Anti\": 28795, \"\\u0120wow\": 28796, \"\\u0120RCMP\": 28797, \"\\u0120tsun\": 28798, \"\\u0120Sic\": 28799, \"\\u0120comprises\": 28800, \"\\u0120spies\": 28801, \"\\u0120precinct\": 28802, \"nu\": 28803, \"\\u0120urges\": 28804, \"\\u0120timed\": 28805, \"\\u0120stripes\": 28806, \"\\u0120Boots\": 28807, \"\\u0120yen\": 28808, \"Advanced\": 28809, \"\\u0120discrete\": 28810, \"\\u0120Archangel\": 28811, \"employment\": 28812, \"Diff\": 28813, \"\\u0120monuments\": 28814, \"\\u0120209\": 28815, \"worker\": 28816, \"\\u0120196\": 28817, \"\\u0120Ig\": 28818, \"utterstock\": 28819, \"TPS\": 28820, \"Jac\": 28821, \"\\u0120homelessness\": 28822, \"\\u0120commentator\": 28823, \"\\u0120racially\": 28824, \"fing\": 28825, \"seed\": 28826, \"Ele\": 28827, \"ellation\": 28828, \"\\u0120ethanol\": 28829, \"\\u0120parish\": 28830, \"\\u0120Dong\": 28831, \"\\u0120Awakening\": 28832, \"\\u0120deviation\": 28833, \"\\u0120Bearing\": 28834, \"\\u0120Tsuk\": 28835, \"\\u0120recess\": 28836, \"\\u0120lymph\": 28837, \"\\u0120Cannabis\": 28838, \"\\u00e5\\u013e\": 28839, \"\\u0120NEWS\": 28840, \"\\u0120dra\": 28841, \"\\u0120Stefan\": 28842, \"\\u0120Wrong\": 28843, \"\\u0120SAM\": 28844, \"\\u0120loosely\": 28845, \"\\u0120interpreter\": 28846, \"\\u0120Plain\": 28847, \"Government\": 28848, \"\\u0120bigotry\": 28849, \"\\u0120grenades\": 28850, \"avez\": 28851, \"pictured\": 28852, \"\\u0120mandated\": 28853, \"\\u0120Monk\": 28854, \"\\u0120Pedro\": 28855, \"\\u0120lava\": 28856, \"274\": 28857, \"\\u0120cynical\": 28858, \"\\u0120Scrolls\": 28859, \"locks\": 28860, \"Mp\": 28861, \"\\u0120congregation\": 28862, \"ornings\": 28863, \"phil\": 28864, \"\\u0120Ibid\": 28865, \"\\u0120ferv\": 28866, \"\\u0120disappearing\": 28867, \"\\u0120arrogant\": 28868, \"syn\": 28869, \"\\u0120Maver\": 28870, \"\\u0120Suit\": 28871, \"241\": 28872, \"\\u0120abbre\": 28873, \"ackers\": 28874, \"Pa\": 28875, \"\\u0120Yel\": 28876, \"Whenever\": 28877, \"\\u0120235\": 28878, \"\\u0120Vine\": 28879, \"\\u0120Anat\": 28880, \"\\u0120extinct\": 28881, \"LET\": 28882, \"\\u0120executable\": 28883, \"VERS\": 28884, \"oxide\": 28885, \"DNA\": 28886, \"\\u0120Prel\": 28887, \"\\u0120resentment\": 28888, \"\\u0120comprise\": 28889, \"\\u0120Aviv\": 28890, \"\\u0120interceptions\": 28891, \"\\u0120prolific\": 28892, \"INA\": 28893, \"\\u0120Erin\": 28894, \"thought\": 28895, \"219\": 28896, \"\\u0120Psychiatry\": 28897, \"unky\": 28898, \"chemist\": 28899, \"Ho\": 28900, \"\\u0120McCoy\": 28901, \"\\u0120bricks\": 28902, \"Los\": 28903, \"rily\": 28904, \"\\u0120USSR\": 28905, \"\\u0120rud\": 28906, \"\\u0120laud\": 28907, \"\\u0120Wise\": 28908, \"\\u0120Emerald\": 28909, \"\\u0120revived\": 28910, \"\\u0120damned\": 28911, \"\\u0120Repair\": 28912, \"idem\": 28913, \"ctica\": 28914, \"\\u0120patriarch\": 28915, \"\\u0120Nurs\": 28916, \"meg\": 28917, \"\\u0120cheapest\": 28918, \"reements\": 28919, \"empty\": 28920, \"\\u0120Celebr\": 28921, \"\\u0120deprivation\": 28922, \"chanted\": 28923, \"\\u0120Thumbnails\": 28924, \"Energy\": 28925, \"\\u0120Ethan\": 28926, \"\\u0120Qing\": 28927, \"\\u0120opposes\": 28928, \"WIND\": 28929, \"vik\": 28930, \"\\u0120Mau\": 28931, \"\\u0120SUB\": 28932, \"667\": 28933, \"GRE\": 28934, \"\\u0120Volunte\": 28935, \"nton\": 28936, \"Cook\": 28937, \"\\u00e5\\u0132\": 28938, \"esque\": 28939, \"\\u0120plummet\": 28940, \"\\u0120suing\": 28941, \"\\u0120pronounce\": 28942, \"\\u0120resisting\": 28943, \"\\u0120Fishing\": 28944, \"\\u0120Trials\": 28945, \"\\u0120yell\": 28946, \"\\u0120310\": 28947, \"\\u0120induct\": 28948, \"\\u0120personalized\": 28949, \"often\": 28950, \"Reb\": 28951, \"EMBER\": 28952, \"\\u0120viewpoint\": 28953, \"\\u0120existential\": 28954, \"())\": 28955, \"remove\": 28956, \"MENTS\": 28957, \"lasses\": 28958, \"\\u0120evapor\": 28959, \"\\u0120aisle\": 28960, \"meta\": 28961, \"\\u0120reflective\": 28962, \"\\u0120entitlement\": 28963, \"\\u0120devised\": 28964, \"music\": 28965, \"ascade\": 28966, \"\\u0120winding\": 28967, \"offset\": 28968, \"\\u0120accessibility\": 28969, \"kered\": 28970, \"Better\": 28971, \"\\u0120Johnston\": 28972, \"thinking\": 28973, \"Snow\": 28974, \"\\u0120Croatia\": 28975, \"\\u0120Atomic\": 28976, \"271\": 28977, \"348\": 28978, \"\\u0120textbook\": 28979, \"\\u0120Sixth\": 28980, \"\\u0120\\u00d8\\u00a7\\u00d9\\u0126\": 28981, \"\\u0120slider\": 28982, \"\\u0120Burger\": 28983, \"bol\": 28984, \"Sync\": 28985, \"\\u0120grandchildren\": 28986, \"\\u0120cerv\": 28987, \"+)\": 28988, \"\\u0120eternity\": 28989, \"\\u0120tweeting\": 28990, \"\\u0120speculative\": 28991, \"\\u0120pivotal\": 28992, \"\\u0120WP\": 28993, \"\\u0120TER\": 28994, \"ynamic\": 28995, \"\\u0120upl\": 28996, \"\\u0120Cats\": 28997, \"perhaps\": 28998, \"\\u0120classmates\": 28999, \"\\u0120blatant\": 29000, \"'-\": 29001, \"\\u0120lakh\": 29002, \"antine\": 29003, \"\\u0120Borg\": 29004, \"iom\": 29005, \"/(\": 29006, \"\\u0120Athletic\": 29007, \"\\u0120sar\": 29008, \"OTA\": 29009, \"\\u0120Hoffman\": 29010, \"Nevertheless\": 29011, \"\\u0120adorable\": 29012, \"\\u0120spawned\": 29013, \"Associated\": 29014, \"\\u0120Domestic\": 29015, \"\\u0120implant\": 29016, \"\\u0120Luxem\": 29017, \"\\u0120Kens\": 29018, \"\\u0120pumps\": 29019, \"\\u0120SAT\": 29020, \"Attributes\": 29021, \"509\": 29022, \"avour\": 29023, \"\\u0120centralized\": 29024, \"\\u0120TN\": 29025, \"\\u0120freshly\": 29026, \"\\u0120Achieve\": 29027, \"\\u0120outsiders\": 29028, \"herty\": 29029, \"\\u0120Ree\": 29030, \"\\u0120Towers\": 29031, \"\\u0120Dart\": 29032, \"akable\": 29033, \"\\u0120mp\": 29034, \"\\u0120Heavenly\": 29035, \"\\u0120ripe\": 29036, \"\\u0120Caroline\": 29037, \"ryan\": 29038, \"\\u0120classics\": 29039, \"\\u0120retiring\": 29040, \"\\u0120228\": 29041, \"\\u0120ah\": 29042, \"\\u0120dealings\": 29043, \"\\u0120punching\": 29044, \"\\u0120Chapman\": 29045, \"Options\": 29046, \"maxwell\": 29047, \"volume\": 29048, \"\\u0120stal\": 29049, \"\\u0120exported\": 29050, \"\\u0120Quite\": 29051, \"\\u0120numerical\": 29052, \"Burn\": 29053, \"Fact\": 29054, \"\\u0120Keystone\": 29055, \"\\u0120trending\": 29056, \"\\u0120altering\": 29057, \"\\u0120Africans\": 29058, \"478\": 29059, \"\\u0120MN\": 29060, \"\\u0120Knock\": 29061, \"\\u0120temptation\": 29062, \"\\u0120prestige\": 29063, \"Overview\": 29064, \"\\u0120Traditional\": 29065, \"\\u0120Bahrain\": 29066, \"Private\": 29067, \"\\u0120HOU\": 29068, \"\\u0120barr\": 29069, \"\\u0120Tat\": 29070, \"Cube\": 29071, \"USD\": 29072, \"\\u0120Grande\": 29073, \"\\u0120Gat\": 29074, \"\\u0120Flo\": 29075, \"\\u0120resides\": 29076, \"\\u0120indec\": 29077, \"volent\": 29078, \"\\u0120perpetual\": 29079, \"ubes\": 29080, \"\\u0120worldview\": 29081, \"\\u0120Quantum\": 29082, \"\\u0120filtered\": 29083, \"\\u0120ensu\": 29084, \"orgetown\": 29085, \"ERSON\": 29086, \"\\u0120Mild\": 29087, \"379\": 29088, \"OTT\": 29089, \"\\u00c3\\u00a5\": 29090, \"\\u0120vitamins\": 29091, \"\\u0120ribbon\": 29092, \"\\u0120sincerely\": 29093, \"\\u0120Hin\": 29094, \"\\u0120eighteen\": 29095, \"\\u0120contradictory\": 29096, \"\\u0120glaring\": 29097, \"\\u0120expectancy\": 29098, \"\\u0120conspir\": 29099, \"\\u0120monstrous\": 29100, \"\\u0120380\": 29101, \"reci\": 29102, \"\\u0120handic\": 29103, \"\\u0120pumped\": 29104, \"\\u0120indicative\": 29105, \"\\u0120rapp\": 29106, \"\\u0120avail\": 29107, \"\\u0120LEGO\": 29108, \"\\u0120Marijuana\": 29109, \"1985\": 29110, \"erton\": 29111, \"\\u0120twentieth\": 29112, \"################################\": 29113, \"\\u0120Swamp\": 29114, \"\\u0120valuation\": 29115, \"\\u0120affiliates\": 29116, \"adjusted\": 29117, \"\\u0120Facility\": 29118, \"262\": 29119, \"\\u0120enzymes\": 29120, \"itudinal\": 29121, \"\\u0120imprint\": 29122, \"Site\": 29123, \"\\u0120installer\": 29124, \"\\u0120TRA\": 29125, \"mology\": 29126, \"linear\": 29127, \"\\u0120Collective\": 29128, \"igating\": 29129, \"\\u0120Token\": 29130, \"\\u0120speculated\": 29131, \"KN\": 29132, \"\\u0120Cly\": 29133, \"ority\": 29134, \"\\u0120defer\": 29135, \"\\u0120inspectors\": 29136, \"approved\": 29137, \"RM\": 29138, \"\\u0120Suns\": 29139, \"\\u0120informing\": 29140, \"\\u0120Syracuse\": 29141, \"ibli\": 29142, \"765\": 29143, \"\\u0120glove\": 29144, \"\\u0120authorize\": 29145, \"\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\\u00e2\\u0122\\u00a6\": 29146, \"\\u0120Cruise\": 29147, \"\\u0120contracting\": 29148, \"shell\": 29149, \"IFE\": 29150, \"\\u0120Jewel\": 29151, \"pract\": 29152, \"\\u0120Photoshop\": 29153, \"\\u0120Knowing\": 29154, \"harm\": 29155, \"\\u0120attractions\": 29156, \"adan\": 29157, \"etus\": 29158, \"018\": 29159, \"wagen\": 29160, \"Alt\": 29161, \"\\u0120multiply\": 29162, \"\\u0120equilibrium\": 29163, \":{\": 29164, \"\\u0120Fighters\": 29165, \"\\u0120Edgar\": 29166, \"\\u0120fourteen\": 29167, \"Govern\": 29168, \"\\u0120misuse\": 29169, \"\\u0120abusing\": 29170, \"\\u0120ancestry\": 29171, \"ramer\": 29172, \"644\": 29173, \"\\u0120worms\": 29174, \"\\u0120thicker\": 29175, \"\\u0120Combine\": 29176, \"\\u0120peasants\": 29177, \"\\u0120vind\": 29178, \"\\u0120conquest\": 29179, \"\\u0120mocked\": 29180, \"\\u0120cinnamon\": 29181, \"\\u0120Cald\": 29182, \"\\u0120Gallup\": 29183, \"\\u0120avoidance\": 29184, \"\\u0120incarnation\": 29185, \"\\u0120Strat\": 29186, \"\\u0120tasted\": 29187, \"enta\": 29188, \"\\u0120Neal\": 29189, \"pared\": 29190, \"\\u0120terminology\": 29191, \"jection\": 29192, \"Scientists\": 29193, \"\\u0120INS\": 29194, \"\\u0120Dee\": 29195, \"\\u0120directories\": 29196, \"Road\": 29197, \"\\u0120Shap\": 29198, \"bright\": 29199, \"\\u0120Directors\": 29200, \"\\u0120Column\": 29201, \"\\u0120bob\": 29202, \"\\u0120preferably\": 29203, \"\\u0120glitch\": 29204, \"furt\": 29205, \"\\u0120eg\": 29206, \"idis\": 29207, \"CBC\": 29208, \"\\u0120surrendered\": 29209, \"\\u0120testament\": 29210, \"336\": 29211, \"uggest\": 29212, \"\\u0120Nil\": 29213, \"another\": 29214, \"\\u0120pathetic\": 29215, \"\\u0120Donna\": 29216, \"\\u0120218\": 29217, \"\\u0120Avery\": 29218, \"\\u0120whiskey\": 29219, \"\\u0120fixture\": 29220, \"\\u0120Conquest\": 29221, \"\\u0120bets\": 29222, \"Occ\": 29223, \"\\u0120Leicester\": 29224, \"].\\\"\": 29225, \"\\u0120));\": 29226, \"\\u0120flashes\": 29227, \"456\": 29228, \"\\u0120masked\": 29229, \"gebra\": 29230, \"\\u0120computed\": 29231, \"chel\": 29232, \"auder\": 29233, \"\\u0120defeats\": 29234, \"\\u0120Liberation\": 29235, \"\\u0120Osama\": 29236, \"\\u0120Vive\": 29237, \"Changes\": 29238, \"Channel\": 29239, \"\\u0120tariffs\": 29240, \"\\u0120mage\": 29241, \"\\u0120Sax\": 29242, \"\\u0120inadvertently\": 29243, \"\\u0120CRE\": 29244, \"\\u0120Reaper\": 29245, \"inky\": 29246, \"grading\": 29247, \"\\u0120stereotyp\": 29248, \"\\u0120curl\": 29249, \"\\u0120FANT\": 29250, \"\\u0120frameworks\": 29251, \"Mom\": 29252, \"\\u0120Anch\": 29253, \"\\u0120flavour\": 29254, \"carbon\": 29255, \"\\u0120permitting\": 29256, \"letcher\": 29257, \"\\u0120Mozilla\": 29258, \"\\u0120Parking\": 29259, \"\\u0120Champ\": 29260, \"Scroll\": 29261, \"\\u0120murderer\": 29262, \"\\u0120rested\": 29263, \"\\u0120owes\": 29264, \"\\u0120Poss\": 29265, \"ADD\": 29266, \"IFF\": 29267, \"resolution\": 29268, \"\\u0120Mining\": 29269, \"\\u0120comparative\": 29270, \"Dim\": 29271, \"\\u0120neighbouring\": 29272, \"\\u0120AST\": 29273, \"\\u0120Toxic\": 29274, \"\\u0120biases\": 29275, \"\\u0120gunfire\": 29276, \"urous\": 29277, \"\\u0120Moment\": 29278, \"1983\": 29279, \"\\u0120pervasive\": 29280, \"ttp\": 29281, \"\\u0120Normally\": 29282, \"rir\": 29283, \"Sarah\": 29284, \"\\u0120Albany\": 29285, \"\\u0120unsett\": 29286, \"\\u0120SMS\": 29287, \"ipers\": 29288, \"layer\": 29289, \"\\u0120Whites\": 29290, \"uple\": 29291, \"\\u0120turbo\": 29292, \"\\u0120Leeds\": 29293, \"\\u0120thats\": 29294, \"\\u0120Miner\": 29295, \"MER\": 29296, \"\\u0120Reign\": 29297, \"\\u0120perme\": 29298, \"\\u0120Blitz\": 29299, \"\\u01201934\": 29300, \"\\u0120intimidating\": 29301, \"tube\": 29302, \"\\u0120eccentric\": 29303, \"abolic\": 29304, \"boxes\": 29305, \"\\u0120Associates\": 29306, \"votes\": 29307, \"\\u0120simulate\": 29308, \"umbo\": 29309, \"astery\": 29310, \"\\u0120shipments\": 29311, \"FFFF\": 29312, \"anth\": 29313, \"\\u0120seasoned\": 29314, \"\\u0120experimentation\": 29315, \"\\u00e2\\u0138\\u0142\": 29316, \"laws\": 29317, \"Meet\": 29318, \"iddles\": 29319, \"antics\": 29320, \"Rating\": 29321, \"ISIS\": 29322, \"hift\": 29323, \"\\u0120fronts\": 29324, \"buf\": 29325, \"017\": 29326, \"\\u0120unatt\": 29327, \"\\u0120Dil\": 29328, \"leases\": 29329, \"\\u0120Gardens\": 29330, \"777\": 29331, \"touch\": 29332, \"vell\": 29333, \"458\": 29334, \"\\u0120=====\": 29335, \"saving\": 29336, \"\\u0120erosion\": 29337, \"\\u0120Quin\": 29338, \"\\u0120earns\": 29339, \"\\u0120accomplishment\": 29340, \"\\u0120Wei\": 29341, \"\\u0120<[\": 29342, \"_____\": 29343, \"\\u0120irrig\": 29344, \"\\u0120Teddy\": 29345, \"\\u0120conquered\": 29346, \"\\u0120Armored\": 29347, \"\\u0120asserts\": 29348, \"\\u0120manipulating\": 29349, \"r\\u00c3\\u00a9\": 29350, \"\\u0120transcripts\": 29351, \"Gallery\": 29352, \"\\u0120plotting\": 29353, \"Neil\": 29354, \"\\u0120betrayal\": 29355, \"loader\": 29356, \"\\u0120Sul\": 29357, \"\\u0120displacement\": 29358, \"\\u0120royalty\": 29359, \"\\u0120WI\": 29360, \"heit\": 29361, \"\\u0120Devices\": 29362, \"allel\": 29363, \"\\u0120municipalities\": 29364, \"\\u0120canal\": 29365, \"Stars\": 29366, \"\\u0120UAE\": 29367, \"\\u0120\\\"\\u00e2\\u0122\\u00a6\": 29368, \"\\u0120CU\": 29369, \"above\": 29370, \"\\u0120resonance\": 29371, \"\\u0120guiActiveUn\": 29372, \"added\": 29373, \"\\u0120Braves\": 29374, \"\\u0120Ibn\": 29375, \"\\u0120hereby\": 29376, \"\\u0120BRE\": 29377, \"\\u0120shareholder\": 29378, \"\\u0120Hir\": 29379, \"\\u0120Ji\": 29380, \"\\u0120strangely\": 29381, \"\\u0120admired\": 29382, \"\\u0120plight\": 29383, \"\\u0120bachelor\": 29384, \"\\u0120Pole\": 29385, \"ciplinary\": 29386, \"Tony\": 29387, \"\\u0120Armenian\": 29388, \"\\u0120unman\": 29389, \"\\u0120Zionist\": 29390, \"Stage\": 29391, \"iscover\": 29392, \"\\u0120automotive\": 29393, \"\\u0120sidelines\": 29394, \"\\u0120slick\": 29395, \"\\u0120Renaissance\": 29396, \"\\u0120FUN\": 29397, \"Images\": 29398, \"\\u0120Haj\": 29399, \"\\u0120ping\": 29400, \"\\u0120shortcut\": 29401, \"\\u0120Blvd\": 29402, \"\\u0120Looks\": 29403, \"\\u0120bursts\": 29404, \"\\u0120clamp\": 29405, \"\\u0120mish\": 29406, \"\\u0120sorting\": 29407, \"\\u0120patriot\": 29408, \"\\u0120correctness\": 29409, \"\\u0120Scandinav\": 29410, \"\\u0120Cavaliers\": 29411, \"python\": 29412, \"azar\": 29413, \"\\u0120375\": 29414, \"\\u0120Jaune\": 29415, \"409\": 29416, \"\\u0120detrimental\": 29417, \"\\u0120stabbing\": 29418, \"\\u0120poisoned\": 29419, \"\\u0120fountain\": 29420, \"ocent\": 29421, \"orst\": 29422, \"\\u0120Mari\": 29423, \"\\u0120rains\": 29424, \"\\u0120Overs\": 29425, \"\\u0120Institution\": 29426, \"udget\": 29427, \"AMY\": 29428, \"tale\": 29429, \"\\u0120KR\": 29430, \"\\u0120Prices\": 29431, \"\\u0120headaches\": 29432, \"\\u0120landsl\": 29433, \"\\u0120Aura\": 29434, \"Bonus\": 29435, \"\\u0120Zhao\": 29436, \"\\u0120Hip\": 29437, \"\\u0120hops\": 29438, \"\\u0120Kurdistan\": 29439, \"\\u0120exploiting\": 29440, \"ryn\": 29441, \"\\u0120hypocrisy\": 29442, \"opening\": 29443, \"\\u0120gunshot\": 29444, \"\\u0120wed\": 29445, \"interstitial\": 29446, \"Interstitial\": 29447, \"\\u0120amen\": 29448, \"Breaking\": 29449, \"\\u0120marketed\": 29450, \"Wire\": 29451, \"\\u0120Crowd\": 29452, \"Continue\": 29453, \"\\u0120Known\": 29454, \"\\u0120Effective\": 29455, \"orean\": 29456, \"izons\": 29457, \"Joseph\": 29458, \"\\u0120escalation\": 29459, \"username\": 29460, \"\\u0120curtain\": 29461, \"ATES\": 29462, \"\\u0120PAR\": 29463, \"\\u0120Miy\": 29464, \"\\u0120counterfe\": 29465, \"lene\": 29466, \"\\u0120contenders\": 29467, \"daily\": 29468, \"\\u0120Asc\": 29469, \"\\u0120Phillip\": 29470, \"mostly\": 29471, \"\\u0120filename\": 29472, \"hene\": 29473, \"\\u0120resembling\": 29474, \"\\u0120staging\": 29475, \"\\u0120Chloe\": 29476, \"\\u0120wiring\": 29477, \"Hon\": 29478, \"\\u0120Renew\": 29479, \"ottage\": 29480, \"\\u0120Hybrid\": 29481, \"much\": 29482, \"\\u0120strokes\": 29483, \"\\u0120policymakers\": 29484, \"APTER\": 29485, \"\\u0120Arkham\": 29486, \"plot\": 29487, \"\\u0120assistants\": 29488, \"\\u0120deport\": 29489, \"\\u0120Sega\": 29490, \"\\u0120influenza\": 29491, \"\\u0120Cursed\": 29492, \"\\u0120Kobe\": 29493, \"\\u0120skinny\": 29494, \"Provider\": 29495, \"\\u0120Rip\": 29496, \"\\u0120incremental\": 29497, \"products\": 29498, \"BF\": 29499, \"\\u0120dome\": 29500, \"\\u0120Credits\": 29501, \"\\u0120losers\": 29502, \"ints\": 29503, \"\\u0120Betty\": 29504, \"\\u0120Talent\": 29505, \"\\u0120DAM\": 29506, \"Lv\": 29507, \"Ess\": 29508, \"\\u0120dens\": 29509, \"temp\": 29510, \"Judge\": 29511, \"odic\": 29512, \"\\u0120'(\": 29513, \"URES\": 29514, \"etsk\": 29515, \"VO\": 29516, \"\\u0120retrieved\": 29517, \"\\u0120architects\": 29518, \"\\u00d9\\u0129\": 29519, \"\\u0120ethic\": 29520, \"\\u0120Secondary\": 29521, \"stocks\": 29522, \"adia\": 29523, \"\\u0120325\": 29524, \"\\u0120Opinion\": 29525, \"\\u0120simultaneous\": 29526, \"\\u0120dizz\": 29527, \"ulp\": 29528, \"\\u0120smuggling\": 29529, \"ippery\": 29530, \"Random\": 29531, \"facing\": 29532, \"\\u0120Das\": 29533, \"\\u0120stockp\": 29534, \"\\u0120disclosures\": 29535, \"pointer\": 29536, \"\\u0120coral\": 29537, \"\\u0120Selection\": 29538, \"\\u0120Pike\": 29539, \"ivalent\": 29540, \"\\u0120ruthless\": 29541, \"\\u0120Rim\": 29542, \"\\u0120ensuing\": 29543, \"\\u0120Experiment\": 29544, \"\\u0120congressman\": 29545, \"\\u0120believer\": 29546, \"\\u0120unspecified\": 29547, \"\\u0120Mord\": 29548, \"\\u0120knowledgeable\": 29549, \"\\u0120VERY\": 29550, \"TX\": 29551, \"\\u0120straps\": 29552, \"\\u0120turf\": 29553, \"apeshifter\": 29554, \"\\u0120marital\": 29555, \"\\u0120flock\": 29556, \"\\u00e3\\u0123\\u0128\": 29557, \"263\": 29558, \"AMES\": 29559, \"\\u0120Opposition\": 29560, \"\\u0120treasures\": 29561, \"\\u0120GOD\": 29562, \"\\u0120modeled\": 29563, \"\\u0120WORLD\": 29564, \"\\u0120([\": 29565, \"\\u0120Usage\": 29566, \"HF\": 29567, \"\\u0120$(\": 29568, \"ussed\": 29569, \"\\u0120pioneer\": 29570, \"Eight\": 29571, \"parse\": 29572, \"bread\": 29573, \"ritz\": 29574, \"\\u0120Miranda\": 29575, \"\\u0120Kant\": 29576, \"++)\": 29577, \"oren\": 29578, \"\\u0120provoked\": 29579, \"\\u0120breeds\": 29580, \"\\u0120Includes\": 29581, \"\\u0120Pastebin\": 29582, \"\\u0120Flip\": 29583, \"Java\": 29584, \"\\u0120brink\": 29585, \"\\u0120rumored\": 29586, \"\\u0120unseen\": 29587, \"\\u0120garnered\": 29588, \"\\u0120Defin\": 29589, \"alted\": 29590, \"\\u0120tattoos\": 29591, \"\\u0120hesitation\": 29592, \"isitions\": 29593, \"\\u0120Weaver\": 29594, \"\\u0120Reporting\": 29595, \"\\u0120therapies\": 29596, \"\\u0120consultants\": 29597, \"\\u0120residual\": 29598, \"\\u0120Mali\": 29599, \"\\u0120Roma\": 29600, \"iago\": 29601, \"\\u0120Residents\": 29602, \"ubi\": 29603, \"\\u0120remedies\": 29604, \"\\u0120adaptive\": 29605, \"\\u0120Alive\": 29606, \"\\u0120Barcl\": 29607, \"\\u0120wallets\": 29608, \"crypt\": 29609, \"etermination\": 29610, \"\\u0120Pelosi\": 29611, \"\\u0120slipping\": 29612, \"otonin\": 29613, \"\\u0120alliances\": 29614, \"patrick\": 29615, \"iris\": 29616, \"\\u0120orth\": 29617, \"\\u0120Perkins\": 29618, \"\\u0120DeV\": 29619, \"\\u0120Gets\": 29620, \"\\u0120drying\": 29621, \"gee\": 29622, \"forest\": 29623, \"\\u0120Forget\": 29624, \"orem\": 29625, \"339\": 29626, \"\\u0120vaguely\": 29627, \"\\u0120Dion\": 29628, \"\\u0120Porn\": 29629, \"\\u0120HOW\": 29630, \"\\u0120pneum\": 29631, \"\\u0120rubble\": 29632, \"\\u0120Taste\": 29633, \"encia\": 29634, \"\\u0120Gel\": 29635, \"\\u0120dst\": 29636, \"\\u0120245\": 29637, \"\\u0120Morocco\": 29638, \"inflamm\": 29639, \"\\u0120Twins\": 29640, \"\\u0120bots\": 29641, \"daughter\": 29642, \"\\u0120Balk\": 29643, \"\\u0120brethren\": 29644, \"\\u0120logos\": 29645, \"\\u0120gobl\": 29646, \"fps\": 29647, \"\\u0120subdivision\": 29648, \"\\u0120pawn\": 29649, \"\\u0120squeezed\": 29650, \"\\u0120morale\": 29651, \"\\u0120DW\": 29652, \"'\\\"\": 29653, \"\\u0120knot\": 29654, \"ooky\": 29655, \"\\u0120divisive\": 29656, \"\\u0120boosted\": 29657, \"chy\": 29658, \"\\u00e3\\u0125\\u0132\": 29659, \"ifact\": 29660, \"\\u0120newcomers\": 29661, \"\\u0120Wrestling\": 29662, \"\\u0120scouts\": 29663, \"wolves\": 29664, \"Rat\": 29665, \"\\u0120nineteenth\": 29666, \"\\u0120Osborne\": 29667, \"Stats\": 29668, \"\\u0120empowered\": 29669, \"\\u0120psychopath\": 29670, \"\\u0120OEM\": 29671, \"uggage\": 29672, \"\\u0120PK\": 29673, \"\\u0120Mohammad\": 29674, \"Pak\": 29675, \"\\u0120anarchists\": 29676, \"\\u0120Extract\": 29677, \"esthes\": 29678, \"\\u0120Stockholm\": 29679, \"loo\": 29680, \"\\u0120Graph\": 29681, \"\\u0120deploying\": 29682, \"\\u0120Stranger\": 29683, \"\\u0120Mold\": 29684, \"\\u0120staffer\": 29685, \"\\u0120discounted\": 29686, \"uckle\": 29687, \"please\": 29688, \"\\u0120Landing\": 29689, \"\\u00c3\\u0143a\": 29690, \"\\u0120193\": 29691, \"\\u0120ante\": 29692, \"\\u0120repetition\": 29693, \"\\u0120+/-\": 29694, \"\\u0120parody\": 29695, \"\\u0120lively\": 29696, \"AAA\": 29697, \"\\u0120Horus\": 29698, \"\\u0120pits\": 29699, \"inders\": 29700, \"LOC\": 29701, \"\\u0120Venice\": 29702, \"406\": 29703, \"\\u0120Discover\": 29704, \"\\u00e2\\u0128\": 29705, \"ellectual\": 29706, \"\\u0120pens\": 29707, \"\\u0120eyel\": 29708, \"iguous\": 29709, \"Impl\": 29710, \"\\u0120joking\": 29711, \"\\u0120inval\": 29712, \"\\u0120Belfast\": 29713, \"\\u0120creditors\": 29714, \"\\u0120Skywalker\": 29715, \"ovsky\": 29716, \"\\u0120ceasefire\": 29717, \"\\u0120seals\": 29718, \"isoft\": 29719, \")).\": 29720, \"\\u0120Felix\": 29721, \"ITS\": 29722, \"\\u0120tresp\": 29723, \"\\u0120Blockchain\": 29724, \"eware\": 29725, \"\\u0120Schwar\": 29726, \"enne\": 29727, \"mounted\": 29728, \"\\u0120Beacon\": 29729, \"lesh\": 29730, \"\\u0120immensely\": 29731, \"\\u0120cheering\": 29732, \"Employ\": 29733, \"scene\": 29734, \"ishly\": 29735, \"atchewan\": 29736, \"\\u0120Nicolas\": 29737, \"\\u0120drained\": 29738, \"\\u0120Exit\": 29739, \"\\u0120Azerb\": 29740, \"jun\": 29741, \"\\u0120floated\": 29742, \"uania\": 29743, \"Deep\": 29744, \"\\u0120superv\": 29745, \"\\u0120mystical\": 29746, \"\\u0120Dollar\": 29747, \"\\u0120Apostle\": 29748, \"\\u0120REL\": 29749, \"\\u0120Provided\": 29750, \"\\u0120Bucks\": 29751, \"\\u00e3\\u0125\\u00b4\": 29752, \"cutting\": 29753, \"\\u0120enhancements\": 29754, \"\\u0120Penguins\": 29755, \"\\u0120Isaiah\": 29756, \"\\u0120jerk\": 29757, \"\\u0120Wyn\": 29758, \"\\u0120stalled\": 29759, \"\\u0120cryptocurrencies\": 29760, \"\\u0120Roland\": 29761, \"single\": 29762, \"\\u0120lumin\": 29763, \"\\u0120Fellow\": 29764, \"\\u0120Capacity\": 29765, \"\\u0120Kazakh\": 29766, \"WN\": 29767, \"\\u0120financed\": 29768, \"389\": 29769, \"\\u0120tid\": 29770, \"\\u0120collusion\": 29771, \"\\u0120Myr\": 29772, \"\\u00ee\\u0122\": 29773, \"Senator\": 29774, \"\\u0120pediatric\": 29775, \"\\u0120neatly\": 29776, \"\\u0120sandwiches\": 29777, \"\\u0120Architecture\": 29778, \"\\u0120tucked\": 29779, \"\\u0120balcony\": 29780, \"\\u0120earthquakes\": 29781, \"quire\": 29782, \"Future\": 29783, \"\\u0120hefty\": 29784, \"\\u00e9\\u0139\": 29785, \"\\u0120specializes\": 29786, \"\\u0120stresses\": 29787, \"\\u0120sender\": 29788, \"\\u0120misunderstanding\": 29789, \"\\u0120epile\": 29790, \"\\u0120provoke\": 29791, \"\\u0120Colors\": 29792, \"\\u0120dismay\": 29793, \"uko\": 29794, \"[_\": 29795, \"586\": 29796, \"neutral\": 29797, \"\\u0120donating\": 29798, \"\\u0120Randall\": 29799, \"Multi\": 29800, \"\\u0120conveniently\": 29801, \"\\u0120Sung\": 29802, \"\\u0120Coca\": 29803, \"\\u0120tents\": 29804, \"\\u0120Acceler\": 29805, \"\\u0120partnered\": 29806, \"272\": 29807, \"irming\": 29808, \"\\u0120BAS\": 29809, \"sometimes\": 29810, \"\\u0120objected\": 29811, \"ubric\": 29812, \"posed\": 29813, \"LCS\": 29814, \"grass\": 29815, \"\\u0120attributable\": 29816, \"VIS\": 29817, \"Israeli\": 29818, \"\\u0120repeats\": 29819, \"\\u0120RM\": 29820, \"vag\": 29821, \"uta\": 29822, \"inous\": 29823, \"\\u0120inert\": 29824, \"\\u0120Miguel\": 29825, \"\\u00e6\\u0143\": 29826, \"\\u0120Hawaiian\": 29827, \"Board\": 29828, \"\\u0120artific\": 29829, \"\\u0120Azerbai\": 29830, \"asio\": 29831, \"\\u0120Rent\": 29832, \"AIN\": 29833, \"\\u0120appliances\": 29834, \"\\u0120nationality\": 29835, \"\\u0120asshole\": 29836, \"\\u0120Neb\": 29837, \"\\u0120notch\": 29838, \"hani\": 29839, \"\\u0120Bride\": 29840, \"Availability\": 29841, \"\\u0120intercepted\": 29842, \"\\u0120continental\": 29843, \"\\u0120swelling\": 29844, \"\\u0120Perspect\": 29845, \"bies\": 29846, \".<\": 29847, \"ithmetic\": 29848, \"\\u0120Lara\": 29849, \"\\u0120tempting\": 29850, \"addr\": 29851, \"\\u0120overseeing\": 29852, \"clad\": 29853, \"\\u0120DV\": 29854, \"\\u0120Gingrich\": 29855, \"\\u0120mun\": 29856, \"\\u0120Appropri\": 29857, \"\\u0120alterations\": 29858, \"\\u0120Patreon\": 29859, \"\\u0120havoc\": 29860, \"\\u0120disciplines\": 29861, \"\\u0120notoriously\": 29862, \"akuya\": 29863, \"ieri\": 29864, \"?).\": 29865, \"\\u0120Went\": 29866, \"\\u0120silicon\": 29867, \"\\u0120tremb\": 29868, \"Container\": 29869, \"Known\": 29870, \"\\u0120mortar\": 29871, \"este\": 29872, \"icka\": 29873, \"Arthur\": 29874, \"\\u0120Previously\": 29875, \"\\u0120Marty\": 29876, \"\\u0120sparse\": 29877, \"gins\": 29878, \"\\u0120inward\": 29879, \"\\u0120Participant\": 29880, \"Copy\": 29881, \"\\u0120Misc\": 29882, \"\\u0120antibiotic\": 29883, \"\\u0120Retro\": 29884, \"\\u0120elusive\": 29885, \"\\u0120assail\": 29886, \"\\u0120Battalion\": 29887, \"\\u0120Bought\": 29888, \"\\u0120diminish\": 29889, \"\\u0120Europa\": 29890, \"session\": 29891, \"\\u0120Dangerous\": 29892, \"iesel\": 29893, \"\\u0120disbelief\": 29894, \"\\u0120blasts\": 29895, \"extreme\": 29896, \"\\u0120Boyd\": 29897, \"\\u0120Projects\": 29898, \"\\u0120Guys\": 29899, \"\\u0120undergone\": 29900, \"\\u0120grill\": 29901, \"\\u0120Dwight\": 29902, \"\\u0120197\": 29903, \"USER\": 29904, \"\\u0120filesystem\": 29905, \"\\u0120clocks\": 29906, \"Taylor\": 29907, \"\\u0120wrapper\": 29908, \"\\u0120folding\": 29909, \"ousand\": 29910, \"\\u0120Philippine\": 29911, \"ATIONAL\": 29912, \"\\u0120Perth\": 29913, \"\\u0120ashes\": 29914, \"\\u0120accumulate\": 29915, \"\\u0120Gateway\": 29916, \"Shop\": 29917, \"orkshire\": 29918, \"Han\": 29919, \"\\u0120Barrel\": 29920, \"\\u0120Leh\": 29921, \"\\u0120XV\": 29922, \"\\u0120whim\": 29923, \"\\u0120repo\": 29924, \"\\u0120CG\": 29925, \"\\u0120Mam\": 29926, \"\\u0120incorporating\": 29927, \"\\u0120bailout\": 29928, \"\\u0120linguistic\": 29929, \"\\u0120disinteg\": 29930, \"CLE\": 29931, \"\\u0120cinematic\": 29932, \"\\u0120Fiber\": 29933, \"Syn\": 29934, \"ilion\": 29935, \"\\u0120Compos\": 29936, \"chens\": 29937, \"\\u0120neoc\": 29938, \"\\u0120boiled\": 29939, \"FINE\": 29940, \"ono\": 29941, \"uncle\": 29942, \"iken\": 29943, \"\\u0120BM\": 29944, \"\\u00ce\\u00b9\": 29945, \"\\u0120receipts\": 29946, \"\\u0120disposed\": 29947, \"\\u0120Thirty\": 29948, \"\\u0120Rough\": 29949, \"\\u0120ABS\": 29950, \"\\u0120notwithstanding\": 29951, \"ollen\": 29952, \"#$\": 29953, \"\\u0120unreliable\": 29954, \"\\u0120bloom\": 29955, \"\\u0120mediocre\": 29956, \"\\u0120tram\": 29957, \"\\u0120Tasman\": 29958, \"\\u0120shakes\": 29959, \"\\u0120manifesto\": 29960, \"\\u0120MW\": 29961, \"\\u0120satisfactory\": 29962, \"\\u0120shores\": 29963, \"\\u0120computation\": 29964, \"\\u0120assertions\": 29965, \"ormons\": 29966, \"arag\": 29967, \"abit\": 29968, \"Democrats\": 29969, \"\\u0120Loot\": 29970, \"\\u0120Volks\": 29971, \"haired\": 29972, \"\\u0120gravitational\": 29973, \"Sing\": 29974, \"\\u0120Miz\": 29975, \"\\u0120throttle\": 29976, \"\\u0120tyranny\": 29977, \"\\u0120Views\": 29978, \"\\u0120robber\": 29979, \"\\u0120Minority\": 29980, \"\\u0120shrine\": 29981, \"scope\": 29982, \"purpose\": 29983, \"\\u0120nucleus\": 29984, \"ourcing\": 29985, \"\\u0120USDA\": 29986, \"\\u0120DHS\": 29987, \"wra\": 29988, \"\\u0120Bowie\": 29989, \"Scale\": 29990, \"\\u0120BEL\": 29991, \"xi\": 29992, \"Iter\": 29993, \"\\u0120(),\": 29994, \"wright\": 29995, \"\\u0120sailors\": 29996, \"oused\": 29997, \"NASA\": 29998, \"\\u0120Proof\": 29999, \"\\u0120Mineral\": 30000, \"token\": 30001, \"\\u0120FD\": 30002, \"Rew\": 30003, \"\\u0120ell\": 30004, \"630\": 30005, \"\\u0120chancellor\": 30006, \"\\u0120Gos\": 30007, \"\\u0120amounted\": 30008, \"\\u0120Recre\": 30009, \"omez\": 30010, \"\\u0120Optim\": 30011, \"\\u0120Olive\": 30012, \"\\u0120tracker\": 30013, \"owler\": 30014, \"\\u0120Unique\": 30015, \"Root\": 30016, \"\\u0120maritime\": 30017, \"\\u0120Quran\": 30018, \"\\u0120Adapt\": 30019, \"\\u0120ecosystems\": 30020, \"\\u0120Repeat\": 30021, \"\\u0120Soy\": 30022, \"\\u0120IMP\": 30023, \"\\u0120graduating\": 30024, \"andem\": 30025, \"Pur\": 30026, \"\\u0120Reset\": 30027, \"\\u0120Trick\": 30028, \"\\u0120Philly\": 30029, \"\\u0120Tue\": 30030, \"\\u0120Malaysian\": 30031, \"\\u0120climax\": 30032, \"\\u0120bury\": 30033, \"\\u0120conspic\": 30034, \"\\u0120Southampton\": 30035, \"\\u0120Flowers\": 30036, \"\\u0120escorted\": 30037, \"\\u0120Educational\": 30038, \"\\u0120IRC\": 30039, \"\\u0120brutally\": 30040, \"eating\": 30041, \"\\u0120pillar\": 30042, \"\\u0120Sang\": 30043, \"\\u0120Jude\": 30044, \"arling\": 30045, \"\\u0120Amnesty\": 30046, \"\\u0120reminding\": 30047, \"\\u0120Administrative\": 30048, \"hesda\": 30049, \"\\u0120flashed\": 30050, \"\\u0120PBS\": 30051, \"perate\": 30052, \"feature\": 30053, \"\\u0120swipe\": 30054, \"\\u0120graves\": 30055, \"oultry\": 30056, \"261\": 30057, \"breaks\": 30058, \"\\u0120Guer\": 30059, \"\\u0120shrimp\": 30060, \"\\u0120Voting\": 30061, \"quist\": 30062, \"\\u0120analytical\": 30063, \"\\u0120tablespoons\": 30064, \"\\u0120SOU\": 30065, \"\\u0120researched\": 30066, \"\\u0120disrupted\": 30067, \"\\u0120jour\": 30068, \"\\u0120replica\": 30069, \"\\u0120cartoons\": 30070, \"bians\": 30071, \"})\": 30072, \"copy\": 30073, \"Got\": 30074, \"ouched\": 30075, \"PUT\": 30076, \"\\u0120swarm\": 30077, \"notations\": 30078, \"said\": 30079, \"\\u0120rebuilt\": 30080, \"\\u0120collaborate\": 30081, \"\\u0120raging\": 30082, \"\\u0120nar\": 30083, \"\\u0120demographics\": 30084, \"\\u0120DDR\": 30085, \"\\u0120distrust\": 30086, \"ossier\": 30087, \"\\u0120Kro\": 30088, \"\\u0120pumpkin\": 30089, \"\\u0120regrets\": 30090, \"\\u0120fatalities\": 30091, \"\\u0120Lens\": 30092, \"\\u0120Ole\": 30093, \"pd\": 30094, \"\\u0120puppet\": 30095, \"\\u0120Outlook\": 30096, \"\\u0120Stam\": 30097, \"Ol\": 30098, \"Fair\": 30099, \"UU\": 30100, \"\\u0120rewritten\": 30101, \"\\u00c4\\u00b1\": 30102, \"\\u0120fascinated\": 30103, \"\\u0120vectors\": 30104, \"\\u0120tribunal\": 30105, \"uay\": 30106, \"\\u0120Mats\": 30107, \"\\u0120Coins\": 30108, \"[[\": 30109, \"\\u0120181\": 30110, \"\\u0120renders\": 30111, \"\\u0120Kaepernick\": 30112, \"\\u0120espionage\": 30113, \"\\u0120summ\": 30114, \"\\u0120ditch\": 30115, \"Account\": 30116, \"\\u0120spreadsheet\": 30117, \"\\u0120mutant\": 30118, \"past\": 30119, \"407\": 30120, \"\\u0120dye\": 30121, \"\\u0120initiation\": 30122, \"\\u01204000\": 30123, \"\\u0120punishable\": 30124, \"\\u0120thinner\": 30125, \"\\u0120Khal\": 30126, \"\\u0120intermedi\": 30127, \"Dun\": 30128, \"\\u0120Gotham\": 30129, \"\\u0120eagerly\": 30130, \"\\u0120vaginal\": 30131, \"powers\": 30132, \"VW\": 30133, \"\\u0120WATCHED\": 30134, \"\\u0120predator\": 30135, \"amsung\": 30136, \"\\u0120disparity\": 30137, \"\\u0120[*\": 30138, \"\\u0120amph\": 30139, \"\\u0120outskirts\": 30140, \"\\u0120Spirits\": 30141, \"\\u0120skeletal\": 30142, \"\\u00d0\\u00bb\": 30143, \"\\u0120Rear\": 30144, \"\\u0120issuance\": 30145, \"\\u0120Logic\": 30146, \"released\": 30147, \"ZZ\": 30148, \"\\u0120Bound\": 30149, \"Entry\": 30150, \"\\u0120exits\": 30151, \"isol\": 30152, \"\\u0120Founder\": 30153, \"\\u0120wre\": 30154, \"\\u0120Greenland\": 30155, \"\\u0120MMO\": 30156, \"taker\": 30157, \"INC\": 30158, \"\\u00e3\\u0123\\u00be\": 30159, \"\\u0120hourly\": 30160, \"henko\": 30161, \"\\u0120fantasies\": 30162, \"\\u0120disob\": 30163, \"\\u0120demolition\": 30164, \"\\u00e3\\u0125\\u012d\": 30165, \"\\u0120enlisted\": 30166, \"ratulations\": 30167, \"\\u0120misguided\": 30168, \"\\u0120ensured\": 30169, \"\\u0120discouraged\": 30170, \"mort\": 30171, \"\\u0120flank\": 30172, \"\\u0120cess\": 30173, \"\\u0120reacts\": 30174, \"\\u0120Sere\": 30175, \"sensitive\": 30176, \"\\u0120Serpent\": 30177, \"assad\": 30178, \"\\u0120247\": 30179, \"\\u0120calmly\": 30180, \"busters\": 30181, \"\\u0120bleed\": 30182, \"\\u0120Stro\": 30183, \"\\u0120amusement\": 30184, \"\\u0120Antarctica\": 30185, \"\\u0120scept\": 30186, \"\\u0120Gaw\": 30187, \"aq\": 30188, \"asonic\": 30189, \"\\u0120sprawling\": 30190, \"native\": 30191, \"aturated\": 30192, \"\\u0120Battlefield\": 30193, \"IVERS\": 30194, \"EB\": 30195, \"\\u0120Gems\": 30196, \"\\u0120Northwestern\": 30197, \"\\u0120Films\": 30198, \"\\u0120Automatic\": 30199, \"\\u0120apprehend\": 30200, \"\\u00e3\\u0123\\u00a8\": 30201, \"\\u0120guiName\": 30202, \"\\u0120backend\": 30203, \"\\u0120evidenced\": 30204, \"geant\": 30205, \"012\": 30206, \"\\u0120Siege\": 30207, \"\\u0120externalTo\": 30208, \"\\u0120unfocusedRange\": 30209, \"\\u0120guiActiveUnfocused\": 30210, \"\\u0120guiIcon\": 30211, \"\\u0120externalToEVA\": 30212, \"\\u0120externalToEVAOnly\": 30213, \"Fri\": 30214, \"chard\": 30215, \"enaries\": 30216, \"\\u0120chiefs\": 30217, \"\\u0120cf\": 30218, \"\\u0120HUD\": 30219, \"\\u0120corrobor\": 30220, \"\\u0120dB\": 30221, \"\\u0120Taken\": 30222, \"\\u0120Patricia\": 30223, \"rail\": 30224, \"\\u0120Charm\": 30225, \"\\u0120Libertarian\": 30226, \"rieve\": 30227, \"Personal\": 30228, \"\\u0120OUR\": 30229, \"geries\": 30230, \"\\u0120dumping\": 30231, \"\\u0120neurological\": 30232, \"itimate\": 30233, \"\\u0120Clintons\": 30234, \"rafted\": 30235, \"\\u0120Molly\": 30236, \"\\u0120terminals\": 30237, \"register\": 30238, \"\\u0120flare\": 30239, \"\\u0120encoded\": 30240, \"\\u0120autopsy\": 30241, \"pel\": 30242, \"machine\": 30243, \"\\u0120exemptions\": 30244, \"\\u0120Royals\": 30245, \"distance\": 30246, \"\\u0120drafts\": 30247, \"\\u0120lame\": 30248, \"\\u0120Cunning\": 30249, \"\\u0120spouses\": 30250, \"\\u0120Markets\": 30251, \"\\u0120Carrier\": 30252, \"\\u0120implying\": 30253, \"\\u0120Yak\": 30254, \"sid\": 30255, \"\\u0120loser\": 30256, \"\\u0120vigilant\": 30257, \"\\u0120impeachment\": 30258, \"\\u0120augmented\": 30259, \"\\u0120Employees\": 30260, \"\\u0120unintended\": 30261, \"ternally\": 30262, \"\\u0120Watt\": 30263, \"\\u0120recognizable\": 30264, \"essim\": 30265, \"\\u00e6\\u013f\": 30266, \"\\u0120coated\": 30267, \"rha\": 30268, \"\\u0120lieutenant\": 30269, \"\\u0120Legislation\": 30270, \"published\": 30271, \"444\": 30272, \"013\": 30273, \"\\u0120ideally\": 30274, \"\\u0120Password\": 30275, \"\\u0120simplify\": 30276, \"\\u0120Meta\": 30277, \"\\u0120MRI\": 30278, \"\\u0120pleading\": 30279, \"organized\": 30280, \"handler\": 30281, \"\\u0120unravel\": 30282, \"correct\": 30283, \"\\u0120icy\": 30284, \"\\u0120paranoid\": 30285, \"\\u0120passer\": 30286, \"\\u0120inspections\": 30287, \"ofer\": 30288, \"\\u0120Healthcare\": 30289, \"283\": 30290, \"\\u0120Brut\": 30291, \"iola\": 30292, \"forge\": 30293, \"\\u0120Medieval\": 30294, \"MSN\": 30295, \"ievers\": 30296, \"\\u0120Programming\": 30297, \"\\u00e5\\u012b\": 30298, \"\\u0120223\": 30299, \"mu\": 30300, \"\\u0120CLE\": 30301, \"uga\": 30302, \"\\u0120shoppers\": 30303, \"\\u0120informative\": 30304, \"\\u0120Plans\": 30305, \"\\u0120supplementation\": 30306, \"\\u0120Tests\": 30307, \"tyard\": 30308, \"ocytes\": 30309, \"\\u0120Vega\": 30310, \"\\u0120Gujarat\": 30311, \"ermanent\": 30312, \"Except\": 30313, \"\\u0120LOT\": 30314, \"alla\": 30315, \"\\u0120Cumm\": 30316, \"\\u0120Osw\": 30317, \"\\u0120venom\": 30318, \"\\u0120Debt\": 30319, \"\\u0120DOWN\": 30320, \"\\u0120reunion\": 30321, \"\\u0120muc\": 30322, \"\\u0120Relief\": 30323, \"\\u0120geop\": 30324, \"\\u0120\\u00f0\\u0141\\u013a\": 30325, \"alogue\": 30326, \"Anth\": 30327, \"echo\": 30328, \"\\u0120corros\": 30329, \"\\u0120replication\": 30330, \"\\u0120Blazing\": 30331, \"\\u0120Daughter\": 30332, \"\\u0120inflic\": 30333, \"\\u0120Lindsey\": 30334, \"\\u00d9\\u012a\": 30335, \"284\": 30336, \"Exit\": 30337, \"\\u0120gloom\": 30338, \"TAIN\": 30339, \"\\u0120undermining\": 30340, \"\\u0120advising\": 30341, \"hidden\": 30342, \"\\u0120overflow\": 30343, \"\\u0120gor\": 30344, \"urdue\": 30345, \"\\u0120echoes\": 30346, \"enhagen\": 30347, \"\\u0120impuls\": 30348, \"drug\": 30349, \"cash\": 30350, \"\\u0120async\": 30351, \"\\u0120mirac\": 30352, \"atts\": 30353, \"punk\": 30354, \"\\u0120pivot\": 30355, \"\\u0120Legislative\": 30356, \"\\u0120bloggers\": 30357, \"\\u0120Claw\": 30358, \"sburg\": 30359, \"dyl\": 30360, \"\\u0120Recommend\": 30361, \"\\u0120verte\": 30362, \"\\u0120prohibiting\": 30363, \"\\u0120Panther\": 30364, \"Jonathan\": 30365, \"\\u0120omin\": 30366, \"\\u0120hateful\": 30367, \"281\": 30368, \"\\u0120Orche\": 30369, \"\\u0120Murdoch\": 30370, \"downs\": 30371, \"\\u0120asymm\": 30372, \"GER\": 30373, \"Always\": 30374, \"\\u0120informs\": 30375, \"\\u0120WM\": 30376, \"\\u0120Pony\": 30377, \"\\u0120Appendix\": 30378, \"\\u0120Arlington\": 30379, \"Jam\": 30380, \"\\u0120medicinal\": 30381, \"\\u0120Slam\": 30382, \"ITIES\": 30383, \"\\u0120reaff\": 30384, \"\\u0120Ri\": 30385, \"FG\": 30386, \"Spring\": 30387, \"bool\": 30388, \"\\u0120thighs\": 30389, \"\\u0120markings\": 30390, \"\\u0120Raqqa\": 30391, \"\\u0120Lak\": 30392, \"poll\": 30393, \"tsky\": 30394, \"\\u0120Morty\": 30395, \"\\u0120Definition\": 30396, \"\\u0120debunk\": 30397, \"endered\": 30398, \"\\u0120Leone\": 30399, \"avers\": 30400, \"\\u0120mortgages\": 30401, \"Apparently\": 30402, \"Nic\": 30403, \"haus\": 30404, \"\\u0120Thousands\": 30405, \"auld\": 30406, \"\\u0120mash\": 30407, \"shoot\": 30408, \"\\u0120diarr\": 30409, \"\\u0120consciously\": 30410, \"Hero\": 30411, \"eas\": 30412, \"\\u0120Naturally\": 30413, \"\\u0120Destroyer\": 30414, \"\\u0120dashboard\": 30415, \"services\": 30416, \"Rog\": 30417, \"\\u0120millennials\": 30418, \"\\u0120invade\": 30419, \"-(\": 30420, \"\\u0120commissions\": 30421, \"\\u0120Auckland\": 30422, \"\\u0120broadcasts\": 30423, \"\\u0120frontal\": 30424, \"\\u0120crank\": 30425, \"\\u0120Historic\": 30426, \"\\u0120rumours\": 30427, \"CTV\": 30428, \"\\u0120steril\": 30429, \"\\u0120booster\": 30430, \"rocket\": 30431, \"\\u00e3\\u0124\\u00bc\": 30432, \"utsche\": 30433, \"\\u0120PI\": 30434, \"\\u0120233\": 30435, \"\\u0120Producer\": 30436, \"\\u0120Analytics\": 30437, \"\\u0120invaluable\": 30438, \"\\u0120unintention\": 30439, \"\\u0120CY\": 30440, \"\\u0120scrutin\": 30441, \"\\u0120gigg\": 30442, \"\\u0120engulf\": 30443, \"\\u0120proletariat\": 30444, \"\\u0120hacks\": 30445, \"\\u0120Hew\": 30446, \"arak\": 30447, \"\\u0120Slime\": 30448, \"ielding\": 30449, \"agher\": 30450, \"\\u0120Elliot\": 30451, \"\\u0120telecom\": 30452, \"\\u0120219\": 30453, \"ultan\": 30454, \"\\u0120Arbor\": 30455, \"\\u0120Scouts\": 30456, \"Ban\": 30457, \"\\u0120lifespan\": 30458, \"\\u0120blasp\": 30459, \"388\": 30460, \"\\u0120judiciary\": 30461, \"\\u0120Continental\": 30462, \"asking\": 30463, \"McC\": 30464, \"LED\": 30465, \"\\u0120baggage\": 30466, \"\\u0120Sorcerer\": 30467, \"\\u0120remnants\": 30468, \"\\u0120Griffith\": 30469, \"etsu\": 30470, \"\\u0120Subaru\": 30471, \"\\u0120Personality\": 30472, \"designed\": 30473, \"ushima\": 30474, \"agnar\": 30475, \"\\u0120recoil\": 30476, \"\\u0120passions\": 30477, \"\\\\\\\":\": 30478, \"\\u0120tee\": 30479, \"\\u0120abolition\": 30480, \"\\u0120Creating\": 30481, \"jac\": 30482, \"\\u0120194\": 30483, \"019\": 30484, \"\\u0120pillars\": 30485, \"riched\": 30486, \"/\\\"\": 30487, \"tk\": 30488, \"\\u0120livelihood\": 30489, \"\\u0120roasted\": 30490, \"ahon\": 30491, \"\\u0120Hutch\": 30492, \"assert\": 30493, \"\\u0120dividend\": 30494, \"\\u0120knit\": 30495, \"\\u0120daunting\": 30496, \"\\u0120disturbance\": 30497, \"\\u0120shale\": 30498, \"\\u0120cultivated\": 30499, \"\\u0120refrigerator\": 30500, \"LB\": 30501, \"\\u0120NET\": 30502, \"\\u0120commercials\": 30503, \"\\u0120thinkers\": 30504, \"455\": 30505, \"\\u0120chop\": 30506, \"Broad\": 30507, \"\\u0120suspicions\": 30508, \"\\u0120tagged\": 30509, \"lifting\": 30510, \"\\u0120stylish\": 30511, \"\\u0120Shields\": 30512, \"Shortly\": 30513, \"\\u0120tails\": 30514, \"Auth\": 30515, \"STE\": 30516, \"\\u0120GAME\": 30517, \"\\u0120seism\": 30518, \"\\u0120Kis\": 30519, \"ologne\": 30520, \"\\u0120cowork\": 30521, \"\\u0120forcibly\": 30522, \"\\u0120thyroid\": 30523, \"\\u0120PB\": 30524, \"ANE\": 30525, \"married\": 30526, \"horse\": 30527, \"\\u0120polymer\": 30528, \"\\u0120Chal\": 30529, \"odor\": 30530, \"DEBUG\": 30531, \"\\u0120Context\": 30532, \"\\u0120bliss\": 30533, \"\\u0120pinpoint\": 30534, \"\\u0120Mathemat\": 30535, \"legram\": 30536, \"\\u0120Weekend\": 30537, \"\\u0120labelled\": 30538, \"\\u0120bart\": 30539, \"itles\": 30540, \"\\u0120estrogen\": 30541, \"\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\\u00e2\\u0122\\u0136\": 30542, \"\\\"'\": 30543, \"\\u0120visibly\": 30544, \"\\u0120outsider\": 30545, \"aida\": 30546, \"Area\": 30547, \"\\u0120dissemin\": 30548, \"\\u0120dishonest\": 30549, \"\\u0120Closed\": 30550, \"\\u0120Bulletin\": 30551, \"\\u0120Ramsey\": 30552, \"sword\": 30553, \"\\u0120XI\": 30554, \"ourced\": 30555, \"Same\": 30556, \"346\": 30557, \"\\u0120Repe\": 30558, \"\\u0120Kou\": 30559, \"cake\": 30560, \"emis\": 30561, \"Cache\": 30562, \"\\u0120Meaning\": 30563, \"\\u0120Enlight\": 30564, \"onomy\": 30565, \"\\u0120manifestation\": 30566, \"sworth\": 30567, \"Jay\": 30568, \"\\u0120chore\": 30569, \"\\u00c3\\u00b6r\": 30570, \"Dream\": 30571, \"\\u0120sanctioned\": 30572, \"\\u0120culturally\": 30573, \"\\u0120Ara\": 30574, \"Nav\": 30575, \"\\u0120theological\": 30576, \"\\u0120strut\": 30577, \"\\u0120VO\": 30578, \"\\u0120Handbook\": 30579, \"\\u0120constructing\": 30580, \"\\u0120\\u00c2\\u00b6\": 30581, \"\\u0120Benefits\": 30582, \"\\u0120Psychological\": 30583, \"sac\": 30584, \"\\u00e5\\u00b8\": 30585, \"policy\": 30586, \"\\u0120Matters\": 30587, \"\\u0120Reported\": 30588, \"\\u0120Byte\": 30589, \"\\u0120vitro\": 30590, \"\\u0120Maiden\": 30591, \"\\u0120lam\": 30592, \"\\u0120Jennings\": 30593, \"\\u0120garment\": 30594, \"\\u0120Rutgers\": 30595, \"\\u0120Stafford\": 30596, \"\\u0120Wellington\": 30597, \"\\u0120intermitt\": 30598, \"\\u0120npm\": 30599, \"\\u0120ordeal\": 30600, \"\\u0120plugged\": 30601, \"ooming\": 30602, \"inished\": 30603, \"framework\": 30604, \"\\u0120timber\": 30605, \"\\u0120cass\": 30606, \"\\u0120850\": 30607, \"iless\": 30608, \"\\u0120Redux\": 30609, \"768\": 30610, \"Stre\": 30611, \"\\u0120surpassed\": 30612, \"whel\": 30613, \"\\u0120parallels\": 30614, \"\\u0120veil\": 30615, \"\\u0120GI\": 30616, \"\\u0120REST\": 30617, \"\\u0120readiness\": 30618, \"sort\": 30619, \"\\u0120modifying\": 30620, \"\\u0120Slate\": 30621, \"ruff\": 30622, \"\\u0120marble\": 30623, \"\\u0120infrared\": 30624, \"\\u0120auditor\": 30625, \"\\u0120FANTASY\": 30626, \"\\u0120Poverty\": 30627, \"\\u0120SPD\": 30628, \"\\u0120\\\"(\": 30629, \"Ky\": 30630, \"RAY\": 30631, \"\\u0120executions\": 30632, \"\\u0120Beverly\": 30633, \"\\u0120Marxism\": 30634, \"\\u0120Burst\": 30635, \"\\u0120Kali\": 30636, \"estones\": 30637, \"Clearly\": 30638, \"Ell\": 30639, \"\\u00e3\\u0123\\u00a7\": 30640, \"\\u0120Proceedings\": 30641, \"Token\": 30642, \"IFIC\": 30643, \"\\u00c3\\u00b1a\": 30644, \"Central\": 30645, \"\\u0120Haley\": 30646, \"\\u0120Drama\": 30647, \"\\u0120formations\": 30648, \"ORN\": 30649, \"Books\": 30650, \"\\u0120dominating\": 30651, \"\\u0120Flyers\": 30652, \"\\u0120Companion\": 30653, \"\\u0120disciplined\": 30654, \"\\u0120Yugoslav\": 30655, \"\\u0120Spells\": 30656, \"\\u0120vengeance\": 30657, \"\\u0120landlords\": 30658, \"Len\": 30659, \"\\u0120Ogre\": 30660, \"anoia\": 30661, \"\\u0120piercing\": 30662, \"\\u0120congreg\": 30663, \"\\u0120scorer\": 30664, \"obia\": 30665, \"\\u0120nickel\": 30666, \"\\u0120Learns\": 30667, \"\\u0120rejo\": 30668, \"\\u0120masterpiece\": 30669, \"Flash\": 30670, \"\\u0120inhabited\": 30671, \"\\u0120OpenGL\": 30672, \"\\u0120Dud\": 30673, \"\\u0120ICO\": 30674, \"\\u0120arter\": 30675, \"\\u0120plur\": 30676, \"\\u0120mastery\": 30677, \"\\u0120longstanding\": 30678, \"sted\": 30679, \"\\u0120wines\": 30680, \"\\u0120televised\": 30681, \"\\u0120Shrine\": 30682, \"\\u0120Bayern\": 30683, \"\\u0120\\u00e2\\u0135\\u013a\": 30684, \"\\u0120enclosure\": 30685, \"john\": 30686, \"\\u0120prophets\": 30687, \"\\u0120Resurrection\": 30688, \"\\u0120Orders\": 30689, \"\\u0120uneven\": 30690, \"rals\": 30691, \"\\u0120dwind\": 30692, \"\\u0120Lah\": 30693, \"\\u0120Sloven\": 30694, \"378\": 30695, \"\\u0120insistence\": 30696, \"affle\": 30697, \"\\u0120Clone\": 30698, \"\\u0120hardship\": 30699, \"\\u0120Congressman\": 30700, \"\\u0120plead\": 30701, \"\\u0120reviewers\": 30702, \"\\u0120cured\": 30703, \"\\u01201935\": 30704, \"asley\": 30705, \"fake\": 30706, \"\\u0120Thinking\": 30707, \"ydia\": 30708, \"PART\": 30709, \"\\u0120Dota\": 30710, \"oit\": 30711, \"\\u0120whipped\": 30712, \"\\u0120bouncing\": 30713, \"\\u0120Hispanics\": 30714, \"comings\": 30715, \"\\u0120cannabin\": 30716, \"\\u0120Chambers\": 30717, \"\\u0120Zack\": 30718, \"Optional\": 30719, \"\\u0120coats\": 30720, \"\\u0120prowess\": 30721, \"\\u0120Norton\": 30722, \"\\u0120plainly\": 30723, \"\\u0120freight\": 30724, \"\\u0120inhibition\": 30725, \"\\u0120clam\": 30726, \"\\u0120303\": 30727, \"kef\": 30728, \"aleigh\": 30729, \"Luke\": 30730, \"\\u0120psycho\": 30731, \"atorium\": 30732, \"MED\": 30733, \"\\u0120treaties\": 30734, \"\\u0120indisc\": 30735, \"\\u0120dc\": 30736, \"OPS\": 30737, \"\\u0120resilient\": 30738, \"\\u0120Interstate\": 30739, \"\\u0120slack\": 30740, \"\\u0120mundane\": 30741, \"\\u0120establishes\": 30742, \"359\": 30743, \"\\u0120strained\": 30744, \"\\u0120nond\": 30745, \"Sus\": 30746, \"\\u0120caste\": 30747, \"arate\": 30748, \"ieving\": 30749, \"\\u0120unfairly\": 30750, \"\\u0120parser\": 30751, \"onial\": 30752, \"ursive\": 30753, \"Via\": 30754, \"\\u0120Otto\": 30755, \"\\u0120Authorities\": 30756, \"stroke\": 30757, \"KR\": 30758, \"\\u0120Mercy\": 30759, \"\\u0120furnished\": 30760, \"\\u0120outset\": 30761, \"\\u0120metic\": 30762, \"1982\": 30763, \"olithic\": 30764, \"\\u0120Tent\": 30765, \"ogical\": 30766, \"\\u0120Aircraft\": 30767, \"\\u0120hides\": 30768, \"\\u0120Became\": 30769, \"\\u0120educators\": 30770, \"reaching\": 30771, \"\\u0120volatility\": 30772, \"\\u0120toddler\": 30773, \"\\u0120NASCAR\": 30774, \"\\u0120Twelve\": 30775, \"\\u0120Highlights\": 30776, \"\\u0120grape\": 30777, \"\\u0120splits\": 30778, \"\\u0120peasant\": 30779, \"\\u0120reneg\": 30780, \"\\u0120MSI\": 30781, \"Temp\": 30782, \"stars\": 30783, \"\\u0120trek\": 30784, \"\\u0120Hyde\": 30785, \"binding\": 30786, \"\\u0120realism\": 30787, \"\\u0120oxide\": 30788, \"\\u0120Hos\": 30789, \"\\u0120mounts\": 30790, \"\\u0120biting\": 30791, \"\\u0120collapsing\": 30792, \"\\u0120postal\": 30793, \"\\u0120museums\": 30794, \"\\u0120detached\": 30795, \"\\u0120respecting\": 30796, \"\\u0120monopol\": 30797, \"\\u0120workflow\": 30798, \"\\u0120Cake\": 30799, \"Template\": 30800, \"\\u0120Organisation\": 30801, \"\\u0120persistence\": 30802, \"369\": 30803, \"Coming\": 30804, \"Brad\": 30805, \"\\u0120redundant\": 30806, \"\\u0120GTA\": 30807, \"\\u0120bending\": 30808, \"\\u0120revoked\": 30809, \"\\u0120offending\": 30810, \"\\u0120framing\": 30811, \"\\u0120printf\": 30812, \"Commun\": 30813, \"members\": 30814, \"Outside\": 30815, \"\\u0120construed\": 30816, \"\\u0120coded\": 30817, \"FORE\": 30818, \"\\u0120chast\": 30819, \"Chat\": 30820, \"Indian\": 30821, \"\\u0120Yard\": 30822, \"?!\\\"\": 30823, \"\\u0120Ports\": 30824, \"\\u0120Xavier\": 30825, \"\\u0120RET\": 30826, \"'.\\\"\": 30827, \"\\u0120Boat\": 30828, \"ivated\": 30829, \"icht\": 30830, \"umerable\": 30831, \"Ds\": 30832, \"\\u0120Dunn\": 30833, \"\\u0120coffin\": 30834, \"\\u0120securely\": 30835, \"\\u0120Raptors\": 30836, \"\\u0120Bes\": 30837, \"Installation\": 30838, \"\\u0120inception\": 30839, \"\\u0120Healthy\": 30840, \"endants\": 30841, \"\\u0120psychologists\": 30842, \"\\u0120Sheikh\": 30843, \"cultural\": 30844, \"\\u0120BlackBerry\": 30845, \"shift\": 30846, \"Fred\": 30847, \"oche\": 30848, \"\\u0120cakes\": 30849, \"\\u0120SEO\": 30850, \"\\u0120Gian\": 30851, \"\\u0120Asians\": 30852, \"ogging\": 30853, \"element\": 30854, \"\\u0120pundits\": 30855, \"\\u0120Vaugh\": 30856, \"\\u0120Gavin\": 30857, \"\\u0120hitter\": 30858, \"\\u0120drowned\": 30859, \"\\u0120chalk\": 30860, \"\\u0120Zika\": 30861, \"\\u0120measles\": 30862, \"802\": 30863, \"\\u00e2\\u0122\\u00a6..\": 30864, \"\\u0120AWS\": 30865, \"]\\\"\": 30866, \"\\u0120distort\": 30867, \"\\u0120Mast\": 30868, \"\\u0120antibodies\": 30869, \"\\u0120Mash\": 30870, \"Memory\": 30871, \"\\u0120Uganda\": 30872, \"\\u0120Prob\": 30873, \"\\u0120vomiting\": 30874, \"\\u0120Turns\": 30875, \"\\u0120occupying\": 30876, \"\\u0120evasion\": 30877, \"\\u0120Therapy\": 30878, \"\\u0120promo\": 30879, \"\\u0120electr\": 30880, \"\\u0120blueprint\": 30881, \"\\u0120Dre\": 30882, \"priced\": 30883, \"\\u0120Depot\": 30884, \"\\u0120alleviate\": 30885, \"\\u0120Somali\": 30886, \"marg\": 30887, \"nine\": 30888, \"\\u0120nostalgia\": 30889, \"\\u0120Shepherd\": 30890, \"\\u0120cavalry\": 30891, \"\\u0120torped\": 30892, \"\\u0120Bloody\": 30893, \"xb\": 30894, \"\\u0120sank\": 30895, \"\\u0120goalt\": 30896, \"reportprint\": 30897, \"embedreportprint\": 30898, \"cloneembedreportprint\": 30899, \"\\u0120Initially\": 30900, \"\\u0120Fischer\": 30901, \"\\u0120noteworthy\": 30902, \"cern\": 30903, \"\\u0120inefficient\": 30904, \"rawdownload\": 30905, \"rawdownloadcloneembedreportprint\": 30906, \"cation\": 30907, \"\\u0120Dynasty\": 30908, \"lag\": 30909, \"DES\": 30910, \"\\u0120distinctly\": 30911, \"\\u0120Estonia\": 30912, \"\\u0120openness\": 30913, \"\\u0120gossip\": 30914, \"ruck\": 30915, \"Width\": 30916, \"\\u0120Ibrahim\": 30917, \"\\u0120petroleum\": 30918, \"\\u0120avatar\": 30919, \"\\u0120Hed\": 30920, \"atha\": 30921, \"\\u0120Hogwarts\": 30922, \"\\u0120caves\": 30923, \"678\": 30924, \"\\u0120safeguard\": 30925, \"\\u0120Mog\": 30926, \"isson\": 30927, \"\\u0120Durham\": 30928, \"slaught\": 30929, \"\\u0120Graduate\": 30930, \"\\u0120subconscious\": 30931, \"\\u0120Excellent\": 30932, \"\\u0120Dum\": 30933, \"-----\": 30934, \"\\u0120piles\": 30935, \"\\u0120WORK\": 30936, \"\\u0120Garn\": 30937, \"\\u0120Fol\": 30938, \"\\u0120ATM\": 30939, \"\\u0120avoids\": 30940, \"\\u0120Tul\": 30941, \"\\u0120bleak\": 30942, \"ELY\": 30943, \"ivist\": 30944, \"lightly\": 30945, \"Pers\": 30946, \"\\u0120Dob\": 30947, \"\\u0120LS\": 30948, \"\\u0120insanity\": 30949, \"\\u00ce\\u00b5\": 30950, \"atalie\": 30951, \"Enlarge\": 30952, \"\\u0120twists\": 30953, \"\\u0120faulty\": 30954, \"\\u0120piracy\": 30955, \"\\u0120impover\": 30956, \"\\u0120rugged\": 30957, \"\\u0120Fashion\": 30958, \"\\u0120sands\": 30959, \"'?\": 30960, \"swick\": 30961, \"\\u0120natives\": 30962, \"\\u0120hen\": 30963, \"\\u0120Noise\": 30964, \"\\u00e3\\u0125\\u0139\": 30965, \"\\u0120greens\": 30966, \"\\u0120freezer\": 30967, \"\\u0120dynasty\": 30968, \"\\u0120Fathers\": 30969, \"\\u0120Newark\": 30970, \"\\u0120archaeological\": 30971, \"\\u0120ot\": 30972, \"obar\": 30973, \"\\u0120blockade\": 30974, \"\\u0120allerg\": 30975, \"LV\": 30976, \"\\u0120debit\": 30977, \"\\u0120RFC\": 30978, \"\\u0120Milton\": 30979, \"\\u0120Pressure\": 30980, \"\\u0120willingly\": 30981, \"\\u0120disproportionate\": 30982, \"\\u0120oppressive\": 30983, \"\\u0120diamonds\": 30984, \"\\u0120belongings\": 30985, \"1970\": 30986, \"\\u0120bells\": 30987, \"\\u0120imperialism\": 30988, \"\\u0120227\": 30989, \"\\u0120exploding\": 30990, \"\\u0120Eclipse\": 30991, \"\\u01201919\": 30992, \"\\u0120rant\": 30993, \"\\u0120nominations\": 30994, \"347\": 30995, \"\\u0120peacefully\": 30996, \"rica\": 30997, \"\\u0120FUCK\": 30998, \"\\u0120vibration\": 30999, \"malink\": 31000, \"\\u0120ropes\": 31001, \"\\u0120Ivanka\": 31002, \"\\u0120Brewery\": 31003, \"\\u0120Booker\": 31004, \"\\u0120Owens\": 31005, \"goers\": 31006, \"Services\": 31007, \"\\u0120Snape\": 31008, \"\\u0120191\": 31009, \"395\": 31010, \"\\u0120299\": 31011, \"justice\": 31012, \"\\u0120bri\": 31013, \"\\u0120discs\": 31014, \"\\u0120prominently\": 31015, \"\\u0120vulgar\": 31016, \"\\u0120skipping\": 31017, \"lves\": 31018, \"\\u0120tsunami\": 31019, \"374\": 31020, \"\\u0120Urug\": 31021, \"\\u0120Eid\": 31022, \"recated\": 31023, \"phen\": 31024, \"\\u0120faults\": 31025, \"\\u0120Started\": 31026, \"950\": 31027, \"\\u0120pi\": 31028, \"\\u0120detector\": 31029, \"\\u0120bastard\": 31030, \"\\u0120validated\": 31031, \"SpaceEngineers\": 31032, \"OURCE\": 31033, \"\\u0120(~\": 31034, \"\\u0120unsur\": 31035, \"\\u0120affirmed\": 31036, \"\\u0120fascism\": 31037, \"\\u0120resolving\": 31038, \"\\u0120Chavez\": 31039, \"\\u0120Cyn\": 31040, \"\\u0120detract\": 31041, \"Lost\": 31042, \"\\u0120rigged\": 31043, \"\\u0120homage\": 31044, \"\\u0120Bruno\": 31045, \"555\": 31046, \"eca\": 31047, \"\\u0120presses\": 31048, \"\\u0120humour\": 31049, \"\\u0120spacing\": 31050, \"\\u0120'/\": 31051, \"olkien\": 31052, \"Coun\": 31053, \"OPER\": 31054, \"Tre\": 31055, \"Son\": 31056, \"\\u0120Cambodia\": 31057, \"ierre\": 31058, \"mong\": 31059, \"ozy\": 31060, \"\\u0120liquidity\": 31061, \"\\u0120Soviets\": 31062, \"\\u0120Fernando\": 31063, \"\\u0120229\": 31064, \"\\u0120slug\": 31065, \"\\u0120Catalan\": 31066, \"electric\": 31067, \"\\u0120scenery\": 31068, \"\\u0120Hearth\": 31069, \"\\u0120constrained\": 31070, \"\\u0120goalie\": 31071, \"\\u0120Guidelines\": 31072, \"\\u0120Ammo\": 31073, \"\\u0120Pearson\": 31074, \"\\u0120taxed\": 31075, \"\\u0120fetus\": 31076, \"Response\": 31077, \"\\u0120Alexis\": 31078, \"thia\": 31079, \"Guy\": 31080, \"\\u0120reconstruct\": 31081, \"\\u0120extremes\": 31082, \"\\u0120concluding\": 31083, \"\\u0120Peg\": 31084, \"ooks\": 31085, \"\\u0120deductions\": 31086, \"Rose\": 31087, \"\\u0120groundbreaking\": 31088, \"\\u0120Targ\": 31089, \"\\u00e3\\u0125\\u0123\": 31090, \"\\u0120Reve\": 31091, \"resource\": 31092, \"\\u0120moons\": 31093, \"\\u0120electromagnetic\": 31094, \"\\u0120amidst\": 31095, \"\\u0120Viktor\": 31096, \"NESS\": 31097, \"BACK\": 31098, \"\\u0120commute\": 31099, \"\\u0120Anaheim\": 31100, \"\\u0120fluctuations\": 31101, \"640\": 31102, \"\\u0120noodles\": 31103, \"\\u0120Copenhagen\": 31104, \"\\u0120Tide\": 31105, \"\\u0120Grizz\": 31106, \"\\u0120SEE\": 31107, \"\\u0120pipelines\": 31108, \"\\u0120scars\": 31109, \"endo\": 31110, \"agus\": 31111, \"\\u0120ETF\": 31112, \"/#\": 31113, \"\\u0120Become\": 31114, \"448\": 31115, \"\\u0120visc\": 31116, \"\\u0120Recommended\": 31117, \"\\u0120jumper\": 31118, \"\\u0120cognition\": 31119, \"\\u0120assassin\": 31120, \"\\u0120witnessing\": 31121, \"\\u0120Setup\": 31122, \"\\u0120lac\": 31123, \"vim\": 31124, \"ISM\": 31125, \"pages\": 31126, \"SSL\": 31127, \"358\": 31128, \"\\u0120adject\": 31129, \"industrial\": 31130, \"lore\": 31131, \"chery\": 31132, \"\\u0120glitter\": 31133, \"\\u0120calf\": 31134, \"Florida\": 31135, \"\\u0120spoilers\": 31136, \"\\u0120succeeds\": 31137, \"\\u0120chanting\": 31138, \"\\u0120slogans\": 31139, \"\\u0120Tracy\": 31140, \"Visit\": 31141, \"rology\": 31142, \"\\u0120mornings\": 31143, \"\\u0120lineage\": 31144, \"\\u0120sip\": 31145, \"\\u0120intensely\": 31146, \"\\u0120flourish\": 31147, \"\\u0120Sleeping\": 31148, \"\\u0120Fem\": 31149, \"orpor\": 31150, \"\\u0120Klan\": 31151, \"\\u0120Darth\": 31152, \"hack\": 31153, \"\\u0120Nielsen\": 31154, \"\\u0120tumors\": 31155, \"\\u0120procurement\": 31156, \"\\u0120Yorkshire\": 31157, \"\\u0120raided\": 31158, \"KY\": 31159, \"Anna\": 31160, \"\\u0120//[\": 31161, \"\\u0120Disorder\": 31162, \"\\u0120Mustang\": 31163, \"\\u0120Wen\": 31164, \"\\u0120Trying\": 31165, \"sq\": 31166, \"\\u0120deliveries\": 31167, \"\\u0120shutter\": 31168, \"\\u0120cerebral\": 31169, \"\\u0120bipolar\": 31170, \"\\u0120CN\": 31171, \"lass\": 31172, \"jet\": 31173, \"\\u0120debating\": 31174, \">:\": 31175, \"\\u0120eagle\": 31176, \"grades\": 31177, \"\\u0120Dixon\": 31178, \"UGC\": 31179, \"MAS\": 31180, \"\\u0120Draco\": 31181, \"\\u0120Machines\": 31182, \"affer\": 31183, \"\\u0120eman\": 31184, \"\\u00c2\\u00b2\": 31185, \"pron\": 31186, \"\\u0120Gym\": 31187, \"\\u0120comparatively\": 31188, \"\\u0120Tribunal\": 31189, \"PRO\": 31190, \"\\u0120lex\": 31191, \"\\u0120fertile\": 31192, \"\\u0120depressing\": 31193, \"\\u0120superficial\": 31194, \"essential\": 31195, \"\\u0120Hunters\": 31196, \"gp\": 31197, \"\\u0120prominence\": 31198, \"Liber\": 31199, \"\\u0120Ancest\": 31200, \"otechnology\": 31201, \"\\u0120mocking\": 31202, \"\\u0120Traff\": 31203, \"\\u0138\\u013c\": 31204, \"Medium\": 31205, \"Iraq\": 31206, \"\\u0120psychiatrist\": 31207, \"Quantity\": 31208, \"\\u0120Lect\": 31209, \"\\u0120noisy\": 31210, \"520\": 31211, \"GY\": 31212, \"\\u0120slapped\": 31213, \"\\u0120MTV\": 31214, \"\\u0120para\": 31215, \"pull\": 31216, \"Multiple\": 31217, \"asher\": 31218, \"\\u0120nour\": 31219, \"\\u0120Seg\": 31220, \"Spell\": 31221, \"vous\": 31222, \"ordial\": 31223, \"Senior\": 31224, \"\\u0120Goldberg\": 31225, \"\\u0120Plasma\": 31226, \"need\": 31227, \"\\u0120messenger\": 31228, \"eret\": 31229, \"\\u0120teamed\": 31230, \"\\u0120literacy\": 31231, \"\\u0120Leah\": 31232, \"\\u0120Doyle\": 31233, \"\\u0120emitted\": 31234, \"UX\": 31235, \"\\u0120evade\": 31236, \"\\u0120maze\": 31237, \"\\u0120wrongly\": 31238, \"\\u0120Lars\": 31239, \"\\u0120stereotype\": 31240, \"\\u0120pledges\": 31241, \"\\u0120aroma\": 31242, \"\\u0120MET\": 31243, \"\\u0120acre\": 31244, \"\\u0120OD\": 31245, \"\\u0120ff\": 31246, \"\\u0120breweries\": 31247, \"\\u0120Hilton\": 31248, \"undle\": 31249, \"\\u0120Kak\": 31250, \"\\u0120Thankfully\": 31251, \"\\u0120Canucks\": 31252, \"inctions\": 31253, \"\\u0120Appears\": 31254, \"\\u0120coer\": 31255, \"\\u0120undermined\": 31256, \"rovers\": 31257, \"Andre\": 31258, \"\\u0120blaze\": 31259, \"umers\": 31260, \"\\u0120famine\": 31261, \"amphetamine\": 31262, \"ulkan\": 31263, \"Amount\": 31264, \"\\u0120desperation\": 31265, \"wikipedia\": 31266, \"development\": 31267, \"\\u0120Corinth\": 31268, \"ussia\": 31269, \"Jackson\": 31270, \"LI\": 31271, \"Native\": 31272, \"Rs\": 31273, \"Ohio\": 31274, \"\\u0120Kathleen\": 31275, \"Fortunately\": 31276, \"\\u0120attendant\": 31277, \"\\u0120Preferred\": 31278, \"\\u0120Didn\": 31279, \"\\u0120Vs\": 31280, \"Mis\": 31281, \"\\u0120respondent\": 31282, \"\\u0120boun\": 31283, \"stable\": 31284, \"\\u0120paved\": 31285, \"\\u0120unexpl\": 31286, \"\\u0120Cheney\": 31287, \"LM\": 31288, \"\\u0120Cull\": 31289, \"blown\": 31290, \"\\u0120confronting\": 31291, \"ocese\": 31292, \"serving\": 31293, \"Wi\": 31294, \"\\u0120Lithuania\": 31295, \"anni\": 31296, \"\\u0120stalk\": 31297, \"hd\": 31298, \"\\u0120vener\": 31299, \"APH\": 31300, \"ynchronous\": 31301, \"URR\": 31302, \"umably\": 31303, \"historic\": 31304, \"Half\": 31305, \"Hay\": 31306, \"\\u0120resilience\": 31307, \"spection\": 31308, \"\\u0120abandoning\": 31309, \"Obs\": 31310, \"\\u0120Debbie\": 31311, \"\\u0120gradient\": 31312, \"\\u0120Plaint\": 31313, \"\\u0120Canal\": 31314, \"ARCH\": 31315, \"\\u0120expansive\": 31316, \"\\u0120fung\": 31317, \"\\u0120bounced\": 31318, \"Und\": 31319, \"\\u0120precautions\": 31320, \"\\u0120clarification\": 31321, \"\\u0120dagger\": 31322, \"\\u0120grips\": 31323, \"\\u0120\\u00c2\\u00b5\": 31324, \"\\u0120Rivera\": 31325, \"\\u0120Undead\": 31326, \"isites\": 31327, \"\\u0120FIRST\": 31328, \"\\u00c3\\u00b1o\": 31329, \"audi\": 31330, \"\\u0120hostages\": 31331, \"\\u0120compliant\": 31332, \"\\u0120alumni\": 31333, \"Seven\": 31334, \"\\u0120cybersecurity\": 31335, \"either\": 31336, \"Collect\": 31337, \"\\u0120invariably\": 31338, \"\\u0120Soci\": 31339, \"\\u0120lawmaker\": 31340, \"\\u0120ale\": 31341, \"\\u0120Personally\": 31342, \"Nazi\": 31343, \"\\u0120customization\": 31344, \"\\u0120Proc\": 31345, \"\\u0120Saskatchewan\": 31346, \"eaturing\": 31347, \"\\u0120spared\": 31348, \"\\u0120discontinued\": 31349, \"\\u0120computational\": 31350, \"\\u0120Motorola\": 31351, \"\\u0120supremacist\": 31352, \"governmental\": 31353, \"\\u0120paradise\": 31354, \"\\u0120Downing\": 31355, \"\\u0120Nikon\": 31356, \"\\u0120catalyst\": 31357, \"berra\": 31358, \"Toronto\": 31359, \"875\": 31360, \"beta\": 31361, \"\\u0120Macron\": 31362, \"\\u0120unrealistic\": 31363, \"vector\": 31364, \"\\u0120Vehicles\": 31365, \"itiveness\": 31366, \"\\u0120RV\": 31367, \"\\u0120Colbert\": 31368, \"sin\": 31369, \"oji\": 31370, \"entin\": 31371, \"\\u0120Krish\": 31372, \"hello\": 31373, \"ffield\": 31374, \"oky\": 31375, \"\\u0120Tate\": 31376, \"\\u0120maple\": 31377, \"\\u0120aids\": 31378, \"chemical\": 31379, \"334\": 31380, \"nuts\": 31381, \"\\u0120Warp\": 31382, \"\\u0120xx\": 31383, \"\\u0120Robb\": 31384, \"umerous\": 31385, \"_-_\": 31386, \"ftime\": 31387, \"\\u0120VW\": 31388, \"\\u0120winger\": 31389, \"\\u0120Dome\": 31390, \"tools\": 31391, \"\\u0120PV\": 31392, \"\\u0120Georgetown\": 31393, \"\\u0120geared\": 31394, \"\\u0120jihadists\": 31395, \"\\u0120cp\": 31396, \"\\u0120steroids\": 31397, \"Mother\": 31398, \"clerosis\": 31399, \"\\u0120DRM\": 31400, \"nesia\": 31401, \"\\u0120linger\": 31402, \"\\u0120immersive\": 31403, \"\\u0120COUN\": 31404, \"\\u0120outweigh\": 31405, \"ensual\": 31406, \"Band\": 31407, \"\\u0120transforms\": 31408, \"matched\": 31409, \"psons\": 31410, \"\\u0120Judicial\": 31411, \"factor\": 31412, \"\\u0120referral\": 31413, \"\\u0120oddly\": 31414, \"\\u0120Wenger\": 31415, \"Bring\": 31416, \"\\u0120Bows\": 31417, \"602\": 31418, \"ICLE\": 31419, \"\\u0120lions\": 31420, \"\\u0120Academic\": 31421, \"\\u0120Thorn\": 31422, \"\\u0120Raider\": 31423, \"kefeller\": 31424, \"Storage\": 31425, \"Lower\": 31426, \"\\u0120Ort\": 31427, \"\\u0120Equality\": 31428, \"ALT\": 31429, \"\\u0120SOC\": 31430, \"Types\": 31431, \"\\u0120lyn\": 31432, \"\\u0120Asset\": 31433, \"coat\": 31434, \"TPP\": 31435, \"CVE\": 31436, \"\\u0120Pioneer\": 31437, \"application\": 31438, \"Modern\": 31439, \"\\u0120HK\": 31440, \"Environment\": 31441, \"Alright\": 31442, \"Rain\": 31443, \"IPP\": 31444, \"\\u0120Shiite\": 31445, \"\\u0120mound\": 31446, \"\\u0120Abilities\": 31447, \"condition\": 31448, \"Staff\": 31449, \"\\u0120competence\": 31450, \"\\u0120Moor\": 31451, \"\\u0120Diablo\": 31452, \"\\u0120withheld\": 31453, \"\\u0120ostensibly\": 31454, \"\\u0120Brom\": 31455, \"\\u0120msg\": 31456, \"\\u0120denomin\": 31457, \"\\u0120References\": 31458, \"\\u0120FP\": 31459, \"\\u0120plunged\": 31460, \"\\u0120pamph\": 31461, \"moving\": 31462, \"central\": 31463, \"\\u0120downright\": 31464, \"\\u0120fading\": 31465, \"Tal\": 31466, \"Typ\": 31467, \"\\u0120Thy\": 31468, \"ukes\": 31469, \"ithe\": 31470, \"\\u0120ove\": 31471, \"\\u0120battled\": 31472, \"\\u0120seafood\": 31473, \"\\u0120figur\": 31474, \"\\u0120RD\": 31475, \"crop\": 31476, \"\\u0120squads\": 31477, \"{\\\\\": 31478, \"\\u00e0\\u00b9\": 31479, \"\\u0120Eh\": 31480, \"\\u0120interviewing\": 31481, \"\\u0120Qin\": 31482, \"\\u0120aspiring\": 31483, \"PLIC\": 31484, \"\\u0120clauses\": 31485, \"\\u0120Gast\": 31486, \"\\u0120Nir\": 31487, \"\\u0120luggage\": 31488, \"\\u0120hose\": 31489, \"\\u0120systemd\": 31490, \"\\u0120descending\": 31491, \"\\u0120Revised\": 31492, \"\\u0120Rails\": 31493, \"align\": 31494, \"709\": 31495, \"337\": 31496, \"\\u0120fug\": 31497, \"charging\": 31498, \"tags\": 31499, \"\\u0120uter\": 31500, \"kish\": 31501, \"WARNING\": 31502, \"490\": 31503, \"profits\": 31504, \"\\u0120voyage\": 31505, \"\\u0120ace\": 31506, \"\\u0120Vanguard\": 31507, \"\\u0120Tanks\": 31508, \"\\u0120Muk\": 31509, \"\\u0120226\": 31510, \"Safe\": 31511, \"Armor\": 31512, \"\\u0120volcanic\": 31513, \"\\u0120womb\": 31514, \"\\u0120MIL\": 31515, \"\\u0120beginner\": 31516, \"\\u0120Recogn\": 31517, \"\\u0120AAP\": 31518, \"PLAY\": 31519, \")!\": 31520, \"\\u0120detecting\": 31521, \"cn\": 31522, \"\\u0120breaches\": 31523, \"Basically\": 31524, \"\\u0120Pag\": 31525, \"\\u0120Municipal\": 31526, \"\\u0120Indie\": 31527, \"\\u0120Laf\": 31528, \"\\u0120Disable\": 31529, \"\\u0120Olson\": 31530, \"\\u0120restrained\": 31531, \"\\u0120rulings\": 31532, \"\\u0120humane\": 31533, \"events\": 31534, \"\\u0120Cinema\": 31535, \"displayText\": 31536, \"\\u0120Hatch\": 31537, \"actionDate\": 31538, \"onnaissance\": 31539, \"\\u0120assaulting\": 31540, \"\\u0120Lug\": 31541, \"CHAT\": 31542, \"\\u0120vigorous\": 31543, \"\\u0120Perse\": 31544, \"\\u0120intolerance\": 31545, \"\\u0120Snapchat\": 31546, \"\\u0120Sharks\": 31547, \"\\u0120dummy\": 31548, \"\\u0120Diagn\": 31549, \"\\u0120Guitar\": 31550, \"imeters\": 31551, \"403\": 31552, \"REG\": 31553, \"Ax\": 31554, \"\\u0120separates\": 31555, \"\\u0120Mahm\": 31556, \"\\u0120tv\": 31557, \"jah\": 31558, \"OOL\": 31559, \"Circ\": 31560, \"\\u0120Windsor\": 31561, \"ussian\": 31562, \"\\u0120intuition\": 31563, \"\\u0120disdain\": 31564, \"\\u0120Donovan\": 31565, \"\\u0120221\": 31566, \"Emb\": 31567, \"\\u0120condemning\": 31568, \"\\u0120generosity\": 31569, \"zzy\": 31570, \"\\u0120panties\": 31571, \"\\u0120Prevent\": 31572, \"ActionCode\": 31573, \"ANA\": 31574, \"342\": 31575, \"externalActionCode\": 31576, \"\\u0120specifying\": 31577, \"\\u0120crystall\": 31578, \"Jere\": 31579, \"\\u0120rupt\": 31580, \"\\u0120Apprentice\": 31581, \"\\u0120profiling\": 31582, \"\\u00d0\\u00ba\": 31583, \"Strike\": 31584, \"\\u0120sideline\": 31585, \"\\u0120obligated\": 31586, \"\\u0120occult\": 31587, \"\\u0120bureaucratic\": 31588, \"antically\": 31589, \"rupted\": 31590, \"negative\": 31591, \"\\u0120Ethiopia\": 31592, \"\\u0120Civic\": 31593, \"\\u0120insiders\": 31594, \"eligible\": 31595, \"\\u0120TVs\": 31596, \"\\u0120BAR\": 31597, \"\\u0120TI\": 31598, \"iologist\": 31599, \"\\u0120AIR\": 31600, \"\\u0120substituted\": 31601, \"Arab\": 31602, \"\\u0120Saul\": 31603, \"\\u0120Yog\": 31604, \"prem\": 31605, \"\\u0120builders\": 31606, \"\\u0120stationary\": 31607, \"\\u0120doubtful\": 31608, \"\\u0120vigorously\": 31609, \"\\u0120thrilling\": 31610, \"Physical\": 31611, \"\\u0120Carey\": 31612, \"\\u0120Hydra\": 31613, \"geoning\": 31614, \"\\u0120Sly\": 31615, \"yton\": 31616, \"\\u0120borrowers\": 31617, \"\\u0120Parkinson\": 31618, \"\\u0120\\u00eb\": 31619, \"\\u0120Jamaica\": 31620, \"\\u0120satir\": 31621, \"\\u0120insurgents\": 31622, \"\\u0120Firm\": 31623, \"\\u0120isot\": 31624, \"\\u0120Karn\": 31625, \"ourning\": 31626, \"akens\": 31627, \"docs\": 31628, \"little\": 31629, \"\\u0120Monaco\": 31630, \"CLASS\": 31631, \"Turkey\": 31632, \"Ly\": 31633, \"\\u0120Conan\": 31634, \"assic\": 31635, \"\\u0120starred\": 31636, \"\\u0120Pacers\": 31637, \"eties\": 31638, \"\\u0120tipping\": 31639, \"Moon\": 31640, \"\\u0120Rw\": 31641, \"same\": 31642, \"\\u0120cavity\": 31643, \"\\u0120goof\": 31644, \"\\u0120Zo\": 31645, \"Shock\": 31646, \"ummer\": 31647, \"\\u0120emphasizes\": 31648, \"\\u0120regrett\": 31649, \"\\u0120novelty\": 31650, \"\\u0120envy\": 31651, \"\\u0120Passive\": 31652, \"rw\": 31653, \"505\": 31654, \"\\u0120indifferent\": 31655, \"\\u0120Rica\": 31656, \"\\u0120Himself\": 31657, \"\\u0120Freddie\": 31658, \"\\u0120adip\": 31659, \"\\u00e4\\u00b8\\u0122\": 31660, \"\\u0120breakout\": 31661, \"\\u0120hurried\": 31662, \"\\u0120Huang\": 31663, \"\\u0120Disk\": 31664, \"\\u0120roaming\": 31665, \"?????-?????-\": 31666, \"UV\": 31667, \"\\u0120Ricky\": 31668, \"\\u0120Sigma\": 31669, \"\\u0120marginalized\": 31670, \"\\u0120edits\": 31671, \"\\u0120304\": 31672, \"memory\": 31673, \"\\u0120specimen\": 31674, \"293\": 31675, \"\\u00e3\\u0123\\u00af\": 31676, \"\\u0120vertically\": 31677, \"\\u0120audition\": 31678, \"\\u0120Heck\": 31679, \"\\u0120caster\": 31680, \"\\u0120Holdings\": 31681, \"adal\": 31682, \"\\u0120Cron\": 31683, \"\\u0120Liam\": 31684, \"\\u0120deflect\": 31685, \"Pick\": 31686, \"\\u0120Debug\": 31687, \"REF\": 31688, \"\\u0120versatility\": 31689, \"othes\": 31690, \"classified\": 31691, \"\\u0120Mahar\": 31692, \"\\u0120Hort\": 31693, \"Counter\": 31694, \"stasy\": 31695, \"noticed\": 31696, \"331\": 31697, \"\\u0120Shim\": 31698, \"fuck\": 31699, \"\\u0120Bie\": 31700, \"\\u0120airing\": 31701, \"\\u0120Protein\": 31702, \"\\u0120Holding\": 31703, \"\\u0120spectators\": 31704, \"iliated\": 31705, \"\\u0120Thatcher\": 31706, \"nosis\": 31707, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u00b3\": 31708, \"Tele\": 31709, \"Boston\": 31710, \"\\u0120Templ\": 31711, \"stay\": 31712, \"\\u0120declarations\": 31713, \"479\": 31714, \"Volume\": 31715, \"\\u0120Designer\": 31716, \"\\u0120Overwatch\": 31717, \"idae\": 31718, \"\\u0120onwards\": 31719, \"\\u0120nets\": 31720, \"\\u0120Manila\": 31721, \"particularly\": 31722, \"\\u0120politic\": 31723, \"oother\": 31724, \"\\u0120portraits\": 31725, \"\\u0120pavement\": 31726, \"cffff\": 31727, \"\\u0120saints\": 31728, \"\\u0120beginners\": 31729, \"ESPN\": 31730, \"\\u0120shortcomings\": 31731, \"\\u00e2\\u0137\\u0132\\u00e2\\u0137\\u0132\": 31732, \"\\u0120comet\": 31733, \"\\u0120Organic\": 31734, \"quel\": 31735, \"\\u0120hospitalized\": 31736, \"Break\": 31737, \"\\u0120peel\": 31738, \"dylib\": 31739, \"aspx\": 31740, \"urances\": 31741, \"\\u0120TIM\": 31742, \"Pg\": 31743, \"\\u0120readable\": 31744, \"\\u0120Malik\": 31745, \"\\u0120muzzle\": 31746, \"\\u0120benchmarks\": 31747, \"dal\": 31748, \"\\u0120Vacc\": 31749, \"\\u0120Hicks\": 31750, \"609\": 31751, \"\\u0120Biblical\": 31752, \"heng\": 31753, \"\\u0120overload\": 31754, \"\\u0120Civilization\": 31755, \"\\u0120immoral\": 31756, \"\\u0120fries\": 31757, \"\\u00e3\\u0124\\u0134\": 31758, \"\\u0120reproduced\": 31759, \"\\u0120formulation\": 31760, \"jug\": 31761, \"irez\": 31762, \"gear\": 31763, \"\\u0120coached\": 31764, \"MpServer\": 31765, \"\\u0120SJ\": 31766, \"\\u0120Kw\": 31767, \"Init\": 31768, \"deal\": 31769, \"\\u0120Oro\": 31770, \"\\u0120Loki\": 31771, \"\\u0120Songs\": 31772, \"\\u0120232\": 31773, \"\\u0120Louise\": 31774, \"asionally\": 31775, \"\\u0120uncond\": 31776, \"ollywood\": 31777, \"\\u0120progressives\": 31778, \"\\u0120Enough\": 31779, \"\\u0120Doe\": 31780, \"\\u0120wreckage\": 31781, \"\\u0120brushed\": 31782, \"\\u0120BaseType\": 31783, \"\\u0120zoning\": 31784, \"ishable\": 31785, \"hetically\": 31786, \"\\u0120Caucus\": 31787, \"\\u0120Hue\": 31788, \"\\u0120karma\": 31789, \"\\u0120Sporting\": 31790, \"\\u0120trader\": 31791, \"\\u0120seeming\": 31792, \"\\u0120Capture\": 31793, \"430\": 31794, \"bish\": 31795, \"\\u0120tunes\": 31796, \"\\u0120indoors\": 31797, \"\\u0120Sphere\": 31798, \"\\u0120Dancing\": 31799, \"TERN\": 31800, \"\\u0120nob\": 31801, \"\\u0120GST\": 31802, \"maps\": 31803, \"\\u0120peppers\": 31804, \"Fit\": 31805, \"\\u0120oversees\": 31806, \"\\u0120Rabbi\": 31807, \"\\u0120Ruler\": 31808, \"vertising\": 31809, \"office\": 31810, \"xxx\": 31811, \"\\u0120raft\": 31812, \"Changed\": 31813, \"\\u0120textbooks\": 31814, \"Links\": 31815, \"\\u0120Omn\": 31816, \"\\u00e3\\u0122\\u0133\": 31817, \"\\u0120inconvenience\": 31818, \"\\u0120Donetsk\": 31819, \"=~\": 31820, \"\\u0120implicitly\": 31821, \"\\u0120boosts\": 31822, \"\\u0120Bones\": 31823, \"\\u0120Boom\": 31824, \"Courtesy\": 31825, \"\\u0120sensational\": 31826, \"ANY\": 31827, \"\\u0120greedy\": 31828, \"eden\": 31829, \"\\u0120inexper\": 31830, \"\\u0120Ler\": 31831, \"\\u0120Vale\": 31832, \"\\u0120tighten\": 31833, \"\\u0120EAR\": 31834, \"\\u0120Num\": 31835, \"\\u0120ancestor\": 31836, \"Sent\": 31837, \"\\u0120Horde\": 31838, \"urgical\": 31839, \"allah\": 31840, \"\\u0120sap\": 31841, \"amba\": 31842, \"\\u0120Spread\": 31843, \"twitch\": 31844, \"\\u0120grandson\": 31845, \"\\u0120fracture\": 31846, \"\\u0120moderator\": 31847, \"\\u0120Seventh\": 31848, \"\\u0120Reverse\": 31849, \"\\u0120estimation\": 31850, \"Choose\": 31851, \"\\u0120parach\": 31852, \"\\u0120barric\": 31853, \"\\u00e3\\u0122\\u0132\": 31854, \"\\u0120compass\": 31855, \"\\u0120allergic\": 31856, \"\\u00e2\\u0122\\u0137\": 31857, \"OTHER\": 31858, \"errilla\": 31859, \"\\u0120wagon\": 31860, \"\\u0120zinc\": 31861, \"\\u0120rubbed\": 31862, \"\\u0120Fuller\": 31863, \"\\u0120Luxembourg\": 31864, \"\\u0120Hoover\": 31865, \"\\u0120liar\": 31866, \"\\u0120Evening\": 31867, \"\\u0120Cobb\": 31868, \"esteem\": 31869, \"\\u0120selector\": 31870, \"\\u0120Brawl\": 31871, \"isance\": 31872, \"\\u0120Ek\": 31873, \"\\u0120troop\": 31874, \"\\u0120guts\": 31875, \"\\u0120Appeal\": 31876, \"\\u0120Tibetan\": 31877, \"\\u0120routines\": 31878, \"\\u0120Ment\": 31879, \"\\u0120summarized\": 31880, \"steamapps\": 31881, \"\\u0120tranqu\": 31882, \"\\u01201929\": 31883, \"oran\": 31884, \"\\u0120Authent\": 31885, \"\\u0120gmaxwell\": 31886, \"\\u0120apprehens\": 31887, \"\\u0120poems\": 31888, \"\\u0120sausage\": 31889, \"\\u0120Webster\": 31890, \"urus\": 31891, \"\\u0120themed\": 31892, \"\\u0120lounge\": 31893, \"\\u0120charger\": 31894, \"Spoiler\": 31895, \"\\u0120spilled\": 31896, \"hog\": 31897, \"\\u0120Sunder\": 31898, \"\\u0120Ain\": 31899, \"\\u0120Angry\": 31900, \"\\u0120disqual\": 31901, \"\\u0120Frequency\": 31902, \"\\u0120Ethernet\": 31903, \"\\u0120helper\": 31904, \"Percent\": 31905, \"\\u0120horrifying\": 31906, \"\\u0120ail\": 31907, \"\\u0120Allan\": 31908, \"EEE\": 31909, \"\\u0120Crossing\": 31910, \"449\": 31911, \"\\u0120holog\": 31912, \"\\u0120Puzzles\": 31913, \"\\u0120Goes\": 31914, \"erenn\": 31915, \"604\": 31916, \"\\u00e3\\u0123\\u0131\": 31917, \"\\u0120Rafael\": 31918, \"\\u0120atten\": 31919, \"\\u0120Emanuel\": 31920, \"\\u0120upro\": 31921, \"\\u0120Susp\": 31922, \"Psych\": 31923, \"\\u0120Trainer\": 31924, \"\\u0120NES\": 31925, \"\\u0120Hunts\": 31926, \"becue\": 31927, \"\\u0120counselor\": 31928, \"Rule\": 31929, \"\\u0120toxins\": 31930, \"\\u0120banners\": 31931, \"rifice\": 31932, \"\\u0120greeting\": 31933, \"\\u0120frenzy\": 31934, \"\\u0120allocate\": 31935, \"\\u0120*)\": 31936, \"expr\": 31937, \"503\": 31938, \"\\u0120Chick\": 31939, \"\\u0120Torn\": 31940, \"\\u0120consolidation\": 31941, \"\\u0120Fletcher\": 31942, \"switch\": 31943, \"frac\": 31944, \"clips\": 31945, \"\\u0120McKin\": 31946, \"\\u0120Lunar\": 31947, \"Month\": 31948, \"ITCH\": 31949, \"\\u0120scholarly\": 31950, \"raped\": 31951, \"398\": 31952, \"\\u01201910\": 31953, \"\\u0120egreg\": 31954, \"\\u0120insecure\": 31955, \"\\u0120victorious\": 31956, \"cffffcc\": 31957, \"\\u0120singled\": 31958, \"\\u0120elves\": 31959, \"\\u0120Wond\": 31960, \"burst\": 31961, \"\\u0120camoufl\": 31962, \"\\u0120BLACK\": 31963, \"\\u0120conditioned\": 31964, \"\\u00e7\\u012b\": 31965, \"answered\": 31966, \"\\u0120compulsory\": 31967, \"ascist\": 31968, \"\\u0120podcasts\": 31969, \"\\u0120Frankfurt\": 31970, \"bnb\": 31971, \"\\u0120neoliberal\": 31972, \"\\u0120Keyboard\": 31973, \"\\u0120Belle\": 31974, \"warm\": 31975, \"\\u0120trusts\": 31976, \"\\u0120insured\": 31977, \"\\u0120Bucc\": 31978, \"usable\": 31979, \"607\": 31980, \"\\u0120Plains\": 31981, \"\\u01201890\": 31982, \"\\u0120sabotage\": 31983, \"\\u0120lodged\": 31984, \"felt\": 31985, \"\\u0120ga\": 31986, \"\\u0120Narc\": 31987, \"\\u0120Salem\": 31988, \"\\u0120seventy\": 31989, \"\\u0120Blank\": 31990, \"pocket\": 31991, \"\\u0120whisper\": 31992, \"\\u0120mating\": 31993, \"omics\": 31994, \"\\u0120Salman\": 31995, \"\\u0120Kad\": 31996, \"\\u0120angered\": 31997, \"\\u0120collisions\": 31998, \"\\u0120extraordinarily\": 31999, \"\\u0120coercion\": 32000, \"Ghost\": 32001, \"birds\": 32002, \"\\u00e8\\u0122\": 32003, \"kok\": 32004, \"\\u0120permissible\": 32005, \"avorable\": 32006, \"\\u0120pointers\": 32007, \"\\u0120dissip\": 32008, \"aci\": 32009, \"\\u0120theatrical\": 32010, \"\\u0120Cosmic\": 32011, \"\\u0120forgetting\": 32012, \"\\u0120finalized\": 32013, \"\\u00e5\\u00a4\\u00a7\": 32014, \"yout\": 32015, \"library\": 32016, \"\\u0120booming\": 32017, \"\\u0120Believe\": 32018, \"\\u0120Teacher\": 32019, \"\\u0120Liv\": 32020, \"\\u0120GOODMAN\": 32021, \"\\u0120Dominican\": 32022, \"ORED\": 32023, \"\\u0120Parties\": 32024, \"\\u0120precipitation\": 32025, \"\\u0120Slot\": 32026, \"Roy\": 32027, \"\\u0120Combined\": 32028, \"\\u0120integrating\": 32029, \"\\u0120chrome\": 32030, \"\\u0120intestinal\": 32031, \"\\u0120Rebell\": 32032, \"\\u0120matchups\": 32033, \"\\u0120blockbuster\": 32034, \"\\u0120Loren\": 32035, \"\\u0120Levy\": 32036, \"\\u0120preaching\": 32037, \"\\u0120Sending\": 32038, \"\\u0120Purpose\": 32039, \"rax\": 32040, \"fif\": 32041, \"\\u0120authoritative\": 32042, \"\\u0120PET\": 32043, \"astical\": 32044, \"\\u0120dishon\": 32045, \"\\u0120chatting\": 32046, \"\\u0120\\\"$:/\": 32047, \"Connection\": 32048, \"\\u0120recreate\": 32049, \"\\u0120delinqu\": 32050, \"\\u0120broth\": 32051, \"\\u0120Dirty\": 32052, \"\\u0120Admin\": 32053, \"zman\": 32054, \"\\u0120scholarships\": 32055, \"\\u0120253\": 32056, \"contact\": 32057, \"alsa\": 32058, \"767\": 32059, \"creen\": 32060, \"abbage\": 32061, \"\\u01201915\": 32062, \"\\u0120blended\": 32063, \"\\u0120alarmed\": 32064, \"Language\": 32065, \"356\": 32066, \"\\u0120blends\": 32067, \"\\u0120Changed\": 32068, \"Wolf\": 32069, \"\\u0120hepat\": 32070, \"Creating\": 32071, \"\\u0120persecut\": 32072, \"\\u0120sweetness\": 32073, \"arte\": 32074, \"\\u0120forfeiture\": 32075, \"\\u0120Roberto\": 32076, \"impro\": 32077, \"NFL\": 32078, \"\\u0120Magnet\": 32079, \"Detailed\": 32080, \"\\u0120insignificant\": 32081, \"\\u0120POLIT\": 32082, \"\\u0120BBQ\": 32083, \"\\u0120CPS\": 32084, \"\\u0120seaw\": 32085, \"aminer\": 32086, \"mL\": 32087, \"endif\": 32088, \"finals\": 32089, \"\\u0120265\": 32090, \"uish\": 32091, \"\\u0120})\": 32092, \"\\u0120Problems\": 32093, \"\\u0120emblem\": 32094, \"\\u0120seriousness\": 32095, \"\\u0120parsing\": 32096, \"\\u0120substitution\": 32097, \"\\u0120pressured\": 32098, \"\\u0120recycled\": 32099, \"aleb\": 32100, \"Ruby\": 32101, \"\\u0120proficiency\": 32102, \"Driver\": 32103, \"\\u0120Wester\": 32104, \":'\": 32105, \"AFTA\": 32106, \"\\u0120mantle\": 32107, \"\\u0120Clayton\": 32108, \"flag\": 32109, \"\\u0120practitioner\": 32110, \"covered\": 32111, \"\\u0120Struct\": 32112, \"addafi\": 32113, \"425\": 32114, \"\\u0120Township\": 32115, \"\\u0120Hydro\": 32116, \"Louis\": 32117, \"343\": 32118, \"\\u0120condo\": 32119, \"\\u0120Tao\": 32120, \"\\u0120utilization\": 32121, \"\\u0120nausea\": 32122, \"\\u0120Dems\": 32123, \"ridges\": 32124, \"pause\": 32125, \"\\u0120formulas\": 32126, \"\\u0120challenger\": 32127, \"376\": 32128, \"\\u0120defective\": 32129, \"\\u0120Railway\": 32130, \"\\u0120PubMed\": 32131, \"\\u0120yogurt\": 32132, \"lbs\": 32133, \"\\u0120Norfolk\": 32134, \"OPE\": 32135, \"\\u0120Moody\": 32136, \"\\u0120distributor\": 32137, \"\\u0120scrolls\": 32138, \"\\u0120extracts\": 32139, \"Stan\": 32140, \"\\u0120viability\": 32141, \"\\u0120exposes\": 32142, \"\\u0120starvation\": 32143, \"\\u0120Steps\": 32144, \"\\u0120Dodd\": 32145, \"few\": 32146, \"STD\": 32147, \"332\": 32148, \"\\u0120closures\": 32149, \"\\u0120complementary\": 32150, \"\\u0120Sasha\": 32151, \"umpy\": 32152, \"\\u0120monet\": 32153, \"\\u0120articulate\": 32154, \"\\u0120Doct\": 32155, \"killer\": 32156, \"\\u0120scrim\": 32157, \"\\u0120264\": 32158, \"\\u0120prostitutes\": 32159, \"\\u0120severed\": 32160, \"\\u0120attachments\": 32161, \"\\u0120cooled\": 32162, \"Lev\": 32163, \"\\u0120Falk\": 32164, \"fail\": 32165, \"\\u0120policeman\": 32166, \"\\u0120Dag\": 32167, \"\\u0120prayed\": 32168, \"\\u0120Kernel\": 32169, \"\\u0120clut\": 32170, \"\\u0120cath\": 32171, \"\\u0120anomaly\": 32172, \"Storm\": 32173, \"emaker\": 32174, \"\\u0120Breakfast\": 32175, \"uli\": 32176, \"oire\": 32177, \"JJ\": 32178, \"hz\": 32179, \"Operation\": 32180, \"\\u0120Sick\": 32181, \"354\": 32182, \"\\u0120Guatemala\": 32183, \"Rate\": 32184, \"\\u0120exposures\": 32185, \"faces\": 32186, \"\\u0120Archae\": 32187, \"raf\": 32188, \"\\u0120Mia\": 32189, \"\\u01202025\": 32190, \"\\u0120opaque\": 32191, \"\\u0120disguised\": 32192, \"\\u0120Headquarters\": 32193, \"Sah\": 32194, \"\\u0120pots\": 32195, \"978\": 32196, \"\\u0120Malf\": 32197, \"\\u0120frowned\": 32198, \"\\u0120poisonous\": 32199, \"\\u0120Convers\": 32200, \"eeks\": 32201, \"\\u0120crab\": 32202, \".\\\"\\\"\": 32203, \"\\u0120treason\": 32204, \"\\u0120ranc\": 32205, \"\\u0120escalating\": 32206, \"\\u0120warr\": 32207, \"\\u0120mobs\": 32208, \"\\u0120lamps\": 32209, \"\\u0120Sunshine\": 32210, \"\\u0120Brunswick\": 32211, \"Phones\": 32212, \"\\u0120spelled\": 32213, \"\\u0120Skip\": 32214, \"\\u01202050\": 32215, \"\\u01201911\": 32216, \"\\u0120Pluto\": 32217, \"\\u0120Amend\": 32218, \"\\u0120meats\": 32219, \"387\": 32220, \"\\u0120stomp\": 32221, \"\\u0120Zhou\": 32222, \"\\u0120Leviathan\": 32223, \"\\u0120Hazard\": 32224, \"adv\": 32225, \"\\u0120Orwell\": 32226, \"\\u0120aloud\": 32227, \"\\u0120bumper\": 32228, \"\\u0120Anarch\": 32229, \"ubuntu\": 32230, \"\\u0120Serious\": 32231, \"fitting\": 32232, \"\\u0120Optional\": 32233, \"\\u0120Cecil\": 32234, \"REAM\": 32235, \"\\u0120serotonin\": 32236, \"\\u0120cultivate\": 32237, \"agogue\": 32238, \"}\\\\\": 32239, \"\\u0120mosques\": 32240, \"\\u0120Sunny\": 32241, \"\\u0120reactive\": 32242, \"revolution\": 32243, \"\\u0120Lup\": 32244, \"\\u0120Fedora\": 32245, \"\\u0120defenseman\": 32246, \"\\u0120VID\": 32247, \"istine\": 32248, \"\\u0120drowning\": 32249, \"\\u0120Broadcasting\": 32250, \"\\u0120thriller\": 32251, \"\\u0120Scy\": 32252, \"\\u0120accelerating\": 32253, \"\\u0120directs\": 32254, \"odied\": 32255, \"bike\": 32256, \"duration\": 32257, \"\\u0120painfully\": 32258, \"Redd\": 32259, \"\\u0120productions\": 32260, \"\\u0120gag\": 32261, \"\\u0120whist\": 32262, \"\\u0120sock\": 32263, \"\\u0120infinitely\": 32264, \"\\u0120Concern\": 32265, \"\\u0120Citadel\": 32266, \"\\u0120lieu\": 32267, \"\\u0120candles\": 32268, \"ogeneous\": 32269, \"arger\": 32270, \"\\u0120heavenly\": 32271, \"inflammatory\": 32272, \"Performance\": 32273, \"Cs\": 32274, \"ructose\": 32275, \"azaki\": 32276, \"\\u0120pessim\": 32277, \"\\u0120inference\": 32278, \"\\u0120powd\": 32279, \"\\u0120Zoe\": 32280, \"\\u0120paints\": 32281, \"\\u0120dazz\": 32282, \"pta\": 32283, \"-----------\": 32284, \"\\u0120inspir\": 32285, \"\\u0120Experimental\": 32286, \"\\u0120Knife\": 32287, \"regor\": 32288, \"bors\": 32289, \"\\u0120showers\": 32290, \"romeda\": 32291, \"\\u0120saint\": 32292, \"\\u0120benign\": 32293, \"\\u0120Jiang\": 32294, \"\\u0120envisioned\": 32295, \"\\u0120shroud\": 32296, \"IFT\": 32297, \"HO\": 32298, \"\\u0120shuff\": 32299, \"\\u0120ICC\": 32300, \"\\u0120segreg\": 32301, \"\\u0120revisit\": 32302, \"ighthouse\": 32303, \"Li\": 32304, \"\\u0120substrate\": 32305, \"\\u0120Seas\": 32306, \"\\u0120Reward\": 32307, \"\\u0120Hep\": 32308, \"\\u0120Brass\": 32309, \"sbm\": 32310, \"\\u0120eliminates\": 32311, \"\\u0120stamina\": 32312, \"\\u0120VAT\": 32313, \"\\u0120Loan\": 32314, \"\\u0120constraint\": 32315, \"\\u0120appropriated\": 32316, \"\\u0120pes\": 32317, \"\\u0120ALE\": 32318, \"ranging\": 32319, \"\\u0120404\": 32320, \"392\": 32321, \"\\u0120intellectuals\": 32322, \"achu\": 32323, \"\\u0120restructuring\": 32324, \"\\u0120Levin\": 32325, \"\\u0120runes\": 32326, \"\\u0120delightful\": 32327, \"\\u0120carbohydrates\": 32328, \"\\u0120Models\": 32329, \"\\u0120Expo\": 32330, \"\\u0120transporting\": 32331, \"alloc\": 32332, \"\\u0120ringing\": 32333, \"Samsung\": 32334, \"\\u0120scarcely\": 32335, \"\\u0120URLs\": 32336, \"\\u0120MAS\": 32337, \"\\u0120prototypes\": 32338, \"\\u0120narrator\": 32339, \"\\u0120CPUs\": 32340, \"cdn\": 32341, \"\\u0120Barton\": 32342, \"\\u0120decidedly\": 32343, \"\\u0120Shu\": 32344, \"ixir\": 32345, \"ocious\": 32346, \"\\u0120Myst\": 32347, \"Nintendo\": 32348, \"\\u0120reuse\": 32349, \"\\u0120forgiven\": 32350, \"Few\": 32351, \"inical\": 32352, \"nat\": 32353, \"\\u0120seamless\": 32354, \"\\u0120Eva\": 32355, \"\\u0120EVE\": 32356, \"\\u0120JO\": 32357, \"landers\": 32358, \"\\u0120softer\": 32359, \"negie\": 32360, \"\\u0120transient\": 32361, \"\\u0120orbital\": 32362, \"\\u0120fulfil\": 32363, \"\\u0120Kom\": 32364, \"Hopefully\": 32365, \"\\u0120dynamically\": 32366, \"\\u0120Hunger\": 32367, \"\\u00e5\\u013d\": 32368, \"\\u0120Armenia\": 32369, \"elman\": 32370, \"berto\": 32371, \"\\u0120pige\": 32372, \"\\u0120IDs\": 32373, \"limit\": 32374, \"\\u0120veins\": 32375, \"\\u0120soaring\": 32376, \"packs\": 32377, \"Golden\": 32378, \"\\u0120Crab\": 32379, \"istor\": 32380, \"\\u0120RPM\": 32381, \"\\u0120$$\": 32382, \"gression\": 32383, \"\\u0120jihadist\": 32384, \"\\u0120gamble\": 32385, \"\\u0120careg\": 32386, \"\\u0120inflated\": 32387, \"Face\": 32388, \"\\u0120Firearms\": 32389, \"\\u0120Emmanuel\": 32390, \"\\u00e2\\u013f\": 32391, \"\\u0120shocks\": 32392, \"grab\": 32393, \"\\u0120splend\": 32394, \"\\u0120HPV\": 32395, \"abortion\": 32396, \"Above\": 32397, \"Entity\": 32398, \"players\": 32399, \"\\u0120commenced\": 32400, \"ulence\": 32401, \"\\u0120fulfillment\": 32402, \"\\u0120embodiments\": 32403, \"\\u0120Welfare\": 32404, \"\\u0120hail\": 32405, \"\\u0120<@\": 32406, \"tten\": 32407, \"\\u0120catcher\": 32408, \"\\u0120Jazeera\": 32409, \"\\u0120volcano\": 32410, \"\\u0120stabilize\": 32411, \"\\u0120Handler\": 32412, \"\\u0120intensified\": 32413, \"\\u0120Abrams\": 32414, \"\\u0120humiliation\": 32415, \"paced\": 32416, \"605\": 32417, \"\\u0120CentOS\": 32418, \"Specific\": 32419, \"\\u0120heed\": 32420, \"\\u0120CAM\": 32421, \"\\u0120Galile\": 32422, \"Die\": 32423, \"\\u0120abolished\": 32424, \"\\u0120Thomson\": 32425, \"\\u0120Teachers\": 32426, \"\\u0120Wass\": 32427, \"jong\": 32428, \"\\u0120ISBN\": 32429, \"\\u0120Allies\": 32430, \"shake\": 32431, \"\\u00e5\\u00b7\": 32432, \"vict\": 32433, \"Howard\": 32434, \"\\u0120deem\": 32435, \"\\u0120exceedingly\": 32436, \"\\u0120Smartstocks\": 32437, \"ibe\": 32438, \"\\u0120doorway\": 32439, \"\\u0120competed\": 32440, \"igmat\": 32441, \"\\u0120nationalists\": 32442, \"\\u0120groom\": 32443, \"\\u0120Keen\": 32444, \"\\u0120disposable\": 32445, \"decl\": 32446, \"\\u0120Tolkien\": 32447, \"\\u0120Scheme\": 32448, \"\\u0120biod\": 32449, \"\\u0120avid\": 32450, \"\\u0120Elon\": 32451, \"agar\": 32452, \"\\u0120TSA\": 32453, \"Roman\": 32454, \"\\u0120artificially\": 32455, \"\\u0120advisors\": 32456, \"XL\": 32457, \"\\u0120Inferno\": 32458, \"366\": 32459, \"\\u0120tedious\": 32460, \"\\u0120Photography\": 32461, \"\\u0120Carrie\": 32462, \"\\u0120trope\": 32463, \"\\u0120Sandra\": 32464, \"\\u0120decimal\": 32465, \"Queen\": 32466, \"\\u0120Gundam\": 32467, \"\\u0120OM\": 32468, \"otech\": 32469, \"NBA\": 32470, \"\\u01201932\": 32471, \"\\u0120entrenched\": 32472, \"\\u0120Marion\": 32473, \"\\u0120fraternity\": 32474, \"Labour\": 32475, \"Henry\": 32476, \"\\u0120latitude\": 32477, \"Either\": 32478, \"\\u0120enhances\": 32479, \"\\u0120Potential\": 32480, \"\\u0120shines\": 32481, \"idad\": 32482, \"\\u0120breadth\": 32483, \"\\u0120capacities\": 32484, \"\\u0120\\u00f0\\u0141\\u013b\\u0124\": 32485, \"\\u0120Bronx\": 32486, \"\\u0120sexes\": 32487, \"\\u0120differentiation\": 32488, \"\\u0120heavyweight\": 32489, \"\\u0120Taj\": 32490, \"dra\": 32491, \"\\u0120migrate\": 32492, \"\\u0120exhaustion\": 32493, \"\\u0120RUN\": 32494, \"elsius\": 32495, \"\\u0120Cuomo\": 32496, \"\\u0120guitars\": 32497, \"\\u0120clones\": 32498, \"\\u0120Somew\": 32499, \"\\u0120Pry\": 32500, \"-------------\": 32501, \"\\u0120warranted\": 32502, \"cycles\": 32503, \"\\u0120salvage\": 32504, \"\\u0120disks\": 32505, \"RANT\": 32506, \"\\u0120NGOs\": 32507, \"\\u0120Martian\": 32508, \"\\\":[{\\\"\": 32509, \"\\u0120addicts\": 32510, \"ojure\": 32511, \"illet\": 32512, \"\\u0120amazingly\": 32513, \"artments\": 32514, \"pixel\": 32515, \"\\u0120GPUs\": 32516, \"Layout\": 32517, \"\\u00e8\\u00a3\": 32518, \"\\u0120Tamil\": 32519, \"\\u0120Basil\": 32520, \"\\u0120impartial\": 32521, \"\\u0120Structure\": 32522, \"fork\": 32523, \"bryce\": 32524, \"\\u0120ridge\": 32525, \"\\u0120Hamburg\": 32526, \"rious\": 32527, \"\\u0120blitz\": 32528, \"cigarettes\": 32529, \"\\u0120canned\": 32530, \"402\": 32531, \"\\u0120ironically\": 32532, \"\\u0120compassionate\": 32533, \"\\u0120Hawkins\": 32534, \".#\": 32535, \"\\u0120Cathedral\": 32536, \"\\u0120rallied\": 32537, \"internal\": 32538, \"\\u0120quota\": 32539, \"stakes\": 32540, \"TEXT\": 32541, \"mom\": 32542, \"\\u0120completes\": 32543, \"\\u0120238\": 32544, \"\\u0120shrug\": 32545, \"\\u00e3\\u0125\\u0133\": 32546, \"\\u0120Ninth\": 32547, \"\\u0120revise\": 32548, \"\\u0120Provider\": 32549, \"\\u0120treacher\": 32550, \"\\u0120quasi\": 32551, \"\\u0120PRES\": 32552, \"\\u0120deposition\": 32553, \"\\u0120confidentiality\": 32554, \"issors\": 32555, \"\\u0120imbalance\": 32556, \"\\u0120spanning\": 32557, \"\\u0120angular\": 32558, \"\\u0120Cul\": 32559, \"communication\": 32560, \"\\u0120Nora\": 32561, \"\\u0120Genius\": 32562, \"opter\": 32563, \"\\u0120sacked\": 32564, \"Spot\": 32565, \"\\u0120finely\": 32566, \"\\u0120CHR\": 32567, \"282\": 32568, \"waves\": 32569, \"Palest\": 32570, \"\\u0120Rohing\": 32571, \"NL\": 32572, \"\\u00e8\\u00bf\": 32573, \"\\u0120shitty\": 32574, \"\\u0120Scalia\": 32575, \"475\": 32576, \"Progress\": 32577, \"\\u0120referencing\": 32578, \"\\u0120classrooms\": 32579, \"abee\": 32580, \"\\u0120sod\": 32581, \"hesion\": 32582, \"708\": 32583, \"\\u0120Zuckerberg\": 32584, \"\\u0120Finish\": 32585, \"\\u0120Scotia\": 32586, \"\\u0120Savior\": 32587, \"\\u0120Installation\": 32588, \"antha\": 32589, \"(-\": 32590, \"\\u0120302\": 32591, \"\\u0120Punk\": 32592, \"\\u0120crater\": 32593, \"youtu\": 32594, \"\\u0120roast\": 32595, \"\\u0120influencing\": 32596, \"\\u0120dup\": 32597, \"\\u0120JR\": 32598, \"\\u0120Grav\": 32599, \"\\u0120stature\": 32600, \"\\u0120bathrooms\": 32601, \"Aside\": 32602, \"Wiki\": 32603, \"mean\": 32604, \"\\u0120Zak\": 32605, \"\\u0120Ones\": 32606, \"\\u0120Nath\": 32607, \"\\u0120hypert\": 32608, \"\\u0120commencement\": 32609, \"Civil\": 32610, \"\\u0120moderately\": 32611, \"\\u0120distributors\": 32612, \"\\u0120breastfeeding\": 32613, \"\\u0120980\": 32614, \"\\u0120Sik\": 32615, \"\\u0120Cig\": 32616, \"\\u0120AMER\": 32617, \"RIP\": 32618, \"\\u0120Career\": 32619, \"usting\": 32620, \"\\u0120messed\": 32621, \"\\u0120eh\": 32622, \"\\u0120Jensen\": 32623, \"/$\": 32624, \"\\u0120blackmail\": 32625, \"\\u0120conversions\": 32626, \"\\u0120scientifically\": 32627, \"\\u0120mantra\": 32628, \"paying\": 32629, \"\\u0120ivory\": 32630, \"\\u0120Courts\": 32631, \"OUGH\": 32632, \"auntlet\": 32633, \"Serial\": 32634, \"Brow\": 32635, \"\\u0120Hundreds\": 32636, \"323\": 32637, \"\\u0120pee\": 32638, \"\\u0120linux\": 32639, \"\\u0120submer\": 32640, \"\\u0120Principal\": 32641, \"485\": 32642, \"\\u0120DSL\": 32643, \"\\u0120Cousins\": 32644, \"\\u0120doctrines\": 32645, \"\\u0120Athletics\": 32646, \"\\u0120315\": 32647, \"\\u0120Karma\": 32648, \"\\u0120attent\": 32649, \"urger\": 32650, \"\\u0120prescribe\": 32651, \"\\u0120encaps\": 32652, \"\\u0120Came\": 32653, \"\\u0120secretive\": 32654, \"\\u0120Crimes\": 32655, \"dn\": 32656, \"Clean\": 32657, \"\\u0120Egyptians\": 32658, \"\\u0120Carpenter\": 32659, \"\\u0120ll\": 32660, \"Hum\": 32661, \"\\u0120Milo\": 32662, \"\\u0120capitalists\": 32663, \"\\u0120briefed\": 32664, \"Twe\": 32665, \"\\u0120Basin\": 32666, \"elvet\": 32667, \"Mos\": 32668, \"\\u0120plunge\": 32669, \"\\u0120Kaiser\": 32670, \"\\u0120Fuj\": 32671, \"illin\": 32672, \"\\u0120safeguards\": 32673, \"\\u0120oste\": 32674, \"\\u0120Opportunity\": 32675, \"\\u0120Mafia\": 32676, \"\\u0120Calling\": 32677, \"apa\": 32678, \"urban\": 32679, \"brush\": 32680, \"illard\": 32681, \"c\\u00c3\\u00a9\": 32682, \"intelligence\": 32683, \"\\u0120Lob\": 32684, \"\\u0120Druid\": 32685, \"\\u0120smoother\": 32686, \"\\u0120footing\": 32687, \"\\u0120motorists\": 32688, \"arcity\": 32689, \"\\u0120masculinity\": 32690, \"\\u0120mism\": 32691, \"\\u0120abdominal\": 32692, \"\\u0120Tavern\": 32693, \"\\u0120Roh\": 32694, \"\\u0120escapes\": 32695, \"signed\": 32696, \"Anthony\": 32697, \"\\u0120sacrificing\": 32698, \"\\u0120intimacy\": 32699, \"\\u0120anterior\": 32700, \"\\u0120Kod\": 32701, \"\\u0120motif\": 32702, \"\\u0120graz\": 32703, \"\\u0120visualization\": 32704, \"\\u0120guitarist\": 32705, \"\\u0120Trotsky\": 32706, \"magic\": 32707, \"Dar\": 32708, \"\\u0120Mori\": 32709, \"\\u0120wards\": 32710, \"\\u0120toilets\": 32711, \"lest\": 32712, \"\\u0120teleport\": 32713, \"\\u0120Sundays\": 32714, \"\\u0120Plat\": 32715, \"ETS\": 32716, \"\\u0120eSports\": 32717, \"Patrick\": 32718, \"\\u0120Katherine\": 32719, \"enko\": 32720, \"\\u0120hassle\": 32721, \"\\u0120Mick\": 32722, \"ggles\": 32723, \"\\u0120hob\": 32724, \"aintain\": 32725, \"\\u0120airborne\": 32726, \"\\u0120spans\": 32727, \"\\u0120chili\": 32728, \"\\u0120aperture\": 32729, \"\\u0120volunteered\": 32730, \"\\u0120Incident\": 32731, \"\\u0120Fres\": 32732, \"\\u0120Veteran\": 32733, \"aughtered\": 32734, \"ingo\": 32735, \"\\u0120uninsured\": 32736, \"CLOSE\": 32737, \"\\u0120fuse\": 32738, \"\\u0120erotic\": 32739, \"\\u0120advertise\": 32740, \"raising\": 32741, \"Texture\": 32742, \"\\u0120attends\": 32743, \"\\u0120REAL\": 32744, \"uddled\": 32745, \"\\u0120smoot\": 32746, \"\\u0120305\": 32747, \"\\u0120Willis\": 32748, \"\\u0120blond\": 32749, \"Analysis\": 32750, \"\\u0120VT\": 32751, \"onica\": 32752, \"\\u0120stronghold\": 32753, \"RF\": 32754, \"NM\": 32755, \".>>\": 32756, \"\\u0120prosperous\": 32757, \"\\u0120boasted\": 32758, \"292\": 32759, \"\\u0120Manufacturing\": 32760, \"PRESS\": 32761, \"gren\": 32762, \"\\u0120pharmacy\": 32763, \"\\u0120Rockefeller\": 32764, \"kai\": 32765, \"\\u0120thumbs\": 32766, \"\\u0120Hut\": 32767, \"\\u0120motherboard\": 32768, \"\\u0120guardians\": 32769, \"\\u0120Alter\": 32770, \"llular\": 32771, \"\\u0120shack\": 32772, \"\\u0120wisely\": 32773, \"\\u0120backbone\": 32774, \"erva\": 32775, \"\\u0120suicides\": 32776, \"\\u0120McGregor\": 32777, \"ijah\": 32778, \"Emer\": 32779, \"\\u0120Brav\": 32780, \"\\u0120designate\": 32781, \"POST\": 32782, \"produced\": 32783, \"\\u0120cleansing\": 32784, \"irlwind\": 32785, \"existent\": 32786, \"\\u0120Humph\": 32787, \"\\u0120Payne\": 32788, \"\\u0120vested\": 32789, \"\\u00c5\\u00a1\": 32790, \"\\u0120stringent\": 32791, \"iona\": 32792, \"\\u0120unsub\": 32793, \"\\u0120summed\": 32794, \"\\u0120Hercules\": 32795, \"subject\": 32796, \"\\u0120Ragnar\": 32797, \"\\u0120Nos\": 32798, \"\\u0120characterization\": 32799, \"\\u0120savvy\": 32800, \"\\u0120Dawson\": 32801, \"\\u0120Casino\": 32802, \"\\u0120fri\": 32803, \"\\u0120Barrier\": 32804, \"\\u0120misinformation\": 32805, \"\\u0120insulation\": 32806, \"\\u0120corridors\": 32807, \"\\u0120airplanes\": 32808, \"\\u0120Noct\": 32809, \"ahi\": 32810, \"\\u01201916\": 32811, \"kb\": 32812, \"armac\": 32813, \"\\u0120shun\": 32814, \"\\u0120schema\": 32815, \"\\u0120horrified\": 32816, \"\\u0120239\": 32817, \"aunders\": 32818, \"NB\": 32819, \"iates\": 32820, \"erity\": 32821, \"\\u0120Shard\": 32822, \"\\u0120rarity\": 32823, \"\\u0120grouped\": 32824, \"\\u0120Ghana\": 32825, \"against\": 32826, \"\\u0120Biological\": 32827, \"\\u0120Aware\": 32828, \"owell\": 32829, \"\\u00cf\\u0126\": 32830, \"\\u0120Beau\": 32831, \"shaw\": 32832, \"Hack\": 32833, \"\\u0120Julius\": 32834, \"USS\": 32835, \"olson\": 32836, \"auna\": 32837, \"cru\": 32838, \"\\u0120Maurice\": 32839, \"\\u0120Ik\": 32840, \"\\u0120sequencing\": 32841, \"\\u0120radicals\": 32842, \"\\u0120(?,\": 32843, \"virtual\": 32844, \"\\u0120anyways\": 32845, \"\\u0120reperc\": 32846, \"\\u0120handlers\": 32847, \"\\u0120hesitant\": 32848, \"\\u00e9\\u0125\": 32849, \"\\u0120MF\": 32850, \"plementation\": 32851, \"associated\": 32852, \"\\u0120campaigned\": 32853, \"\\u0120Yue\": 32854, \"utations\": 32855, \"\\u0120Yoga\": 32856, \"\\u0120simmer\": 32857, \"\\u0120rods\": 32858, \"\\u0120melody\": 32859, \"\\u0120convoy\": 32860, \"videos\": 32861, \"\\u0120screened\": 32862, \"Neg\": 32863, \"ochemical\": 32864, \"\\u0120())\": 32865, \"\\u0120ultras\": 32866, \"\\u0120antip\": 32867, \"\\u0120Islanders\": 32868, \"704\": 32869, \"\\u0120fetish\": 32870, \"\\u0120ridiculously\": 32871, \"\\u0120Kart\": 32872, \"\\u0120mitochondrial\": 32873, \"\\u0120interfering\": 32874, \"Builder\": 32875, \"\\u0120overfl\": 32876, \"\\u0120acne\": 32877, \"\\u0120Mud\": 32878, \"\\u0120Kerr\": 32879, \"flex\": 32880, \"\\u0120Postal\": 32881, \"\\u0120Baltic\": 32882, \"477\": 32883, \"\\u0120Persons\": 32884, \"ourage\": 32885, \"HB\": 32886, \"\\u0120Muse\": 32887, \"\\u0120Immortal\": 32888, \"\\u0120Driving\": 32889, \"\\u0120petitions\": 32890, \"\\u0120subscript\": 32891, \"\\u0120sorce\": 32892, \"\\u0120Processor\": 32893, \"uton\": 32894, \"Sony\": 32895, \"\\u0120phon\": 32896, \"\\u0120raced\": 32897, \"\\u0120Anthrop\": 32898, \"\\u0120daytime\": 32899, \"\\u0120Exercise\": 32900, \"Adding\": 32901, \"\\u0120engages\": 32902, \"\\u0120Qualcomm\": 32903, \"\\u0120miracles\": 32904, \"\\u0120memes\": 32905, \"\\u0120Drink\": 32906, \"\\u0120Orioles\": 32907, \"\\u0120hairs\": 32908, \"\\u0120Polar\": 32909, \"athom\": 32910, \"\\u0120slippery\": 32911, \"\\u0120Remy\": 32912, \"\\u0120caramel\": 32913, \"\\u0120YEAR\": 32914, \"\\u0120alk\": 32915, \"Ign\": 32916, \"aution\": 32917, \"\\u0120Merlin\": 32918, \"\\u0120Cran\": 32919, \"\\u0120apologies\": 32920, \"\\u0120410\": 32921, \"\\u0120outing\": 32922, \"\\u0120Memories\": 32923, \"appointed\": 32924, \"\\u0120countered\": 32925, \"uld\": 32926, \"posing\": 32927, \"\\u0120firewall\": 32928, \"\\u0120Wast\": 32929, \"\\u0120Wet\": 32930, \"worked\": 32931, \"seller\": 32932, \"\\u0120repealed\": 32933, \"ereo\": 32934, \"assuming\": 32935, \"BLIC\": 32936, \"mite\": 32937, \"\\u0120CEOs\": 32938, \"\\u0120Chapel\": 32939, \"elligent\": 32940, \"________________________\": 32941, \"Dog\": 32942, \"\\u0120wart\": 32943, \"\\u0120subscriber\": 32944, \"sports\": 32945, \"\\u0120begged\": 32946, \"\\u0120MV\": 32947, \"\\u0120semif\": 32948, \"ethical\": 32949, \"\\u0120preach\": 32950, \"\\u0120revital\": 32951, \"\\u0120punitive\": 32952, \"\\u0120shortcuts\": 32953, \"\\u0120instituted\": 32954, \"\\u0120Warsaw\": 32955, \"\\u0120abdomen\": 32956, \"\\u0120KING\": 32957, \"\\u0120superintendent\": 32958, \"\\u0120fry\": 32959, \"\\u0120Geo\": 32960, \"TOR\": 32961, \"\\u0120contradictions\": 32962, \"aptic\": 32963, \"\\u0120landscapes\": 32964, \"bugs\": 32965, \"\\u0120clust\": 32966, \"\\u0120volley\": 32967, \"cribed\": 32968, \"\\u0120tandem\": 32969, \"\\u0120robes\": 32970, \"WHAT\": 32971, \"\\u0120promoter\": 32972, \"\\u0120eloqu\": 32973, \"reviewed\": 32974, \"\\u0120DK\": 32975, \"\\u0120Plato\": 32976, \"\\u0120fps\": 32977, \"Tank\": 32978, \"\\u0120Derrick\": 32979, \"\\u0120prioritize\": 32980, \"asper\": 32981, \"\\u0120Honduras\": 32982, \"\\u0120Completed\": 32983, \"nec\": 32984, \"\\u0120mog\": 32985, \"nir\": 32986, \"\\u0120Mayo\": 32987, \"DEF\": 32988, \"stall\": 32989, \"inness\": 32990, \"\\u0120Volkswagen\": 32991, \"\\u0120precaution\": 32992, \"\\u0120Mell\": 32993, \"iak\": 32994, \"istries\": 32995, \"\\u0120248\": 32996, \"\\u0120overlapping\": 32997, \"Senate\": 32998, \"\\u0120Enhance\": 32999, \"resy\": 33000, \"racial\": 33001, \"ORTS\": 33002, \"\\u0120Mormons\": 33003, \"Strong\": 33004, \"\\u0120Coch\": 33005, \"Mexico\": 33006, \"\\u0120Maduro\": 33007, \"\\u0120jars\": 33008, \"\\u0120cane\": 33009, \"Wik\": 33010, \"olla\": 33011, \"ifference\": 33012, \"\\u0120physicist\": 33013, \"\\u0120Maggie\": 33014, \"\\u0120285\": 33015, \"\\u0120depiction\": 33016, \"\\u0120McLaren\": 33017, \"Ju\": 33018, \"\\u0120slows\": 33019, \"\\u0120commissioners\": 33020, \"\\u0120Willow\": 33021, \"\\u0120Explos\": 33022, \"hovah\": 33023, \"\\u0120technician\": 33024, \"\\u0120homicides\": 33025, \"\\u0120Flav\": 33026, \"\\u0120Truman\": 33027, \"\\u012010000\": 33028, \"uctor\": 33029, \"\\u0120shader\": 33030, \"Newsletter\": 33031, \"457\": 33032, \"\\u0120rever\": 33033, \"\\u0120hardened\": 33034, \"\\u0120whereabouts\": 33035, \"\\u0120redevelop\": 33036, \"\\u0120carbs\": 33037, \"\\u0120travers\": 33038, \"\\u0120squirrel\": 33039, \"\\u0120follower\": 33040, \"\\u0120sings\": 33041, \"508\": 33042, \"\\u0120rabbits\": 33043, \"emonium\": 33044, \"\\u0120documenting\": 33045, \"\\u0120misunderstood\": 33046, \")'\": 33047, \"Rick\": 33048, \"ggies\": 33049, \"\\u0120premie\": 33050, \"\\u0120skating\": 33051, \"\\u0120passports\": 33052, \"\\u0120fists\": 33053, \"ageddon\": 33054, \"Haw\": 33055, \"ACP\": 33056, \"080\": 33057, \"\\u0120Thoughts\": 33058, \"\\u0120Carlson\": 33059, \"\\u0120priesthood\": 33060, \"hua\": 33061, \"\\u0120dungeons\": 33062, \"\\u0120Loans\": 33063, \"\\u0120antis\": 33064, \"\\u0120familiarity\": 33065, \"\\u0120Sabb\": 33066, \"opal\": 33067, \"\\u0120Ink\": 33068, \"strike\": 33069, \"\\u0120cram\": 33070, \"\\u0120legalized\": 33071, \"\\u0120cuisine\": 33072, \"\\u0120fibre\": 33073, \"Travel\": 33074, \"\\u0120Monument\": 33075, \"ODY\": 33076, \"ethy\": 33077, \"\\u0120interstate\": 33078, \"\\u0120PUR\": 33079, \"emporary\": 33080, \"\\u0120Arabian\": 33081, \"developed\": 33082, \"\\u0120saddle\": 33083, \"\\u0120github\": 33084, \"\\u0120Offer\": 33085, \"\\u0120ISP\": 33086, \"rolet\": 33087, \"\\u0120SUPER\": 33088, \"\\u0120Denis\": 33089, \"\\u0120multiplier\": 33090, \"\\u0120stirred\": 33091, \"Interestingly\": 33092, \"\\u0120customary\": 33093, \"\\u0120billed\": 33094, \"hex\": 33095, \"\\u0120multiplied\": 33096, \"\\u0120flipping\": 33097, \"\\u0120Crosby\": 33098, \"\\u0120fundamentals\": 33099, \"iae\": 33100, \"\\u0120Played\": 33101, \"\\u0120Atom\": 33102, \"amazon\": 33103, \"\\u0120Flam\": 33104, \"eez\": 33105, \"activated\": 33106, \"\\u0120tablespoon\": 33107, \"\\u0120liberalism\": 33108, \"\\u0120Palin\": 33109, \"\\u0120Patel\": 33110, \"Num\": 33111, \"\\u0120TAM\": 33112, \"\\u0120surn\": 33113, \"\\u0120Reloaded\": 33114, \"\\u0120coined\": 33115, \"\\\"],\": 33116, \"\\u0120Clash\": 33117, \"\\u0120Agu\": 33118, \"\\u0120pragmatic\": 33119, \"\\u0120Activate\": 33120, \"\\u0120802\": 33121, \"\\u0120trailers\": 33122, \"\\u0120silhou\": 33123, \"\\u0120probes\": 33124, \"\\u0120circus\": 33125, \"\\u0120Bain\": 33126, \"\\u0120Lindsay\": 33127, \"\\u0120Abbey\": 33128, \"Delivery\": 33129, \"\\u0120concession\": 33130, \"\\u0120gastro\": 33131, \"\\u0120Sprite\": 33132, \"\\u00c4\\u0141\": 33133, \"andel\": 33134, \"\\u0120gimm\": 33135, \"\\u0120autobi\": 33136, \"\\u0120Turtle\": 33137, \"\\u0120wonderfully\": 33138, \"\\u0120Haram\": 33139, \"\\u0120Worldwide\": 33140, \"\\u0120Handle\": 33141, \"\\u0120theorists\": 33142, \"\\u0120sleek\": 33143, \"\\u0120Zhu\": 33144, \"ographically\": 33145, \"EGA\": 33146, \"\\u0120Owners\": 33147, \"aths\": 33148, \"\\u0120Antarctic\": 33149, \"natal\": 33150, \"=\\\"\\\"\": 33151, \"flags\": 33152, \"````\": 33153, \"\\u0120sul\": 33154, \"Kh\": 33155, \"\\u0120potassium\": 33156, \"\\u0120lineman\": 33157, \"\\u0120cereal\": 33158, \"\\u0120Seasons\": 33159, \"\\u01202022\": 33160, \"\\u0120mathematic\": 33161, \"\\u0120astronomers\": 33162, \"professional\": 33163, \"\\u0120fares\": 33164, \"cknowled\": 33165, \"\\u0120chi\": 33166, \"\\u0120youngsters\": 33167, \"\\u0120mistakenly\": 33168, \"\\u0120hemisphere\": 33169, \"\\u0120Divinity\": 33170, \"rone\": 33171, \"\\u0120\\\",\": 33172, \"rings\": 33173, \"\\u0120attracts\": 33174, \"vana\": 33175, \"\\u00e5\\u00b9\": 33176, \"CAP\": 33177, \"\\u0120playlist\": 33178, \"\\u0120porch\": 33179, \"\\u00e3\\u0123\\u00a3\": 33180, \"\\u0120incorporates\": 33181, \"\\u0120soak\": 33182, \"\\u0120asserting\": 33183, \"\\u0120Terrorism\": 33184, \"\\u0120Pablo\": 33185, \"Ja\": 33186, \"cester\": 33187, \"\\u0120fearing\": 33188, \"\\u0120Prayer\": 33189, \"\\u0120escalated\": 33190, \"GW\": 33191, \"\\u0120robe\": 33192, \"\\u0120Brighton\": 33193, \"acists\": 33194, \"\\u0120Symphony\": 33195, \"\\u0120Dwarf\": 33196, \"\\u0120Parade\": 33197, \"\\u0120Lego\": 33198, \"\\u0120inexpl\": 33199, \"\\u0120lords\": 33200, \"leaf\": 33201, \"RAG\": 33202, \"liber\": 33203, \"\\u0120cigars\": 33204, \"\\u0120Jehovah\": 33205, \"606\": 33206, \"WINDOWS\": 33207, \"\\u0120Liberia\": 33208, \"ebus\": 33209, \"Heavy\": 33210, \"\\u0120lubric\": 33211, \"\\u0120RW\": 33212, \"anguages\": 33213, \"\\u0120narrowed\": 33214, \"computer\": 33215, \"\\u0120Ember\": 33216, \"\\u0120murdering\": 33217, \"\\u0120downstream\": 33218, \"\\u0120Tuls\": 33219, \"\\u0120Tables\": 33220, \"Topic\": 33221, \"\\u0120Accuracy\": 33222, \"=/\": 33223, \"lost\": 33224, \"\\u0120Rei\": 33225, \"\\u0120progresses\": 33226, \"bear\": 33227, \"\\u0120establishments\": 33228, \"Justin\": 33229, \"\\u0120Peach\": 33230, \"\\u0120Gomez\": 33231, \"\\u00e5\\u00bf\": 33232, \"\\u0120Triangle\": 33233, \"Ident\": 33234, \"\\u0120Hive\": 33235, \"Resources\": 33236, \"\\u0120mixes\": 33237, \"\\u0120Assuming\": 33238, \"Mu\": 33239, \"\\u0120hypoc\": 33240, \"\\u0120sane\": 33241, \"\\u0120Wan\": 33242, \"idious\": 33243, \"Success\": 33244, \"\\u0120io\": 33245, \"Angel\": 33246, \"\\u0120dangerously\": 33247, \"\\u0120Creature\": 33248, \"WORK\": 33249, \":[\": 33250, \"\\u0120Katrina\": 33251, \"Listener\": 33252, \"Miller\": 33253, \"\\u0120Idlib\": 33254, \"hang\": 33255, \"\\u0120circumvent\": 33256, \"href\": 33257, \"\\u0120celestial\": 33258, \"\\u0120Weeks\": 33259, \"\\u0120Pug\": 33260, \"\\u0120Dalton\": 33261, \"\\u0120subpoena\": 33262, \"uku\": 33263, \"\\u0120persisted\": 33264, \"pei\": 33265, \"olding\": 33266, \"\\u0120Documents\": 33267, \"\\u0120Hast\": 33268, \"\\u0120CENT\": 33269, \"\\u0120primer\": 33270, \"\\u0120synonymous\": 33271, \"\\u0120nib\": 33272, \"ombs\": 33273, \"\\u0120notation\": 33274, \"\\u0120Dish\": 33275, \"\\u0120Atmosp\": 33276, \"\\u0120forbid\": 33277, \"\\u0120ANG\": 33278, \"pattern\": 33279, \"los\": 33280, \"\\u0120projectiles\": 33281, \"brown\": 33282, \".\\\",\": 33283, \"\\u0120Venom\": 33284, \"\\u0120fiercely\": 33285, \"ublished\": 33286, \"\\u0120Uran\": 33287, \"\\u0120Nicarag\": 33288, \"410\": 33289, \"\\u0120CAL\": 33290, \"OTOS\": 33291, \"\\u0120Miracle\": 33292, \"\\u0120Enchant\": 33293, \"\\u0120guarding\": 33294, \"append\": 33295, \"Attach\": 33296, \"\\u0120leveled\": 33297, \"\\u0120condoms\": 33298, \"ihilation\": 33299, \"649\": 33300, \"\\u0120nightmares\": 33301, \"\\u0120THEY\": 33302, \"\\u0120START\": 33303, \"\\u0120Kinn\": 33304, \"\\u0120roommate\": 33305, \"\\u0120hygiene\": 33306, \"opping\": 33307, \"Job\": 33308, \"\\u0120lvl\": 33309, \"\\u0120VER\": 33310, \"\\u0120Keeping\": 33311, \"abetic\": 33312, \"\\u0120formatting\": 33313, \"erala\": 33314, \"\\u0120revisions\": 33315, \"\\u0120resurg\": 33316, \"Tel\": 33317, \"\\u0120Goodman\": 33318, \"353\": 33319, \"pod\": 33320, \"\\u0120indisp\": 33321, \"\\u0120Translation\": 33322, \"\\u0120gown\": 33323, \"\\u0120Mund\": 33324, \"\\u0120cis\": 33325, \"\\u0120bystand\": 33326, \"collect\": 33327, \"\\u0120Punjab\": 33328, \"actively\": 33329, \"\\u0120Gamb\": 33330, \"tell\": 33331, \"\\u0120importing\": 33332, \"gencies\": 33333, \"\\u0120locom\": 33334, \"\\u0120Brill\": 33335, \"Holy\": 33336, \"\\u0120Berger\": 33337, \"\\u0120showdown\": 33338, \"\\u0120responders\": 33339, \"ILY\": 33340, \"\\u0120takedown\": 33341, \"leted\": 33342, \"\\u0120mattered\": 33343, \"\\u0120predictive\": 33344, \"\\u0120overlay\": 33345, \"GPU\": 33346, \"\\u0120Vick\": 33347, \"\\u0120conveyed\": 33348, \"Tab\": 33349, \"peer\": 33350, \"Scan\": 33351, \"\\u0120defensively\": 33352, \"vae\": 33353, \"\\u0120approving\": 33354, \"\\u0120tiers\": 33355, \"\\u0120Via\": 33356, \"querade\": 33357, \"\\u0120Saudis\": 33358, \"\\u0120demolished\": 33359, \"\\u0120Prophe\": 33360, \"\\u0120mono\": 33361, \"\\u0120hospitality\": 33362, \"HAM\": 33363, \"\\u0120Ariel\": 33364, \"MOD\": 33365, \"\\u0120Torah\": 33366, \"\\u0120blah\": 33367, \"\\u0120Belarus\": 33368, \"erential\": 33369, \"\\u0120Tuc\": 33370, \"\\u0120banker\": 33371, \"397\": 33372, \"\\u0120mosquit\": 33373, \"\\u0120Scientist\": 33374, \"\\u0120Musical\": 33375, \"\\u0120hust\": 33376, \"Shift\": 33377, \"\\u0120torment\": 33378, \"\\u0120standoff\": 33379, \"Educ\": 33380, \"\\u0120Fog\": 33381, \"\\u0120amplifier\": 33382, \"Shape\": 33383, \"Instance\": 33384, \"\\u0120Critics\": 33385, \"\\u0120daemon\": 33386, \"Houston\": 33387, \"\\u0120mattress\": 33388, \"\\u0120IDF\": 33389, \"\\u0120obscene\": 33390, \"\\u0120Amer\": 33391, \"hetti\": 33392, \"\\u0120compiling\": 33393, \"352\": 33394, \"verett\": 33395, \"\\u0120Reduction\": 33396, \"istration\": 33397, \"\\u0120Blessed\": 33398, \"\\u0120Bachelor\": 33399, \"316\": 33400, \"\\u0120prank\": 33401, \"\\u0120Vulcan\": 33402, \"dding\": 33403, \"\\u0120mourning\": 33404, \"\\u0120Quint\": 33405, \"\\u0120Blaster\": 33406, \"testing\": 33407, \"\\u0120sediment\": 33408, \">>>\": 33409, \"\\u0120Eternity\": 33410, \"\\u0120WHERE\": 33411, \"\\u0120Maze\": 33412, \"\\u0120reacting\": 33413, \"\\u0120Alv\": 33414, \"omsday\": 33415, \"\\u0120CRA\": 33416, \"\\u0120translator\": 33417, \"\\u0120bogus\": 33418, \"atu\": 33419, \"Website\": 33420, \"olls\": 33421, \"\\u0120baptism\": 33422, \"\\u0120sibling\": 33423, \"\\u0120Autumn\": 33424, \"vez\": 33425, \"\\u00e3\\u0123\\u00ae\\u00e9\": 33426, \"guards\": 33427, \"Georg\": 33428, \"assadors\": 33429, \"\\u0120Freud\": 33430, \"\\u0120continents\": 33431, \"\\u0120Registry\": 33432, \"Bernie\": 33433, \"\\u0138\\u013c\\u00e5\\u00a3\\u00ab\": 33434, \"\\u0120tolerant\": 33435, \"\\u0120UW\": 33436, \"\\u0120horribly\": 33437, \"995\": 33438, \"\\u0120MIDI\": 33439, \"\\u0120impatient\": 33440, \"ocado\": 33441, \"eri\": 33442, \"\\u0120Worst\": 33443, \"\\u0120Norris\": 33444, \"\\u0120Talking\": 33445, \"\\u0120defends\": 33446, \"ensable\": 33447, \"\\u01202021\": 33448, \"\\u0120anatomy\": 33449, \"Lew\": 33450, \"\\u0120drawer\": 33451, \"\\u0120Canberra\": 33452, \"\\u0120patriotic\": 33453, \"\\u00e9\\u00be\\u012f\\u00e5\\u0138\\u013c\\u00e5\\u00a3\\u00ab\": 33454, \"\\u0120Avg\": 33455, \"ARM\": 33456, \"\\u0120undisclosed\": 33457, \"\\u0120farewell\": 33458, \"459\": 33459, \"bable\": 33460, \"\\u0120Allison\": 33461, \"OLOG\": 33462, \"\\u0120conco\": 33463, \"tight\": 33464, \"\\u0120ACPI\": 33465, \"\\u0120Mines\": 33466, \"lich\": 33467, \"\\u0120\\u00e2\\u0136\\u013e\": 33468, \"represented\": 33469, \"200000\": 33470, \"\\u0120enthusiast\": 33471, \"OTS\": 33472, \"bil\": 33473, \"\\u0120Ingredients\": 33474, \"\\u0120inventor\": 33475, \"\\u0120MySQL\": 33476, \"\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\": 33477, \"\\u0120ABOUT\": 33478, \"within\": 33479, \"\\u0120mk\": 33480, \"Bul\": 33481, \"\\u0120Fake\": 33482, \"\\u0120draconian\": 33483, \"Wa\": 33484, \"helm\": 33485, \"\\u0120Terran\": 33486, \"erville\": 33487, \"\\u0120commonplace\": 33488, \"SIZE\": 33489, \"\\u0120\\\"<\": 33490, \"replace\": 33491, \"ographs\": 33492, \"\\u0120SELECT\": 33493, \"incible\": 33494, \"\\u0120Mostly\": 33495, \"\\u0120Sheffield\": 33496, \"\\u0120IDE\": 33497, \"uggle\": 33498, \"\\u0120citations\": 33499, \"hurst\": 33500, \"\\u0120Unix\": 33501, \"\\u0120unleash\": 33502, \"\\u0120Piper\": 33503, \"\\u0120Nano\": 33504, \"\\u0120succumb\": 33505, \"\\u0120reluctance\": 33506, \"\\u01202500\": 33507, \"\\u0120Merchant\": 33508, \"\\u0120wiret\": 33509, \"\\u0120combos\": 33510, \"\\u0120Birthday\": 33511, \"\\u0120charcoal\": 33512, \"\\u0120UPS\": 33513, \"\\u0120Fairfax\": 33514, \"\\u0120driveway\": 33515, \"\\u0120Tek\": 33516, \"\\u0120Pitch\": 33517, \"overe\": 33518, \"\\u0120technicians\": 33519, \"\\u0120Actual\": 33520, \"flation\": 33521, \"\\u0120Fiscal\": 33522, \"\\u0120Empty\": 33523, \"anamo\": 33524, \"\\u0120magnesium\": 33525, \"\\u0120slut\": 33526, \"\\u0120growers\": 33527, \"Investigators\": 33528, \"():\": 33529, \"\\u0120Satellite\": 33530, \"\\u0120Keynes\": 33531, \"missive\": 33532, \"lane\": 33533, \"\\u0120borough\": 33534, \"344\": 33535, \"\\u0120TEAM\": 33536, \"\\u0120Bethesda\": 33537, \"CV\": 33538, \"hower\": 33539, \"\\u0120RAD\": 33540, \"\\u0120chant\": 33541, \"\\u0120Riy\": 33542, \"\\u0120compositions\": 33543, \"\\u0120mildly\": 33544, \"\\u0120meddling\": 33545, \"\\u0120agility\": 33546, \"aneers\": 33547, \"501\": 33548, \"\\u0120synth\": 33549, \"linger\": 33550, \"291\": 33551, \"\\u0120exclaimed\": 33552, \"Party\": 33553, \"\\u0120contamin\": 33554, \"\\u0120Manor\": 33555, \"\\u0120Respond\": 33556, \"\\u0120praising\": 33557, \"\\u0120manners\": 33558, \"fleet\": 33559, \"Summer\": 33560, \"\\u0120Lynd\": 33561, \"\\u0120Definitely\": 33562, \"grim\": 33563, \"\\u0120bowling\": 33564, \"stri\": 33565, \"\\u00e7\\u013d\": 33566, \"ynt\": 33567, \"\\u0120mandates\": 33568, \"DIV\": 33569, \"\\u0120reconcile\": 33570, \"views\": 33571, \"\\u0120Damon\": 33572, \"vette\": 33573, \"Flo\": 33574, \"\\u0120Greatest\": 33575, \"ilon\": 33576, \"icia\": 33577, \"\\u0120portrayal\": 33578, \"\\u0120cushion\": 33579, \"504\": 33580, \"1979\": 33581, \"ossal\": 33582, \"Applic\": 33583, \"scription\": 33584, \"\\u0120mitigation\": 33585, \"ATS\": 33586, \"pac\": 33587, \"\\u0120erased\": 33588, \"\\u0120deficiencies\": 33589, \"\\u0120Hollande\": 33590, \"\\u0120Xu\": 33591, \"\\u0120bred\": 33592, \"\\u0120pregnancies\": 33593, \"femin\": 33594, \"\\u0120emph\": 33595, \"\\u0120planners\": 33596, \"\\u0120outper\": 33597, \"uttering\": 33598, \"\\u0120perpetrator\": 33599, \"\\u0120motto\": 33600, \"\\u0120Ellison\": 33601, \"\\u0120NEVER\": 33602, \"\\u0120admittedly\": 33603, \"ARI\": 33604, \"\\u0120Azerbaijan\": 33605, \"\\u0120millisec\": 33606, \"\\u0120combustion\": 33607, \"\\u0120Bottle\": 33608, \"\\u0120Lund\": 33609, \"\\u0120Ps\": 33610, \"\\u0120Dress\": 33611, \"\\u0120fabricated\": 33612, \"\\u0120battered\": 33613, \"\\u0120sidel\": 33614, \"\\u0120Notting\": 33615, \"Foreign\": 33616, \"\\u0120Jerome\": 33617, \"020\": 33618, \"\\u0120Arbit\": 33619, \"\\u0120knots\": 33620, \"\\u0120RIGHT\": 33621, \"Moving\": 33622, \"\\u00e3\\u0123\\u013b\": 33623, \"\\u0120surgeries\": 33624, \"\\u0120courthouse\": 33625, \"\\u0120mastered\": 33626, \"\\u0120hovering\": 33627, \"\\u0120Bran\": 33628, \"\\u0120Alison\": 33629, \"\\u0120safest\": 33630, \"military\": 33631, \"\\u0120bullied\": 33632, \"\\u0120barrage\": 33633, \"Reader\": 33634, \"ESE\": 33635, \"\\u0120Geographic\": 33636, \"Tools\": 33637, \"314\": 33638, \"\\u0120Geek\": 33639, \"roth\": 33640, \"glers\": 33641, \"\\u0120FIN\": 33642, \"\\u00cf\\u0123\": 33643, \"\\u0120Aston\": 33644, \"altern\": 33645, \"488\": 33646, \"\\u0120veterin\": 33647, \"Gamer\": 33648, \"\\u0120intel\": 33649, \"renches\": 33650, \"Shield\": 33651, \"\\u0120amnesty\": 33652, \"\\u0120Bhar\": 33653, \"\\u0120piled\": 33654, \"\\u0120honorable\": 33655, \"\\u0120Institutes\": 33656, \"\\u0120soaked\": 33657, \"\\u0120coma\": 33658, \"\\u0120EFF\": 33659, \"341\": 33660, \"bytes\": 33661, \"\\u0120Gmail\": 33662, \"lein\": 33663, \"\\u0120Canadiens\": 33664, \"material\": 33665, \"Il\": 33666, \"\\u0120instructors\": 33667, \"\\u0120KY\": 33668, \"\\u0120conceive\": 33669, \"ubb\": 33670, \"\\u0120Possible\": 33671, \"\\u0120easing\": 33672, \"\\u0120Christina\": 33673, \"\\u0120caric\": 33674, \"\\u0120HDR\": 33675, \"ROM\": 33676, \"\\u0120shovel\": 33677, \"delete\": 33678, \"\\u0120puff\": 33679, \"\\u0120Changing\": 33680, \"\\u0120seamlessly\": 33681, \"Attribute\": 33682, \"\\u0120acquisitions\": 33683, \"akery\": 33684, \"\\u0120EF\": 33685, \"\\u0120autistic\": 33686, \"\\u0120Takes\": 33687, \"\\u0120Powder\": 33688, \"\\u0120Stir\": 33689, \"510\": 33690, \"\\u0120Bubble\": 33691, \"settings\": 33692, \"\\u0120Fowler\": 33693, \"\\u0120mustard\": 33694, \"\\u0120moreover\": 33695, \"\\u0120copyrighted\": 33696, \"\\u0120LEDs\": 33697, \"1500\": 33698, \"\\u00e6\\u012b\": 33699, \"\\u0120HIS\": 33700, \"enf\": 33701, \"\\u0120custod\": 33702, \"\\u0120Huck\": 33703, \"Gi\": 33704, \"\\u0120img\": 33705, \"Answer\": 33706, \"Ct\": 33707, \"jay\": 33708, \"\\u0120Infrastructure\": 33709, \"\\u0120federally\": 33710, \"Loc\": 33711, \"\\u0120microbes\": 33712, \"\\u0120overrun\": 33713, \"dds\": 33714, \"otent\": 33715, \"adiator\": 33716, \">>>>>>>>\": 33717, \"\\u0120tornado\": 33718, \"\\u0120adjud\": 33719, \"\\u0120intrigued\": 33720, \"\\u0120si\": 33721, \"\\u0120Revelation\": 33722, \"progress\": 33723, \"\\u0120burglary\": 33724, \"\\u0120Saiyan\": 33725, \"\\u0120Kathy\": 33726, \"\\u0120serpent\": 33727, \"\\u0120Andreas\": 33728, \"\\u0120compel\": 33729, \"essler\": 33730, \"\\u0120Plastic\": 33731, \"\\u0120Advent\": 33732, \"\\u0120Positive\": 33733, \"\\u0120Qt\": 33734, \"\\u0120Hindus\": 33735, \"registered\": 33736, \"ularity\": 33737, \"\\u0120righteousness\": 33738, \"\\u0120demonic\": 33739, \"uitive\": 33740, \"\\u0120BDS\": 33741, \"\\u0120Gregg\": 33742, \"cia\": 33743, \"\\u0120Crusade\": 33744, \"\\u0120Sinai\": 33745, \"WARE\": 33746, \"+(\": 33747, \"\\u0120mell\": 33748, \"\\u0120derail\": 33749, \"yards\": 33750, \"Ast\": 33751, \"\\u0120noticeably\": 33752, \"\\u0120Ober\": 33753, \"Ram\": 33754, \"\\u0120unnoticed\": 33755, \"\\u0120seq\": 33756, \"avage\": 33757, \"Ts\": 33758, \"\\u0120640\": 33759, \"\\u0120concede\": 33760, \"\\u0120])\": 33761, \"Fill\": 33762, \"\\u0120captivity\": 33763, \"\\u0120Improvement\": 33764, \"\\u0120Crusader\": 33765, \"araoh\": 33766, \"MAP\": 33767, \"\\u00e6\\u0139\": 33768, \"\\u0120stride\": 33769, \"always\": 33770, \"Fly\": 33771, \"Nit\": 33772, \"\\u0120algae\": 33773, \"\\u0120Cooking\": 33774, \"\\u0120Doors\": 33775, \"Malley\": 33776, \"\\u0120policemen\": 33777, \"\\u00e3\\u0123\\u012f\": 33778, \"\\u0120astronaut\": 33779, \"accessible\": 33780, \"495\": 33781, \"\\u0120RAW\": 33782, \"cliffe\": 33783, \"udicrous\": 33784, \"\\u0120depended\": 33785, \"alach\": 33786, \"\\u0120ventures\": 33787, \"rake\": 33788, \"\\u0120tits\": 33789, \"\\u0120Hou\": 33790, \"\\u0120condom\": 33791, \"ormonal\": 33792, \"\\u0120indent\": 33793, \"\\u0120uploading\": 33794, \"Footnote\": 33795, \"Important\": 33796, \"\\u0120271\": 33797, \"\\u0120mindful\": 33798, \"\\u0120contends\": 33799, \"Cra\": 33800, \"\\u0120calibr\": 33801, \"\\u0120OECD\": 33802, \"plugin\": 33803, \"Fat\": 33804, \"\\u0120ISS\": 33805, \"\\u0120Dynamics\": 33806, \"ansen\": 33807, \"686\": 33808, \"'),\": 33809, \"\\u0120sprite\": 33810, \"\\u0120handheld\": 33811, \"\\u0120Hipp\": 33812, \"=~=~\": 33813, \"Trust\": 33814, \"\\u0120semantics\": 33815, \"\\u0120Bundes\": 33816, \"\\u0120Reno\": 33817, \"\\u0120Literature\": 33818, \"sense\": 33819, \"Gary\": 33820, \"\\u0120Aeg\": 33821, \"\\u0120Trin\": 33822, \"EEK\": 33823, \"\\u0120cleric\": 33824, \"\\u0120SSH\": 33825, \"\\u0120christ\": 33826, \"\\u0120invading\": 33827, \"ibu\": 33828, \"\\u0120enum\": 33829, \"aura\": 33830, \"\\u0120allege\": 33831, \"\\u0120Incredible\": 33832, \"BBC\": 33833, \"\\u0120thru\": 33834, \"\\u0120sailed\": 33835, \"\\u0120emulate\": 33836, \"\\u0120insecurity\": 33837, \"\\u0120crou\": 33838, \"\\u0120accommodations\": 33839, \"\\u0120incompetent\": 33840, \"\\u0120slips\": 33841, \"\\u0120Earthqu\": 33842, \"sama\": 33843, \"ILLE\": 33844, \"\\u0120iPhones\": 33845, \"asaki\": 33846, \"\\u0120bye\": 33847, \"\\u0120ard\": 33848, \"\\u0120extras\": 33849, \"\\u0120slaughtered\": 33850, \"\\u0120crowdfunding\": 33851, \"resso\": 33852, \"\\u0120filib\": 33853, \"\\u0120ERROR\": 33854, \"\\u0120TLS\": 33855, \"egg\": 33856, \"\\u0120Ital\": 33857, \"\\u0120enlist\": 33858, \"\\u0120Catalonia\": 33859, \"\\u0120Scots\": 33860, \"\\u0120sergeant\": 33861, \"\\u0120dissolve\": 33862, \"NH\": 33863, \"\\u0120standings\": 33864, \"rique\": 33865, \"IQ\": 33866, \"\\u0120beneficiary\": 33867, \"\\u0120aquarium\": 33868, \"YouTube\": 33869, \"\\u0120PowerShell\": 33870, \"\\u0120brightest\": 33871, \"\\u0120Warrant\": 33872, \"Sold\": 33873, \"Writing\": 33874, \"\\u0120beginnings\": 33875, \"\\u0120Reserved\": 33876, \"\\u0120Latinos\": 33877, \"heading\": 33878, \"\\u0120440\": 33879, \"\\u0120rooftop\": 33880, \"ATING\": 33881, \"\\u0120390\": 33882, \"VPN\": 33883, \"Gs\": 33884, \"kernel\": 33885, \"turned\": 33886, \"\\u0120preferable\": 33887, \"\\u0120turnovers\": 33888, \"\\u0120Hels\": 33889, \"Sa\": 33890, \"\\u0120Shinji\": 33891, \"veh\": 33892, \"\\u0120MODULE\": 33893, \"Viol\": 33894, \"\\u0120exiting\": 33895, \"\\u0120jab\": 33896, \"\\u0120Vanilla\": 33897, \"\\u0120acron\": 33898, \"\\u0120Gap\": 33899, \"bern\": 33900, \"Ak\": 33901, \"\\u0120McGu\": 33902, \"\\u0120endlessly\": 33903, \"\\u0120Farage\": 33904, \"\\u0120Noel\": 33905, \"Va\": 33906, \"MK\": 33907, \"\\u0120brute\": 33908, \"\\u0120Kru\": 33909, \"\\u0120ESV\": 33910, \"\\u0120Olivia\": 33911, \"\\u00e2\\u0122\\u0142\": 33912, \"\\u0120Kaf\": 33913, \"\\u0120trusting\": 33914, \"\\u0120hots\": 33915, \"324\": 33916, \"\\u0120malaria\": 33917, \"\\u0120json\": 33918, \"\\u0120pounding\": 33919, \"ortment\": 33920, \"Country\": 33921, \"\\u0120postponed\": 33922, \"\\u0120unequiv\": 33923, \"?),\": 33924, \"\\u0120Rooney\": 33925, \"udding\": 33926, \"\\u0120Leap\": 33927, \"urrence\": 33928, \"shapeshifter\": 33929, \"\\u0120HAS\": 33930, \"osate\": 33931, \"\\u0120cavern\": 33932, \"\\u0120conservatism\": 33933, \"\\u0120BAD\": 33934, \"\\u0120mileage\": 33935, \"\\u0120arresting\": 33936, \"Vaults\": 33937, \"\\u0120mixer\": 33938, \"Democratic\": 33939, \"\\u0120Benson\": 33940, \"\\u0120authored\": 33941, \"8000\": 33942, \"\\u0120proactive\": 33943, \"\\u0120Spiritual\": 33944, \"tre\": 33945, \"\\u0120incarcerated\": 33946, \"\\u0120Sort\": 33947, \"\\u0120peaked\": 33948, \"\\u0120wielding\": 33949, \"reciation\": 33950, \"\\u00d7\\u013b\\u00d7\": 33951, \"Patch\": 33952, \"\\u0120Emmy\": 33953, \"\\u0120exqu\": 33954, \"tto\": 33955, \"\\u0120Ratio\": 33956, \"\\u0120Picks\": 33957, \"\\u0120Gry\": 33958, \"phant\": 33959, \"\\u0120fret\": 33960, \"\\u0120ethn\": 33961, \"\\u0120archived\": 33962, \"%-\": 33963, \"cases\": 33964, \"\\u0120Blaze\": 33965, \"\\u0120imb\": 33966, \"cv\": 33967, \"yss\": 33968, \"imony\": 33969, \"\\u0120countdown\": 33970, \"\\u0120awakening\": 33971, \"\\u0120Tunisia\": 33972, \"\\u0120Refer\": 33973, \"\\u0120MJ\": 33974, \"\\u0120unnatural\": 33975, \"\\u0120Carnegie\": 33976, \"izen\": 33977, \"\\u0120Nuggets\": 33978, \"hess\": 33979, \"\\u0120evils\": 33980, \"647\": 33981, \"\\u0120introductory\": 33982, \"loving\": 33983, \"\\u0120McMahon\": 33984, \"\\u0120ambiguity\": 33985, \"Label\": 33986, \"\\u0120Almighty\": 33987, \"\\u0120coloring\": 33988, \"\\u0120Claus\": 33989, \"setting\": 33990, \"NULL\": 33991, \"\\u0120Favorite\": 33992, \"\\u0120SIG\": 33993, \">(\": 33994, \"\\u0120Shiva\": 33995, \"\\u0120Mayer\": 33996, \"\\u0120stormed\": 33997, \"\\u0120Coverage\": 33998, \"weapons\": 33999, \"igham\": 34000, \"\\u0120unanswered\": 34001, \"\\u0120leve\": 34002, \"\\u0120coy\": 34003, \"cas\": 34004, \"bags\": 34005, \"asured\": 34006, \"Seattle\": 34007, \"\\u0120Santorum\": 34008, \"serious\": 34009, \"\\u0120courageous\": 34010, \"\\u0120Soup\": 34011, \"\\u0120confiscated\": 34012, \"\\u0120///\": 34013, \"\\u0120unconventional\": 34014, \"\\u0120moms\": 34015, \"\\u0120Rohingya\": 34016, \"\\u0120Orchestra\": 34017, \"\\u0120Potion\": 34018, \"\\u0120discredit\": 34019, \"\\u0120FIL\": 34020, \"fixed\": 34021, \"\\u0120Deer\": 34022, \"doi\": 34023, \"\\u0120Dimension\": 34024, \"\\u0120bureaucrats\": 34025, \"eteen\": 34026, \"\\u0120actionGroup\": 34027, \"ohm\": 34028, \"\\u0120bumps\": 34029, \"\\u0120Utility\": 34030, \"\\u0120submarines\": 34031, \"renheit\": 34032, \"research\": 34033, \"\\u0120Shapiro\": 34034, \"\\u0120sketches\": 34035, \"\\u0120deceptive\": 34036, \"\\u0120Vil\": 34037, \"esame\": 34038, \"\\u0120Essentially\": 34039, \"\\u0120rampage\": 34040, \"isky\": 34041, \"\\u0120muttered\": 34042, \"thritis\": 34043, \"\\u0120236\": 34044, \"fet\": 34045, \"bars\": 34046, \"\\u0120pupil\": 34047, \"\\u0120Thou\": 34048, \"oS\": 34049, \"song\": 34050, \"\\u0120fractured\": 34051, \"\\u0120revert\": 34052, \"picture\": 34053, \"\\u0120criterion\": 34054, \"usher\": 34055, \"\\u0120repercussions\": 34056, \"\\u0120Vintage\": 34057, \"\\u0120Superintendent\": 34058, \"Officers\": 34059, \"\\u0120flagged\": 34060, \"\\u0120blames\": 34061, \"\\u0120inverse\": 34062, \"ographers\": 34063, \"\\u0120makeshift\": 34064, \"\\u0120devoid\": 34065, \"\\u0120fossils\": 34066, \"\\u0120Aristotle\": 34067, \"\\u0120Funds\": 34068, \"\\u0120depleted\": 34069, \"\\u0120Flu\": 34070, \"\\u0120Yuan\": 34071, \"\\u0120woes\": 34072, \"\\u0120lipid\": 34073, \"\\u0120situ\": 34074, \"requisites\": 34075, \"\\u0120furnish\": 34076, \"\\u0120Samar\": 34077, \"\\u0120shameful\": 34078, \"\\u0120adversely\": 34079, \"\\u0120adept\": 34080, \"\\u0120remorse\": 34081, \"\\u0120murderous\": 34082, \"uckles\": 34083, \"\\u0120ESL\": 34084, \"\\u0120314\": 34085, \"sent\": 34086, \"\\u0120redef\": 34087, \"\\u0120Cache\": 34088, \"\\u0120Purs\": 34089, \"igans\": 34090, \"\\u0120460\": 34091, \"\\u0120prescriptions\": 34092, \"\\u0120fres\": 34093, \"Fuck\": 34094, \"ocrates\": 34095, \"Twenty\": 34096, \"\\u0120Weird\": 34097, \"\\u0120Toggle\": 34098, \"\\u0120Called\": 34099, \"itizens\": 34100, \"\\u0120poultry\": 34101, \"\\u0120harvesting\": 34102, \"\\u00e3\\u0124\\u00a6\\u00e3\\u0124\\u00b9\": 34103, \"Bottom\": 34104, \"\\u0120cautioned\": 34105, \"tn\": 34106, \"396\": 34107, \"\\u0120Nikki\": 34108, \"\\u0120evaluations\": 34109, \"\\u0120harassing\": 34110, \"\\u0120bindings\": 34111, \"\\u0120Monetary\": 34112, \"\\u0120hitters\": 34113, \"\\u0120adversary\": 34114, \"unts\": 34115, \"\\u0120setback\": 34116, \"\\u0120encrypt\": 34117, \"\\u0120Cait\": 34118, \"\\u0120lows\": 34119, \"enges\": 34120, \"\\u0120Norn\": 34121, \"\\u0120bulbs\": 34122, \"\\u0120bottled\": 34123, \"\\u0120Voyager\": 34124, \"317\": 34125, \"\\u0120spheres\": 34126, \"politics\": 34127, \"\\u0120subtract\": 34128, \"\\u0120sensations\": 34129, \"\\u0120appalling\": 34130, \"\\u0120316\": 34131, \"\\u0120environmentally\": 34132, \"\\u0120STEM\": 34133, \"\\u0120publishes\": 34134, \"560\": 34135, \"\\u0120diligence\": 34136, \"484\": 34137, \"\\u0120advises\": 34138, \"\\u0120petrol\": 34139, \"\\u0120imagining\": 34140, \"\\u0120patrols\": 34141, \"\\u0120Integer\": 34142, \"\\u0120Ashes\": 34143, \"actus\": 34144, \"\\u0120Radiant\": 34145, \"\\u0120LT\": 34146, \"itability\": 34147, \"htaking\": 34148, \"Setting\": 34149, \"\\u0120nuanced\": 34150, \"\\u0120Reef\": 34151, \"\\u0120Developers\": 34152, \"Ni\": 34153, \"pieces\": 34154, \"990\": 34155, \"License\": 34156, \"\\u0120lowers\": 34157, \"\\u0120Ottoman\": 34158, \"327\": 34159, \"ooo\": 34160, \"\\u0120quitting\": 34161, \"markets\": 34162, \"Behind\": 34163, \"\\u0120basin\": 34164, \"\\u0120docs\": 34165, \"anie\": 34166, \"flash\": 34167, \"ctl\": 34168, \"\\u0120civilized\": 34169, \"\\u0120Fukushima\": 34170, \"\\\"],\\\"\": 34171, \"\\u0120KS\": 34172, \"\\u0120Honestly\": 34173, \"arat\": 34174, \"\\u0120constructs\": 34175, \"\\u0120Lans\": 34176, \"\\u0120Dire\": 34177, \"\\u0120LIKE\": 34178, \"\\u0120Trouble\": 34179, \"\\u0120withholding\": 34180, \"\\u0120Oblivion\": 34181, \"\\u0120sanity\": 34182, \"anya\": 34183, \"Const\": 34184, \"\\u0120grocer\": 34185, \"\\u0120Celsius\": 34186, \"\\u0120recounted\": 34187, \"\\u0120Wife\": 34188, \"Border\": 34189, \"atered\": 34190, \"happy\": 34191, \"\\u0120spoiler\": 34192, \"\\u0120logically\": 34193, \"Hall\": 34194, \"\\u0120succeeding\": 34195, \"\\u0120polymorph\": 34196, \"\\u0120axes\": 34197, \"\\u0120Shotgun\": 34198, \"\\u0120Slim\": 34199, \"\\u0120Principles\": 34200, \"\\u0120Leth\": 34201, \"arta\": 34202, \"\\u0120scor\": 34203, \"Screenshot\": 34204, \"\\u0120relaxation\": 34205, \"#$#$\": 34206, \"\\u0120deterrent\": 34207, \"iddy\": 34208, \"\\u0120powerless\": 34209, \"\\u0120lesbians\": 34210, \"\\u0120chords\": 34211, \"\\u0120Edited\": 34212, \"selected\": 34213, \"\\u0120separatists\": 34214, \"0002\": 34215, \"\\u0120airspace\": 34216, \"\\u0120turnaround\": 34217, \"\\u0120cunning\": 34218, \"PATH\": 34219, \"Poly\": 34220, \"\\u0120bombed\": 34221, \"\\u0120tion\": 34222, \"xs\": 34223, \"\\u0120withhold\": 34224, \"\\u0120waged\": 34225, \"\\u0120Liberties\": 34226, \"Flag\": 34227, \"\\u0120comforting\": 34228, \"454\": 34229, \"\\u0120Iris\": 34230, \"arers\": 34231, \"\\u0120rag\": 34232, \"\\u0120relocated\": 34233, \"\\u0120Guarant\": 34234, \"\\u0120strategically\": 34235, \"\\u0120gamma\": 34236, \"uberty\": 34237, \"\\u0120Lockheed\": 34238, \"gres\": 34239, \"\\u0120grilled\": 34240, \"\\u0120Lowe\": 34241, \"stats\": 34242, \"\\u0120Rocks\": 34243, \"\\u0120sensing\": 34244, \"\\u0120renting\": 34245, \"\\u0120Geological\": 34246, \"\\u00d8\\u00a7\\u00d8\": 34247, \"otrop\": 34248, \"\\u0120sew\": 34249, \"\\u0120improperly\": 34250, \"486\": 34251, \"\\u0120\\u00e2\\u0138\\u0142\": 34252, \"\\u0120starving\": 34253, \"\\u0120Bj\": 34254, \"Discussion\": 34255, \"328\": 34256, \"\\u0120Combo\": 34257, \"\\u0120Fixes\": 34258, \"NAT\": 34259, \"\\u0120striving\": 34260, \"thora\": 34261, \"\\u0120harvested\": 34262, \"\\u0120Ping\": 34263, \"\\u0120playful\": 34264, \"\\u0120avenues\": 34265, \"\\u0120occupational\": 34266, \"\\u0120wakes\": 34267, \"\\u0120Courier\": 34268, \"\\u0120drummer\": 34269, \"\\u0120Browser\": 34270, \"\\u0120Houth\": 34271, \"itu\": 34272, \"\\u0120apparel\": 34273, \"paste\": 34274, \"\\u0120hunted\": 34275, \"\\u0120Secondly\": 34276, \"lain\": 34277, \"XY\": 34278, \"\\u0120PIN\": 34279, \"icons\": 34280, \"\\u0120cocktails\": 34281, \"\\u0120sizable\": 34282, \"\\u0120hurdles\": 34283, \"estinal\": 34284, \"\\u0120Recreation\": 34285, \"\\u0120eco\": 34286, \"648\": 34287, \"\\u0120Died\": 34288, \"mint\": 34289, \"\\u0120fingerprints\": 34290, \"\\u0120dispose\": 34291, \"\\u0120Bosnia\": 34292, \"tsy\": 34293, \"2200\": 34294, \"\\u0120inspected\": 34295, \"\\u0120Fou\": 34296, \"\\u0120fuss\": 34297, \"\\u0120ambush\": 34298, \"\\u0120Rak\": 34299, \"\\u0120manifested\": 34300, \"Prosecut\": 34301, \"\\u0120suffice\": 34302, \"rences\": 34303, \"\\u0120compensated\": 34304, \"\\u0120Cyrus\": 34305, \"\\u0120genus\": 34306, \"\\u0120Wolverine\": 34307, \"\\u0120Trends\": 34308, \"\\u0120hikes\": 34309, \"\\u0120Seen\": 34310, \"\\u0120enrol\": 34311, \"Cold\": 34312, \"\\u0120politely\": 34313, \"\\u0120Slav\": 34314, \"\\u0120Rupert\": 34315, \"\\u0120eyewitness\": 34316, \"\\u0120Alto\": 34317, \"\\u0120uncomp\": 34318, \"\\u0120posterior\": 34319, \"Must\": 34320, \"\\u0120Herz\": 34321, \"\\u0120progressively\": 34322, \"\\u0120234\": 34323, \"\\u0120indifference\": 34324, \"\\u0120Cunningham\": 34325, \"\\u0120academia\": 34326, \"\\u0120sewer\": 34327, \"\\u0120astounding\": 34328, \"\\u0120AES\": 34329, \"rather\": 34330, \"\\u0120eldest\": 34331, \"\\u0120climbs\": 34332, \"\\u0120Adds\": 34333, \"\\u0120outcry\": 34334, \"\\u0120contag\": 34335, \"\\u0120Houses\": 34336, \"\\u0120pept\": 34337, \"\\u0120Melania\": 34338, \"interested\": 34339, \"\\u0120UCH\": 34340, \"\\u0120Roots\": 34341, \"\\u0120Hubbard\": 34342, \"\\u0120TBD\": 34343, \"\\u0120Romanian\": 34344, \"filename\": 34345, \"Stone\": 34346, \"\\u0120Impl\": 34347, \"\\u0120chromosome\": 34348, \"Cle\": 34349, \"dx\": 34350, \"\\u0120scrambled\": 34351, \"\\u0120Pt\": 34352, \"\\u0120242\": 34353, \"OPLE\": 34354, \"\\u0120tremendously\": 34355, \"Street\": 34356, \"\\u0120craving\": 34357, \"\\u0120bundled\": 34358, \"\\u0120RG\": 34359, \"pipe\": 34360, \"\\u0120injuring\": 34361, \"\\u0120arcane\": 34362, \"Particip\": 34363, \"\\u0120Heroic\": 34364, \"sty\": 34365, \"\\u0120topping\": 34366, \"\\u0120Tempest\": 34367, \"rentices\": 34368, \"bh\": 34369, \"\\u0120paranoia\": 34370, \"\\u0120Unicode\": 34371, \"\\u0120egregious\": 34372, \"\\u0120\\\\'\": 34373, \"\\u0120Oswald\": 34374, \"\\u0120gravel\": 34375, \"\\u0120Simpsons\": 34376, \"\\u0120bland\": 34377, \"\\u0120Guantanamo\": 34378, \"Writer\": 34379, \"liners\": 34380, \"\\u0120Dice\": 34381, \"JC\": 34382, \"\\u0120parity\": 34383, \"\\u0120sided\": 34384, \"\\u0120237\": 34385, \"\\u0120Pyrrha\": 34386, \"atters\": 34387, \"dk\": 34388, \"Fine\": 34389, \"compan\": 34390, \"\\u0120formulated\": 34391, \"\\u0120Idol\": 34392, \"ilers\": 34393, \"hemoth\": 34394, \"\\u0120Fav\": 34395, \"\\u0120intrusion\": 34396, \"\\u0120carrots\": 34397, \"\\u0120Layer\": 34398, \"\\u0120Hacker\": 34399, \"\\u0120----------------\": 34400, \"\\u0120moderation\": 34401, \"\\u00e9\\u0123\": 34402, \"ococ\": 34403, \"\\u0120characterize\": 34404, \"\\u0120Teresa\": 34405, \"\\u0120socioeconomic\": 34406, \"\\u0120perk\": 34407, \"\\u0120Participation\": 34408, \"training\": 34409, \"\\u0120Paulo\": 34410, \"phys\": 34411, \"\\u0120trustworthy\": 34412, \"\\u0120embodied\": 34413, \"\\u0120Merch\": 34414, \"currency\": 34415, \"\\u0120Priority\": 34416, \"\\u0120teasing\": 34417, \"\\u0120absorbing\": 34418, \"\\u0120unfinished\": 34419, \"\\u0120Comparison\": 34420, \"\\u0120disple\": 34421, \"writers\": 34422, \"\\u0120professions\": 34423, \"\\u0120Penguin\": 34424, \"\\u0120angrily\": 34425, \"\\u0120LINK\": 34426, \"688\": 34427, \"\\u0120Correspond\": 34428, \"\\u0120prevailed\": 34429, \"\\u0120cartel\": 34430, \"lp\": 34431, \"asms\": 34432, \"\\u0120Redemption\": 34433, \"\\u0120Islamists\": 34434, \"effects\": 34435, \"dose\": 34436, \"\\u0120Latter\": 34437, \"\\u0120Halifax\": 34438, \"\\u0120vas\": 34439, \"\\u0120Topics\": 34440, \"\\u0120Named\": 34441, \"advertising\": 34442, \"zza\": 34443, \"ICES\": 34444, \"\\u0120retarded\": 34445, \"achable\": 34446, \"\\u0120Puppet\": 34447, \"\\u0120ItemLevel\": 34448, \"\\u0120retract\": 34449, \"\\u0120identifiable\": 34450, \"Aaron\": 34451, \"\\u0120Buster\": 34452, \"sol\": 34453, \"helle\": 34454, \"assemb\": 34455, \"Hope\": 34456, \"ranged\": 34457, \"Ba\": 34458, \"\\u0120Purch\": 34459, \"\\u00e9\\u0122\": 34460, \"\\u0120Siri\": 34461, \"\\u0120arrivals\": 34462, \"\\u01201912\": 34463, \"\\u0120shortened\": 34464, \"\\u0120312\": 34465, \"\\u0120discrepancy\": 34466, \"\\u0120Temperature\": 34467, \"\\u0120Walton\": 34468, \"\\u0120kinderg\": 34469, \"polit\": 34470, \"\\u0120remix\": 34471, \"\\u0120connectors\": 34472, \"\\u00e3\\u0125\\u013a\\u00e3\\u0125\\u00a9\": 34473, \"\\u0120Kazakhstan\": 34474, \"dominated\": 34475, \"\\u0120sugars\": 34476, \"imble\": 34477, \"\\u0120Panic\": 34478, \"\\u0120Demand\": 34479, \"\\u0120Colony\": 34480, \"onen\": 34481, \"\\u0120MER\": 34482, \"775\": 34483, \"uria\": 34484, \"azaar\": 34485, \"\\u0120Degree\": 34486, \"Pri\": 34487, \"\\u0120sunshine\": 34488, \"\\u0120251\": 34489, \"\\u0120psychedelic\": 34490, \"\\u0120digitally\": 34491, \"\\u0120Braun\": 34492, \"\\u0120shimmer\": 34493, \"\\u0120shave\": 34494, \"\\u0120Telesc\": 34495, \"\\u0120Astral\": 34496, \"\\u0120Venezuelan\": 34497, \"\\u0120OG\": 34498, \"\\u0120crawling\": 34499, \"Integ\": 34500, \"\\u0120Feather\": 34501, \"\\u0120unfolding\": 34502, \"\\u0120appropriation\": 34503, \"\\u0120\\u00e8\\u00a3\\u0131\\u00e8\": 34504, \"\\u0120Mobility\": 34505, \"\\u0120Ney\": 34506, \"-.\": 34507, \"bilt\": 34508, \"LIN\": 34509, \"\\u0120Tube\": 34510, \"\\u0120Conversely\": 34511, \"\\u0120keyboards\": 34512, \"\\u0120Cao\": 34513, \"\\u0120overth\": 34514, \"\\u0120laure\": 34515, \">>\\\\\": 34516, \"\\u0120Viper\": 34517, \"acha\": 34518, \"Offset\": 34519, \"\\u0120Raleigh\": 34520, \"\\u0120Jae\": 34521, \"Jordan\": 34522, \"jp\": 34523, \"\\u0120totalitarian\": 34524, \"Connector\": 34525, \"\\u0120observes\": 34526, \"\\u0120Spartan\": 34527, \"\\u0120Immediately\": 34528, \"\\u0120Scal\": 34529, \"Cool\": 34530, \"\\u0120taps\": 34531, \"\\u0120roar\": 34532, \"Past\": 34533, \"\\u0120chars\": 34534, \"\\u0120Bender\": 34535, \"\\u0120Sheldon\": 34536, \"\\u0120painter\": 34537, \"\\u0120beacon\": 34538, \"\\u0120Creatures\": 34539, \"\\u0120downturn\": 34540, \"\\u0120hinder\": 34541, \"\\u0120Andromeda\": 34542, \"\\u00c3\\u013d\": 34543, \"ccoli\": 34544, \"\\u0120Fitness\": 34545, \"etrical\": 34546, \"\\u0120utilizes\": 34547, \"\\u0120senate\": 34548, \"\\u0120ensemble\": 34549, \"\\u0120cheers\": 34550, \"TW\": 34551, \"\\u0120affluent\": 34552, \"kil\": 34553, \"rylic\": 34554, \"ordering\": 34555, \"Computer\": 34556, \"\\u0120gruesome\": 34557, \"ostics\": 34558, \"\\u0120Ubisoft\": 34559, \"\\u0120Kelley\": 34560, \"\\u0120wrench\": 34561, \"\\u0120bourgeoisie\": 34562, \"IBLE\": 34563, \"\\u0120Preston\": 34564, \"worn\": 34565, \"arist\": 34566, \"reating\": 34567, \"\\u0120stained\": 34568, \"arine\": 34569, \"\\u0120slime\": 34570, \"ENN\": 34571, \"\\u0120chests\": 34572, \"\\u0120groundwater\": 34573, \"annot\": 34574, \"\\u0120Tray\": 34575, \"\\u0120Locke\": 34576, \"\\u0120CTR\": 34577, \"\\u0120dudes\": 34578, \"\\u0120External\": 34579, \"\\u0120Decoder\": 34580, \"\\u0120paramed\": 34581, \"\\u0120Medline\": 34582, \"809\": 34583, \"\\u0120Dinner\": 34584, \"rupal\": 34585, \"gz\": 34586, \"\\u0120Gum\": 34587, \"\\u0120Demo\": 34588, \"jee\": 34589, \"\\u0120dh\": 34590, \"berman\": 34591, \"archs\": 34592, \"\\u0120enqu\": 34593, \"\\u0120Epstein\": 34594, \"\\u0120devastation\": 34595, \"\\u0120friendships\": 34596, \"\\u0120Ard\": 34597, \"\\u0120231\": 34598, \"\\u0120Rubin\": 34599, \"\\u0120Distance\": 34600, \"\\u0120spurred\": 34601, \"\\u0120dossier\": 34602, \"\\u0120overlooking\": 34603, \"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\": 34604, \"Forest\": 34605, \"\\u0120Comes\": 34606, \"\\\\\\\",\": 34607, \"\\u0120Iranians\": 34608, \"\\u0120fixtures\": 34609, \"Laughs\": 34610, \"\\u0120curry\": 34611, \"\\u0120Kingston\": 34612, \"\\u0120squash\": 34613, \"\\u0120catalogue\": 34614, \"\\u0120abnormalities\": 34615, \"\\u0120digestive\": 34616, \".........\": 34617, \"\\u0120subordinate\": 34618, \"ogly\": 34619, \"\\u0120249\": 34620, \"Middle\": 34621, \"\\u0120massac\": 34622, \"\\u0120burgers\": 34623, \"\\u0120downstairs\": 34624, \"\\u01201931\": 34625, \"394\": 34626, \"\\u0120VG\": 34627, \"\\u0120lasers\": 34628, \"\\u0120Sikh\": 34629, \"\\u0120Alexa\": 34630, \"derived\": 34631, \"\\u0120cyclist\": 34632, \"\\u00e3\\u0123\\u00ae\\u00e9\\u0143\\u0136\": 34633, \"oneliness\": 34634, \"!!!!!!!!\": 34635, \"\\u0120buffs\": 34636, \"legate\": 34637, \"\\u0120raping\": 34638, \"\\u0120recommending\": 34639, \"rored\": 34640, \"\\u0120multicultural\": 34641, \"unique\": 34642, \"\\u0120businessmen\": 34643, \"\\u0120uneasy\": 34644, \"\\u0120MAP\": 34645, \"\\u0120dispersed\": 34646, \"cipline\": 34647, \"Jess\": 34648, \"\\u0120Kerala\": 34649, \"\\u00e5\\u00a7\": 34650, \"\\u0120abstraction\": 34651, \"Surv\": 34652, \"Uh\": 34653, \"\\u0120printers\": 34654, \"ija\": 34655, \"owder\": 34656, \"\\u0120analogous\": 34657, \"\\u0120ASP\": 34658, \"afer\": 34659, \"\\u0120unfolded\": 34660, \"\\u0120leveling\": 34661, \"\\u0120breached\": 34662, \"\\u0120Hearing\": 34663, \"\\u0120nat\": 34664, \"\\u0120translating\": 34665, \"critical\": 34666, \"\\u0120antagonist\": 34667, \"\\u0120Yesterday\": 34668, \"\\u0120fuzzy\": 34669, \"wash\": 34670, \"mere\": 34671, \"\\u0120bewild\": 34672, \"\\u0120Mae\": 34673, \"Virgin\": 34674, \"phrase\": 34675, \"\\u0120signaled\": 34676, \"\\u0120HIGH\": 34677, \"\\u0120protester\": 34678, \"\\u0120garner\": 34679, \"unknown\": 34680, \"\\u0120kay\": 34681, \"\\u0120abducted\": 34682, \"\\u0120stalking\": 34683, \"amn\": 34684, \"\\u0120deserving\": 34685, \"\\u0120Riv\": 34686, \"\\u0120Jorge\": 34687, \"\\u0120scratching\": 34688, \"\\u0120Saving\": 34689, \"iping\": 34690, \"\\u0120tease\": 34691, \"\\u0120missionary\": 34692, \"\\u0120Morrow\": 34693, \"TIME\": 34694, \"Present\": 34695, \"\\u0120chemotherapy\": 34696, \"terness\": 34697, \"\\u0120Homes\": 34698, \"\\u0120Purdue\": 34699, \"\\u0120staunch\": 34700, \"\\u0120Whitney\": 34701, \"\\u0120THERE\": 34702, \"\\u00ce\\u00bc\": 34703, \"iatus\": 34704, \"\\u0120Ernest\": 34705, \"\\u0120Deploy\": 34706, \"\\u0120coveted\": 34707, \"FML\": 34708, \"\\u0120Dialogue\": 34709, \"\\u0120exited\": 34710, \"fruit\": 34711, \"\\u0120nerd\": 34712, \"\\\":\\\"\\\",\\\"\": 34713, \"\\u0120vivo\": 34714, \"ruly\": 34715, \"460\": 34716, \"\\u0120Amen\": 34717, \"rehensible\": 34718, \"\\u0120\\u00e2\\u013a\": 34719, \"DIR\": 34720, \"\\u0120adherence\": 34721, \"\\u0120chew\": 34722, \"\\u0120Coke\": 34723, \"\\u0120Sergei\": 34724, \"digital\": 34725, \"\\u0120Neck\": 34726, \"gently\": 34727, \"enthal\": 34728, \"/)\": 34729, \"\\u0120weary\": 34730, \"\\u0120guise\": 34731, \"\\u0120Concord\": 34732, \"\\u0120Onion\": 34733, \"atcher\": 34734, \"\\u0120binge\": 34735, \"\\u0120Directive\": 34736, \"\\u0120manned\": 34737, \"ansk\": 34738, \"\\u0120illusions\": 34739, \"\\u0120billionaires\": 34740, \"383\": 34741, \"olyn\": 34742, \"odynamic\": 34743, \"\\u0120Wheat\": 34744, \"\\u0120Alic\": 34745, \"\\u0120coloured\": 34746, \"\\u0120NAFTA\": 34747, \"abo\": 34748, \"\\u0120macros\": 34749, \"independent\": 34750, \"sweet\": 34751, \"\\u0120spac\": 34752, \"\\u0120Kabul\": 34753, \"\\u0120\\u00c4\": 34754, \"eme\": 34755, \"\\u0120dictated\": 34756, \"\\u0120shouts\": 34757, \"={\": 34758, \"\\u0120ripping\": 34759, \"\\u0120Shay\": 34760, \"\\u0120Cricket\": 34761, \"directed\": 34762, \"\\u0120analysed\": 34763, \"\\u0120WARRANT\": 34764, \"agons\": 34765, \"\\u0120Blazers\": 34766, \"\\u0120cheered\": 34767, \"\\u0120arithmetic\": 34768, \"\\u0120Tanz\": 34769, \"373\": 34770, \"\\u0120Flags\": 34771, \"\\u0120295\": 34772, \"\\u0120witches\": 34773, \"\\u0120Included\": 34774, \"\\u0120Gained\": 34775, \"\\u0120Blades\": 34776, \"Gam\": 34777, \"\\u0120Samantha\": 34778, \"\\u0120Atlantis\": 34779, \"\\u0120Pratt\": 34780, \"\\u0120spoiled\": 34781, \"\\u0120IB\": 34782, \"\\u0120Ramirez\": 34783, \"Probably\": 34784, \"rero\": 34785, \"\\u0120Ng\": 34786, \"\\u0120Warlock\": 34787, \"tp\": 34788, \"\\u0120overhe\": 34789, \"\\u0120administrations\": 34790, \"\\u0120tint\": 34791, \"\\u0120regiment\": 34792, \"\\u0120pistols\": 34793, \"\\u0120blankets\": 34794, \"\\u0120epist\": 34795, \"\\u0120bowls\": 34796, \"\\u0120hydraulic\": 34797, \"\\u0120dean\": 34798, \"\\u0120jung\": 34799, \"\\u0120ascend\": 34800, \"705\": 34801, \"\\u0120Santiago\": 34802, \"\\u00c3\\u00ae\": 34803, \"\\u0120unavoid\": 34804, \"\\u0120Shaman\": 34805, \"reb\": 34806, \"\\u0120stemming\": 34807, \"998\": 34808, \"\\u0120MG\": 34809, \"sticks\": 34810, \"esthesia\": 34811, \"ERO\": 34812, \"\\u0120morbid\": 34813, \"\\u0120Grill\": 34814, \"\\u0120Poe\": 34815, \"anyl\": 34816, \"\\u0120deleting\": 34817, \"\\u0120Surveillance\": 34818, \"\\u0120directives\": 34819, \"\\u0120iterations\": 34820, \"\\u0120Rox\": 34821, \"\\u0120Milky\": 34822, \"Father\": 34823, \"\\u0120patented\": 34824, \"447\": 34825, \"\\u0120precursor\": 34826, \"\\u0120maiden\": 34827, \"\\u0120Phen\": 34828, \"\\u0120Vegan\": 34829, \"\\u0120Patent\": 34830, \"Kelly\": 34831, \"Redditor\": 34832, \"\\u0120nods\": 34833, \"\\u0120ventilation\": 34834, \"\\u0120Schwarz\": 34835, \"\\u0120wizards\": 34836, \"\\u0120ominous\": 34837, \"\\u0120Heads\": 34838, \"\\u0120BG\": 34839, \"\\u0120lumber\": 34840, \"\\u0120Spiel\": 34841, \"\\u0120isEnabled\": 34842, \"\\u0120ancestral\": 34843, \"\\u0120Ships\": 34844, \"\\u0120wrestler\": 34845, \"phi\": 34846, \"\\u0120yuan\": 34847, \"\\u0120Rebellion\": 34848, \"\\u0120iceberg\": 34849, \"\\u0120magically\": 34850, \"\\u0120diversion\": 34851, \"arro\": 34852, \"ythm\": 34853, \"\\u0120Riders\": 34854, \"\\u0120Robbie\": 34855, \"\\u0120Kara\": 34856, \"\\u0120Maintenance\": 34857, \"\\u0120Herb\": 34858, \"\\u0120harms\": 34859, \"packed\": 34860, \"\\u0120Feinstein\": 34861, \"\\u0120marrying\": 34862, \"\\u0120blending\": 34863, \"\\u0120Rates\": 34864, \"\\u01201880\": 34865, \"\\u0120wrink\": 34866, \"\\u0120Unch\": 34867, \"\\u0120Torch\": 34868, \"described\": 34869, \"\\u0120humanoid\": 34870, \"ilitating\": 34871, \"\\u0120Conv\": 34872, \"\\u0120Feld\": 34873, \"IGHTS\": 34874, \"\\u0120whistleblower\": 34875, \"ortmund\": 34876, \"etsy\": 34877, \"arrett\": 34878, \"\\u0120Mono\": 34879, \"\\u0120Ike\": 34880, \"\\u0120CNBC\": 34881, \"\\u0120WAY\": 34882, \"\\u0120MDMA\": 34883, \"\\u0120Individuals\": 34884, \"\\u0120supplemental\": 34885, \"\\u0120powerhouse\": 34886, \"\\u0120Stru\": 34887, \"Focus\": 34888, \"aphael\": 34889, \"\\u0120Colleg\": 34890, \"atti\": 34891, \"ZA\": 34892, \"\\u0120perenn\": 34893, \"\\u0120Signature\": 34894, \"\\u0120Rodney\": 34895, \"\\u0120cubes\": 34896, \"iddled\": 34897, \"\\u0120Dante\": 34898, \"\\u0120INV\": 34899, \"ilingual\": 34900, \"\\u0120Cth\": 34901, \"\\u0120sofa\": 34902, \"\\u0120intimidate\": 34903, \"\\u0120Roe\": 34904, \"\\u0120Diplom\": 34905, \"\\u0120Countries\": 34906, \"ayson\": 34907, \"\\u0120extradition\": 34908, \"\\u0120disabling\": 34909, \"\\u0120Cardiff\": 34910, \"\\u0120memorandum\": 34911, \"\\u0120Trace\": 34912, \"\\u0120???\": 34913, \"sector\": 34914, \"\\u0120Rouhani\": 34915, \"\\u0120Yates\": 34916, \"\\u0120Freeze\": 34917, \"\\u0120bladder\": 34918, \"Motor\": 34919, \"\\u0120Promise\": 34920, \"antasy\": 34921, \"\\u0120foreseeable\": 34922, \"\\u0120Cologne\": 34923, \"container\": 34924, \"\\u0120Trees\": 34925, \"\\u0120Gors\": 34926, \"\\u0120Sinclair\": 34927, \"\\u0120barring\": 34928, \"keye\": 34929, \"\\u0120slashed\": 34930, \"\\u0120Statistical\": 34931, \"\\u00e9\\u0129\": 34932, \"\\u0120\\u00e2\\u0138\\u00ba\": 34933, \"Allows\": 34934, \"\\u0120humility\": 34935, \"\\u0120drilled\": 34936, \"\\u0120Furn\": 34937, \"443\": 34938, \"\\u0120sewage\": 34939, \"\\u0120homepage\": 34940, \"\\u0120courtyard\": 34941, \"\\u0120vile\": 34942, \"\\u0120subsidiaries\": 34943, \"ajo\": 34944, \"directory\": 34945, \"\\u0120ammon\": 34946, \"Vers\": 34947, \"charges\": 34948, \"\\u0120}}\": 34949, \"\\u0120Chains\": 34950, \"\\u0120246\": 34951, \"nob\": 34952, \"\\u0120percept\": 34953, \"\\u0120grit\": 34954, \"\\u0120fishermen\": 34955, \"\\u0120Iraqis\": 34956, \"\\u0120DISTR\": 34957, \"\\u0120FULL\": 34958, \"\\u0120Evaluation\": 34959, \"graph\": 34960, \"atial\": 34961, \"\\u0120cooperating\": 34962, \"\\u0120melan\": 34963, \"\\u0120enlightened\": 34964, \"\\u0120ali\": 34965, \"tailed\": 34966, \"\\u0120salute\": 34967, \"\\u0120weakest\": 34968, \"\\u0120Bulldogs\": 34969, \"UA\": 34970, \"\\u0120Alloy\": 34971, \"\\u0120semen\": 34972, \"ocene\": 34973, \"\\u0120Williamson\": 34974, \"spr\": 34975, \",\\u00e2\\u0122\\u0136\": 34976, \"\\u0120GF\": 34977, \"ittens\": 34978, \"Beat\": 34979, \"\\u0120Junk\": 34980, \"iphate\": 34981, \"\\u0120Farmers\": 34982, \"\\u0120Bitcoins\": 34983, \"igers\": 34984, \"dh\": 34985, \"\\u0120Loyal\": 34986, \"payer\": 34987, \"\\u0120entertained\": 34988, \"\\u0120penned\": 34989, \"\\u0120coupon\": 34990, \"Queue\": 34991, \"\\u0120weakening\": 34992, \"carry\": 34993, \"\\u0120underestimate\": 34994, \"\\u0120shootout\": 34995, \"\\u0120charismatic\": 34996, \"\\u0120Procedure\": 34997, \"\\u0120prudent\": 34998, \"inances\": 34999, \"\\u0120riches\": 35000, \"\\u0120cortical\": 35001, \"\\u0120strides\": 35002, \"\\u0120drib\": 35003, \"\\u0120Oilers\": 35004, \"540\": 35005, \"\\u0120Perform\": 35006, \"\\u0120Bangkok\": 35007, \"\\u0120euth\": 35008, \"SER\": 35009, \"\\u0120simplistic\": 35010, \"tops\": 35011, \"campaign\": 35012, \"Quality\": 35013, \"\\u0120impoverished\": 35014, \"\\u0120Eisenhower\": 35015, \"\\u0120augment\": 35016, \"\\u0120Harden\": 35017, \"\\u0120intervened\": 35018, \"\\u0120listens\": 35019, \"\\u0120Kok\": 35020, \"\\u0120sage\": 35021, \"\\u0120rubbish\": 35022, \"\\u0120Ded\": 35023, \"\\u0120mull\": 35024, \"pelling\": 35025, \"\\u0120videot\": 35026, \"Production\": 35027, \"DJ\": 35028, \"miah\": 35029, \"\\u0120adaptations\": 35030, \"\\u0120medically\": 35031, \"\\u0120boarded\": 35032, \"\\u0120arrogance\": 35033, \"\\u0120scrapped\": 35034, \"\\u0120oppress\": 35035, \"FORMATION\": 35036, \"\\u0120junction\": 35037, \"415\": 35038, \"EEEE\": 35039, \"Skill\": 35040, \"\\u0120subdu\": 35041, \"\\u0120Suggest\": 35042, \"\\u0120Pett\": 35043, \"\\u0120lett\": 35044, \"\\u0120Manip\": 35045, \"\\u0120Caf\": 35046, \"\\u0120Cooperation\": 35047, \"Ther\": 35048, \"\\u0120regained\": 35049, \"\\u00b6\\u00e6\": 35050, \"reflect\": 35051, \"\\u0120thugs\": 35052, \"\\u0120Shelby\": 35053, \"\\u0120dictates\": 35054, \"\\u0120Weiner\": 35055, \"\\u0120Hale\": 35056, \"\\u0120battleground\": 35057, \"schild\": 35058, \"\\u0120condol\": 35059, \"hunt\": 35060, \"ositories\": 35061, \"\\u0120accuses\": 35062, \"Filename\": 35063, \"\\u0120shri\": 35064, \"\\u0120motivate\": 35065, \"\\u0120reflections\": 35066, \"Null\": 35067, \"\\u0120Lobby\": 35068, \"\\u00a5\\u00b5\": 35069, \"\\u0120SATA\": 35070, \"\\u0120Backup\": 35071, \"\\u00d1\\u0125\": 35072, \"nin\": 35073, \"\\u0120Correction\": 35074, \"\\u0120juicy\": 35075, \"utra\": 35076, \"\\u0120Pric\": 35077, \"\\u0120restraining\": 35078, \"\\u0120Airbnb\": 35079, \"\\u0120Arrest\": 35080, \"\\u0120appropriations\": 35081, \"\\u0120slopes\": 35082, \"\\u0120manslaughter\": 35083, \"\\u0120workings\": 35084, \"\\u0120Huss\": 35085, \"\\u0120Frey\": 35086, \"Leave\": 35087, \"\\u0120Harmony\": 35088, \"\\u0120Feder\": 35089, \"\\u0120430\": 35090, \"\\u0120trench\": 35091, \"\\u0120gladly\": 35092, \"\\u0120bullpen\": 35093, \"\\u0120Gau\": 35094, \"bones\": 35095, \"\\u0120groove\": 35096, \"\\u0120pretext\": 35097, \"\\u00e3\\u0127\\u012d\": 35098, \"\\u0120transmitter\": 35099, \"\\u0120Component\": 35100, \"\\u0120underage\": 35101, \"\\u0120Empires\": 35102, \"Tile\": 35103, \"\\u0120oy\": 35104, \"\\u0120Marvin\": 35105, \"\\u0120CAS\": 35106, \"\\u0120bloss\": 35107, \"\\u0120replicated\": 35108, \"\\u0120Mariners\": 35109, \"Marcus\": 35110, \"\\u0120Blocks\": 35111, \"\\u0120liberated\": 35112, \"\\u0120butterfly\": 35113, \"Feel\": 35114, \"\\u0120fermentation\": 35115, \"\\u0120youtube\": 35116, \"\\u0120offend\": 35117, \"\\u0120Term\": 35118, \"resist\": 35119, \"\\u0120cessation\": 35120, \"\\u0120insurgency\": 35121, \"\\u0120bir\": 35122, \"\\u0120Raise\": 35123, \"595\": 35124, \"\\u0120hypotheses\": 35125, \"502\": 35126, \"\\u0120plaque\": 35127, \"ocrat\": 35128, \"\\u0120jackets\": 35129, \"\\u0120HuffPost\": 35130, \"among\": 35131, \"\\u0120confer\": 35132, \"487\": 35133, \"\\u0120Lilly\": 35134, \"\\u0120adapting\": 35135, \"\\u0120Fay\": 35136, \"\\u0120shoved\": 35137, \"vec\": 35138, \"\\u0120refine\": 35139, \"\\u0120gon\": 35140, \"\\u0120gunmen\": 35141, \"zai\": 35142, \"\\u0120Shuttle\": 35143, \"\\u0120Izan\": 35144, \"\\u01201913\": 35145, \"\\u0120plethora\": 35146, \"\\u00c2\\u00b7\\u00c2\\u00b7\": 35147, \"\\u0120510\": 35148, \"\\u0120puberty\": 35149, \"\\u0120241\": 35150, \"\\u0120Wealth\": 35151, \"\\u0120Alma\": 35152, \"\\u0120MEM\": 35153, \"\\u0120Adults\": 35154, \"Cas\": 35155, \"prison\": 35156, \"Race\": 35157, \"\\u0120waterproof\": 35158, \"\\u0120athleticism\": 35159, \"\\u0120capitalize\": 35160, \"\\u0120Juice\": 35161, \"\\u0120illuminated\": 35162, \"\\u0120Pascal\": 35163, \"\\u0120irritation\": 35164, \"\\u0120Witnesses\": 35165, \"adle\": 35166, \"\\u0120Astro\": 35167, \"\\u0120fax\": 35168, \"\\u0120Elvis\": 35169, \"Primary\": 35170, \"\\u0120Lich\": 35171, \"\\u0120Elves\": 35172, \"\\u0120residing\": 35173, \"\\u0120stumble\": 35174, \"319\": 35175, \"\\u0120PKK\": 35176, \"\\u0120adversaries\": 35177, \"DOS\": 35178, \"\\u0120Ritual\": 35179, \"\\u0120smear\": 35180, \"\\u0120arson\": 35181, \"idental\": 35182, \"\\u0120scant\": 35183, \"\\u0120monarchy\": 35184, \"\\u0120halftime\": 35185, \"\\u0120residue\": 35186, \"\\u0120indign\": 35187, \"\\u0120Shaun\": 35188, \"\\u0120Elm\": 35189, \"auri\": 35190, \"Aff\": 35191, \"WATCH\": 35192, \"\\u0120Lyon\": 35193, \"helps\": 35194, \"361\": 35195, \"\\u0120lobbyist\": 35196, \"\\u0120diminishing\": 35197, \"\\u0120outbreaks\": 35198, \"\\u0120goats\": 35199, \"favorite\": 35200, \"\\u0120Nah\": 35201, \"sonian\": 35202, \"\\u0120Booster\": 35203, \"\\u0120sandbox\": 35204, \"\\u0120Fare\": 35205, \"\\u0120Malta\": 35206, \"\\u0120attRot\": 35207, \"\\u0120MOR\": 35208, \"lde\": 35209, \"\\u0120navigating\": 35210, \"Touch\": 35211, \"\\u0120untrue\": 35212, \"\\u0120Disaster\": 35213, \"\\u0120ludicrous\": 35214, \"Password\": 35215, \"\\u0120JFK\": 35216, \"blogspot\": 35217, \"416\": 35218, \"\\u0120UNDER\": 35219, \"ernal\": 35220, \"\\u0120delaying\": 35221, \"TOP\": 35222, \"\\u0120implants\": 35223, \"\\u0120AVG\": 35224, \"\\u0120Huge\": 35225, \"attr\": 35226, \"\\u0120journalistic\": 35227, \"\\u0120Peyton\": 35228, \"\\u0120IA\": 35229, \"Rap\": 35230, \"goal\": 35231, \"\\u0120Programme\": 35232, \"\\u0120smashing\": 35233, \"wives\": 35234, \"println\": 35235, \"\\u0120Plague\": 35236, \"inus\": 35237, \"EEP\": 35238, \"\\u0120cruiser\": 35239, \"\\u0120Parish\": 35240, \"uminium\": 35241, \"\\u0120occupants\": 35242, \"\\u0120Jihad\": 35243, \"mop\": 35244, \"\\u0120pint\": 35245, \"\\u0120hect\": 35246, \"\\u0120Mecca\": 35247, \"director\": 35248, \"\\u0120Funding\": 35249, \"\\u0120Mixed\": 35250, \"\\u0120stag\": 35251, \"Tier\": 35252, \"\\u0120gust\": 35253, \"\\u0120brightly\": 35254, \"orsi\": 35255, \"\\u0120uphill\": 35256, \"RD\": 35257, \"\\u0120lesions\": 35258, \"\\u0120Bundy\": 35259, \"livious\": 35260, \"\\u0120biologist\": 35261, \"\\u0120Faculty\": 35262, \"\\u0120Authorization\": 35263, \"\\u0120244\": 35264, \"Allow\": 35265, \"\\u00ef\\u00b8\": 35266, \"\\u0120Giul\": 35267, \"\\u0120pertinent\": 35268, \"otaur\": 35269, \"esse\": 35270, \"\\u0120Roof\": 35271, \"\\u0120unmanned\": 35272, \"351\": 35273, \"\\u0120Shak\": 35274, \"\\u0120Orient\": 35275, \"\\u0120endanger\": 35276, \"Dir\": 35277, \"\\u0120replen\": 35278, \"edient\": 35279, \"\\u0120tailor\": 35280, \"\\u0120gadgets\": 35281, \"\\u0120audible\": 35282, \"\\u00e2\\u013a\\u0128\": 35283, \"Nice\": 35284, \"\\u0120bombard\": 35285, \"\\u0120Rape\": 35286, \"\\u0120defiance\": 35287, \"\\u0120TWO\": 35288, \"\\u0120Filipino\": 35289, \"\\u0120unaffected\": 35290, \"ervatives\": 35291, \"\\u0120soared\": 35292, \"\\u0120Bolton\": 35293, \"\\u0120compromising\": 35294, \"\\u0120Brewers\": 35295, \"RAL\": 35296, \"\\u0120AHL\": 35297, \"icycle\": 35298, \"\\u0120vampires\": 35299, \"\\u0120dipped\": 35300, \"oyer\": 35301, \"\\u0120XIII\": 35302, \"\\u0120sideways\": 35303, \"\\u0120Waste\": 35304, \"\\u0120Diss\": 35305, \"\\u0120\\u00e2\\u0136\\u013e\\u00e2\\u0136\\u0122\\u00e2\\u0136\\u0122\": 35306, \"$.\": 35307, \"\\u0120habitats\": 35308, \"\\u0120Beef\": 35309, \"truth\": 35310, \"trained\": 35311, \"split\": 35312, \"Rus\": 35313, \"Andy\": 35314, \"\\u0120Bram\": 35315, \"REP\": 35316, \"pid\": 35317, \"\\u00e8\\u00a3\\u0127\": 35318, \"\\u0120Mutant\": 35319, \"Anim\": 35320, \"\\u0120Marina\": 35321, \"\\u0120futile\": 35322, \"highest\": 35323, \"frequency\": 35324, \"\\u0120epilepsy\": 35325, \"\\u0120coping\": 35326, \"\\u0120concise\": 35327, \"\\u0120tracing\": 35328, \"\\u0120SUN\": 35329, \"panel\": 35330, \"\\u0120Sophie\": 35331, \"\\u0120Crowley\": 35332, \"\\u0120Adolf\": 35333, \"\\u0120Shooter\": 35334, \"\\u0120shaky\": 35335, \"\\u0120IG\": 35336, \"\\u0120Lies\": 35337, \"\\u0120Barber\": 35338, \"pkg\": 35339, \"\\u0120uptake\": 35340, \"\\u0120predatory\": 35341, \"ULTS\": 35342, \"/**\": 35343, \"\\u0120intoxicated\": 35344, \"\\u0120Westbrook\": 35345, \"odder\": 35346, \"hement\": 35347, \"\\u0120baseman\": 35348, \"APD\": 35349, \"storage\": 35350, \"\\u0120Fifty\": 35351, \"editor\": 35352, \"GEN\": 35353, \"UTION\": 35354, \"irting\": 35355, \"\\u0120sewing\": 35356, \"rift\": 35357, \"\\u0120agony\": 35358, \"\\u0120Sands\": 35359, \"\\u0120254\": 35360, \"Cash\": 35361, \"\\u0120lodge\": 35362, \"\\u0120punt\": 35363, \"Natural\": 35364, \"\\u0120Ideas\": 35365, \"\\u0120erroneous\": 35366, \"\\u0120Sensor\": 35367, \"\\u0120Hannity\": 35368, \"\\u01201921\": 35369, \"\\u0120mould\": 35370, \"\\u0120Gon\": 35371, \"kaya\": 35372, \"\\u0120anonymously\": 35373, \"\\u0120KEY\": 35374, \"\\u0120simulator\": 35375, \"Winter\": 35376, \"\\u0120streamed\": 35377, \"507\": 35378, \"?\\\",\": 35379, \"\\u0120teased\": 35380, \"\\u0120coefficient\": 35381, \"\\u0120wartime\": 35382, \"\\u0120THR\": 35383, \"''.\": 35384, \"\\u0120Banking\": 35385, \"mpire\": 35386, \"\\u0120fandom\": 35387, \"\\u0120lia\": 35388, \"Ga\": 35389, \"\\u0120downhill\": 35390, \"\\u0120interpreting\": 35391, \"Individual\": 35392, \"Norm\": 35393, \"\\u0120jealousy\": 35394, \"bitcoin\": 35395, \"\\u0120pleasures\": 35396, \"\\u0120Toys\": 35397, \"\\u0120Chevrolet\": 35398, \"\\u0120Advisor\": 35399, \"IZE\": 35400, \"\\u0120receptions\": 35401, \"706\": 35402, \"Cro\": 35403, \"\\u0120262\": 35404, \"\\u0120citrus\": 35405, \"iru\": 35406, \"Reviewer\": 35407, \"jected\": 35408, \"UES\": 35409, \"anz\": 35410, \"1981\": 35411, \"\\u0120Worker\": 35412, \"\\u0120complied\": 35413, \"orescent\": 35414, \"continental\": 35415, \"Ton\": 35416, \"\\u0120Prism\": 35417, \"\\u0120Sheep\": 35418, \"\\u0120288\": 35419, \"nox\": 35420, \"\\u0120Vog\": 35421, \"Ord\": 35422, \"\\u0120realms\": 35423, \"tek\": 35424, \"\\u0120irrigation\": 35425, \"\\u0120bicycles\": 35426, \"\\u0120electronically\": 35427, \"poly\": 35428, \"tall\": 35429, \"());\": 35430, \"\\u0120aesthetics\": 35431, \"\\u0120Integrated\": 35432, \"Explore\": 35433, \"\\u0120dunk\": 35434, \"476\": 35435, \"pain\": 35436, \"\\u0120Jacques\": 35437, \"\\u0120Dmit\": 35438, \"Frames\": 35439, \"\\u0120reunited\": 35440, \"\\u0120humid\": 35441, \"Dro\": 35442, \"Political\": 35443, \"\\u0120youthful\": 35444, \"\\u0120entails\": 35445, \"\\u0120mosquito\": 35446, \"363\": 35447, \"species\": 35448, \"\\u0120coordinating\": 35449, \"\\u0120Mayhem\": 35450, \"\\u0120Magnus\": 35451, \"Mount\": 35452, \"Improved\": 35453, \"\\u0120STATE\": 35454, \"ATTLE\": 35455, \"\\u0120flowed\": 35456, \"\\u0120tackled\": 35457, \"\\u0120fashioned\": 35458, \"\\u0120reorgan\": 35459, \"ivari\": 35460, \"finger\": 35461, \"\\u0120reluctantly\": 35462, \"etting\": 35463, \"\\u0120Vand\": 35464, \"young\": 35465, \"\\u0120Garland\": 35466, \"\\u0120presumption\": 35467, \"\\u0120amenities\": 35468, \"\\u0120Pleasant\": 35469, \"onential\": 35470, \"\\u0120Oxy\": 35471, \"\\u0120morals\": 35472, \"\\u0120Yah\": 35473, \"Ready\": 35474, \"Simon\": 35475, \"Enh\": 35476, \"Demon\": 35477, \"\\u0120clich\": 35478, \"Monitor\": 35479, \"\\u0120DU\": 35480, \"\\u0120welcomes\": 35481, \"\\u0120standout\": 35482, \"\\u0120dreadful\": 35483, \"\\u0120bananas\": 35484, \"\\u0120balloons\": 35485, \"hooting\": 35486, \"basic\": 35487, \"\\u0120suffix\": 35488, \"\\u0120duly\": 35489, \"cano\": 35490, \"Chain\": 35491, \"atos\": 35492, \"\\u0120geopolitical\": 35493, \"\\u0120(&\": 35494, \"\\u0120Gemini\": 35495, \"\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\\u00c3\\u0125\\u00c3\\u0124\": 35496, \"\\u0120acquitted\": 35497, \"Luck\": 35498, \"protect\": 35499, \"1024\": 35500, \"\\u0120scarcity\": 35501, \"\\u0120mindfulness\": 35502, \"ecided\": 35503, \"DN\": 35504, \"prime\": 35505, \"\\u0120Presidents\": 35506, \"\\u0120VIDEO\": 35507, \"\\u0120(\\u00e2\\u012a\\u0134\": 35508, \"addock\": 35509, \"NOR\": 35510, \"\\u0120Pru\": 35511, \"pun\": 35512, \"\\u0120LOL\": 35513, \"))))\": 35514, \"\\u0120Liqu\": 35515, \"\\u0120SAS\": 35516, \"\\u0120styling\": 35517, \"\\u0120punishments\": 35518, \"\\u0120numb\": 35519, \"\\u0120ascertain\": 35520, \"\\u0120Rockies\": 35521, \"flu\": 35522, \"Thumbnail\": 35523, \"\\u0120perpetrated\": 35524, \"\\u0120Semi\": 35525, \"\\u0120disarm\": 35526, \"\\u0120Older\": 35527, \"\\u0120Exception\": 35528, \"\\u0120exponentially\": 35529, \"\\u0120Communities\": 35530, \"\\u0120abolish\": 35531, \"\\u0120Partner\": 35532, \"ptoms\": 35533, \"\\u0120777\": 35534, \"\\u0120Foley\": 35535, \"\\u0120Cases\": 35536, \"\\u0120grease\": 35537, \"\\u0120Rebirth\": 35538, \"Ground\": 35539, \"\\u0120;)\": 35540, \"\\u0120Doctrine\": 35541, \"ikini\": 35542, \"Ye\": 35543, \"\\u0120Blossom\": 35544, \"\\u0120persists\": 35545, \"bill\": 35546, \"\\u0120infusion\": 35547, \"\\u0120buddies\": 35548, \"911\": 35549, \"\\u0120Patient\": 35550, \"\\u0120demos\": 35551, \"\\u0120acquaintance\": 35552, \"\\u0120Paw\": 35553, \"atari\": 35554, \"\\u0120xml\": 35555, \"\\u0120fascination\": 35556, \"\\u0120Serve\": 35557, \"\\u00cf\\u0124\": 35558, \"branded\": 35559, \"\\u0120az\": 35560, \"Returns\": 35561, \"\\u0120overshadow\": 35562, \"\\u0120roam\": 35563, \"\\u0120speedy\": 35564, \"numbered\": 35565, \"helial\": 35566, \"\\u0120disciple\": 35567, \"\\u0120assurances\": 35568, \"given\": 35569, \"pecting\": 35570, \"\\u0120Natalie\": 35571, \"\\u00e7\\u0136\\u00b0\": 35572, \"\\u0120mosquitoes\": 35573, \"rotein\": 35574, \"\\u0120numeric\": 35575, \"\\u0120independents\": 35576, \"\\u0120transitional\": 35577, \"\\u0120reactionary\": 35578, \"\\u0120Mechdragon\": 35579, \"doctor\": 35580, \"\\u0120shortest\": 35581, \"\\u0120sequential\": 35582, \"\\u0120Bac\": 35583, \"\\u0120Accounts\": 35584, \"\\u00e3\\u0123\\u012e\": 35585, \"achy\": 35586, \"ractive\": 35587, \"\\u0120Regiment\": 35588, \"\\u0120breathtaking\": 35589, \"fficiency\": 35590, \"\\u0120Bates\": 35591, \"\\u0120311\": 35592, \"\\u0120wardrobe\": 35593, \"fts\": 35594, \"\\u0120Berk\": 35595, \"Simply\": 35596, \"\\u0120Riverside\": 35597, \"ivering\": 35598, \"idential\": 35599, \"lucent\": 35600, \"\\u0120enriched\": 35601, \"\\u0120Conver\": 35602, \"\\u0120Giving\": 35603, \"\\u00e3\\u0125\\u013b\": 35604, \"\\u0120legalize\": 35605, \"\\u0120FTC\": 35606, \"\\u0120freaking\": 35607, \"Mix\": 35608, \"\\u0120terrestrial\": 35609, \"esian\": 35610, \"cients\": 35611, \"Wing\": 35612, \"LOAD\": 35613, \"\\u0120ledge\": 35614, \"\\u0120Violent\": 35615, \"\\u0120Metall\": 35616, \"\\u0120308\": 35617, \"\\u0120southeastern\": 35618, \"hetto\": 35619, \"Meat\": 35620, \"\\u0120slowdown\": 35621, \"\\u0120retreated\": 35622, \"Jeremy\": 35623, \"endas\": 35624, \"*****\": 35625, \"eric\": 35626, \"\\u0120reins\": 35627, \"oppable\": 35628, \"\\u0120Humanity\": 35629, \"earances\": 35630, \"rigan\": 35631, \"Camera\": 35632, \"\\u0120waivers\": 35633, \"soc\": 35634, \"\\u0120alteration\": 35635, \"transform\": 35636, \"\\u0120Cemetery\": 35637, \"506\": 35638, \"\\u0120indefinite\": 35639, \"\\u0120stimulating\": 35640, \"yg\": 35641, \"603\": 35642, \"\\u0120Sop\": 35643, \"\\u0120descriptive\": 35644, \"Phase\": 35645, \"\\u0120Edmund\": 35646, \"\\u0120pneumonia\": 35647, \"ventus\": 35648, \"Amb\": 35649, \"\\u0120laboratories\": 35650, \"\\u0120Exclusive\": 35651, \"ugar\": 35652, \"Were\": 35653, \"\\u0120malfunction\": 35654, \"\\u0120homosexuals\": 35655, \"\\u0120-------\": 35656, \"uni\": 35657, \"\\u0120turbines\": 35658, \"\\u0120Equity\": 35659, \"Du\": 35660, \"\\u0120minded\": 35661, \"\\u0120RH\": 35662, \"\\u0120Blackhawks\": 35663, \"\\u0120feats\": 35664, \"\\u01201700\": 35665, \"repl\": 35666, \"362\": 35667, \"laden\": 35668, \"\\u0120indispensable\": 35669, \"lyss\": 35670, \"tti\": 35671, \"\\u0120reel\": 35672, \"\\u0120diverted\": 35673, \"\\u0120likeness\": 35674, \"\\u0120subscriptions\": 35675, \"\\u0120fingert\": 35676, \"\\u0120filthy\": 35677, \"destruct\": 35678, \"draft\": 35679, \"\\u0120Bernardino\": 35680, \"launch\": 35681, \"\\u0120perplex\": 35682, \"\\u0120SUM\": 35683, \"carb\": 35684, \"\\u0120sweater\": 35685, \"\\u0120Venture\": 35686, \"\\u0120Jag\": 35687, \"\\u0120Celeb\": 35688, \"\\u0120Voters\": 35689, \"\\u0120steadfast\": 35690, \"\\u0120athletics\": 35691, \"\\u0120Hanson\": 35692, \"\\u0120Drac\": 35693, \"Tracker\": 35694, \"\\u0120commend\": 35695, \"\\u0120Presidency\": 35696, \"\\u0120DID\": 35697, \"informed\": 35698, \"\\u0120webpage\": 35699, \"Pretty\": 35700, \"\\u0120forcefully\": 35701, \"\\u00e3\\u0125\\u0125\\u00e3\\u0124\\u00af\": 35702, \"\\u0120relocation\": 35703, \"\\u0120satire\": 35704, \"\\u00e2\\u012b\": 35705, \"\\u0120Sunderland\": 35706, \"\\u00e6\\u0126\": 35707, \"Voice\": 35708, \"????????\": 35709, \"\\u0120informant\": 35710, \"\\u0120bowel\": 35711, \"\\u0120Uniform\": 35712, \"\\u0120...\\\"\": 35713, \"\\u0120purge\": 35714, \"\\u0120picnic\": 35715, \"\\u0120Umb\": 35716, \"\\u0120UPDATE\": 35717, \"\\u0120Sapphire\": 35718, \"\\u0120Stall\": 35719, \"learn\": 35720, \"\\u0120objectively\": 35721, \"\\u0120obliter\": 35722, \"\\u0120loophole\": 35723, \"\\u0120journeys\": 35724, \"\\u0120omission\": 35725, \"Pros\": 35726, \"\\u0120Sidney\": 35727, \"ploma\": 35728, \"\\u0120sprayed\": 35729, \"\\u0120guru\": 35730, \"\\u0120traitor\": 35731, \"\\u0120timet\": 35732, \"\\u0120snapping\": 35733, \"\\u0120Sevent\": 35734, \"urnal\": 35735, \"\\u0120Ukip\": 35736, \"\\u0120bowed\": 35737, \"poral\": 35738, \"liberal\": 35739, \"Ros\": 35740, \"Questions\": 35741, \"iOS\": 35742, \"\\u0120summarize\": 35743, \"STAT\": 35744, \"\\u01201850\": 35745, \"apest\": 35746, \"\\u0120lender\": 35747, \"\\u0120Variable\": 35748, \"bringing\": 35749, \"\\u0120LORD\": 35750, \",)\": 35751, \"\\u0120collapses\": 35752, \"xiety\": 35753, \"\\u0120Ned\": 35754, \"YD\": 35755, \"\\u0120Scha\": 35756, \"\\u0120antibody\": 35757, \"\\u0120disband\": 35758, \"yre\": 35759, \"illusion\": 35760, \"\\u0120rover\": 35761, \"shed\": 35762, \"\\u0120Hirosh\": 35763, \"cci\": 35764, \"\\u0120calam\": 35765, \"\\u0120Morton\": 35766, \"Pinterest\": 35767, \"\\u01201928\": 35768, \"\\u0120Euras\": 35769, \"ordes\": 35770, \"\\u0120fences\": 35771, \"\\u0120Inventory\": 35772, \"\\u0120Valencia\": 35773, \"\\u0120Ud\": 35774, \"\\u0120Tiff\": 35775, \"\\u0120sque\": 35776, \"\\u0120quotation\": 35777, \"\\u0120troublesome\": 35778, \"erker\": 35779, \"QUEST\": 35780, \"\\u0120Kingdoms\": 35781, \"south\": 35782, \"\\u0120levy\": 35783, \"Prince\": 35784, \"\\u0120Sting\": 35785, \"\\u0120nicknamed\": 35786, \"\\u0120appe\": 35787, \"\\u0120photographic\": 35788, \"\\u0120corpus\": 35789, \"reference\": 35790, \"\\u0120Trog\": 35791, \"Unt\": 35792, \")=(\": 35793, \"\\u0120Latvia\": 35794, \"\\u0120activating\": 35795, \"\\u0120licensee\": 35796, \"\\u0120disparities\": 35797, \"\\u0120Newsletter\": 35798, \"\\u00e3\\u0125\\u0125\\u00e3\\u0125\\u012a\": 35799, \"\\u0120freeing\": 35800, \"\\u0120Jeep\": 35801, \"\\u0120Perception\": 35802, \"insk\": 35803, \"\\u0120silicone\": 35804, \"\\u0120Hayden\": 35805, \"Lean\": 35806, \"\\u0120Suzuki\": 35807, \"ibrarian\": 35808, \"668\": 35809, \"\\u0120spor\": 35810, \"\\u0120correlations\": 35811, \"aghetti\": 35812, \"\\u0120tuber\": 35813, \"\\u0120IPCC\": 35814, \"ilus\": 35815, \"\\u0120Vu\": 35816, \"\\u0120wealthiest\": 35817, \"\\u0120Carbuncle\": 35818, \"anza\": 35819, \"\\u0120fooled\": 35820, \"\\u0120Zur\": 35821, \"\\u0120daddy\": 35822, \"rano\": 35823, \"ilian\": 35824, \"\\u0120knockout\": 35825, \"fman\": 35826, \"required\": 35827, \"\\u0120Wikileaks\": 35828, \"\\u0120Duffy\": 35829, \"ONT\": 35830, \"\\u0120insol\": 35831, \"\\u0120Objects\": 35832, \"\\u0120bou\": 35833, \"\\u0120Nordic\": 35834, \"\\u0120Insert\": 35835, \"scan\": 35836, \"\\u0120dancers\": 35837, \"\\u0120idiots\": 35838, \"majority\": 35839, \"\\u0120Neville\": 35840, \"\\u0120FreeBSD\": 35841, \"\\u0120tart\": 35842, \"panic\": 35843, \"690\": 35844, \"\\u0120cocoa\": 35845, \"\\u0120sampled\": 35846, \"\\u0120lookup\": 35847, \"Indust\": 35848, \"\\u0120injections\": 35849, \"genre\": 35850, \"\\u0120au\": 35851, \"\\u0120roadway\": 35852, \"\\u0120genitals\": 35853, \"Kind\": 35854, \"\\u0120Examiner\": 35855, \"\\u0120Yaz\": 35856, \"Fresh\": 35857, \"\\u0120paralysis\": 35858, \"\\u0120Aluminum\": 35859, \"\\u0120reap\": 35860, \"ok\\u00c3\\u00a9\": 35861, \"\\u0120sloppy\": 35862, \"\\u0120Tunnel\": 35863, \"posium\": 35864, \"nery\": 35865, \"enic\": 35866, \"\\u0120herbal\": 35867, \"\\u0120Outer\": 35868, \"\\u0120Builder\": 35869, \"\\u0120incur\": 35870, \"\\u0120ideologies\": 35871, \"\\u0120backups\": 35872, \"consuming\": 35873, \"\\u0120Detect\": 35874, \"deck\": 35875, \"\\u0120KNOW\": 35876, \"\\u0120Gret\": 35877, \"\\u0120MIC\": 35878, \"\\u0120toughness\": 35879, \"\\u0120Exhibit\": 35880, \"\\u0120hive\": 35881, \"Les\": 35882, \"\\u0120SCHOOL\": 35883, \"\\u0120Atari\": 35884, \"alde\": 35885, \"\\u0120Null\": 35886, \"andestine\": 35887, \"mouse\": 35888, \"\\u0120brigade\": 35889, \"489\": 35890, \"\\u0120revol\": 35891, \"\\u0120Lawson\": 35892, \"\\u0120Wah\": 35893, \"opoly\": 35894, \"ebted\": 35895, \"\\u0120Saunders\": 35896, \"\\u0120313\": 35897, \"\\u0120Winc\": 35898, \"\\u0120taboo\": 35899, \"\\u0120Helmet\": 35900, \"\\u0120wedge\": 35901, \"chip\": 35902, \"\\u0120Tina\": 35903, \"bg\": 35904, \"\\u0120infuri\": 35905, \"rn\": 35906, \"\\u0120anomalies\": 35907, \"\\u0120Sync\": 35908, \"\\u0120Exam\": 35909, \"\\u0120Commit\": 35910, \"\\u0120Diary\": 35911, \"\\u0120ALSO\": 35912, \"\\u0120Debor\": 35913, \"omedical\": 35914, \"\\u0120comprehension\": 35915, \"655\": 35916, \"\\u0120empowering\": 35917, \"\\u0120ire\": 35918, \"\\u0120juices\": 35919, \"\\u0120ETH\": 35920, \"\\u0120Boxing\": 35921, \"=\\\"/\": 35922, \"\\u0120facilitated\": 35923, \"poke\": 35924, \"\\u0120Parsons\": 35925, \"\\u0120Moder\": 35926, \"travel\": 35927, \"\\u0120civilizations\": 35928, \"\\u0120libertarians\": 35929, \"\\u0120rune\": 35930, \"\\u0120Clarks\": 35931, \"athed\": 35932, \"\\u0120campaigners\": 35933, \"\\u0120Dispatch\": 35934, \"\\u0120Fahrenheit\": 35935, \"\\u0120Capcom\": 35936, \"----------\": 35937, \"\\u0120lace\": 35938, \"\\u0120draining\": 35939, \"\\u0120liner\": 35940, \"\\u0120Artificial\": 35941, \"\\u00c3\\u00a9n\": 35942, \"task\": 35943, \"]).\": 35944, \"\\u0120GMO\": 35945, \"\\u0120Operator\": 35946, \"ordinary\": 35947, \"\\u0120Influence\": 35948, \"\\u0120Ups\": 35949, \"\\u0120potency\": 35950, \"ussen\": 35951, \"ospons\": 35952, \"\\u0120Swim\": 35953, \"\\u0120Deadline\": 35954, \"Unity\": 35955, \"\\u0120culinary\": 35956, \"\\u0120enlightenment\": 35957, \"\\u0120wearer\": 35958, \"\\u0120mined\": 35959, \"\\u0120ply\": 35960, \"\\u0120incest\": 35961, \"\\u0120DVDs\": 35962, \"Walk\": 35963, \"BTC\": 35964, \"Trade\": 35965, \"\\u0120deval\": 35966, \"iband\": 35967, \"\\u0120Oversight\": 35968, \"Palestinian\": 35969, \"\\u0120dart\": 35970, \"\\u0120mul\": 35971, \"LR\": 35972, \"\\u0120removable\": 35973, \"\\u0120Realms\": 35974, \"\\u00ec\\u013f\": 35975, \"\\u0120miscar\": 35976, \"\\u0120Vulkan\": 35977, \"685\": 35978, \"\\u00c3\\u00a8re\": 35979, \"\\u0120Sap\": 35980, \"\\u0120merging\": 35981, \"\\u0120Carly\": 35982, \"chester\": 35983, \"\\u0120brisk\": 35984, \"\\u0120luxurious\": 35985, \"\\u0120Generator\": 35986, \"\\u0120bitterness\": 35987, \"\\u0120edible\": 35988, \"\\u0120243\": 35989, \"TG\": 35990, \"\\u0120rectangle\": 35991, \"WithNo\": 35992, \"below\": 35993, \"Jenn\": 35994, \"\\u0120darkest\": 35995, \"\\u0120hitch\": 35996, \"\\u0120dosage\": 35997, \"\\u0120scaven\": 35998, \"\\u0120Keller\": 35999, \"\\u0120Illustrated\": 36000, \"Certainly\": 36001, \"\\u0120Mavericks\": 36002, \"Marginal\": 36003, \"\\u0120diarrhea\": 36004, \"\\u0120enormously\": 36005, \"\\u0120999\": 36006, \"shr\": 36007, \"quart\": 36008, \"\\u0120adamant\": 36009, \"\\u0120Mew\": 36010, \"\\u0120renovation\": 36011, \"\\u0120cervical\": 36012, \"\\u0120Percentage\": 36013, \"eners\": 36014, \"\\u0120Kimber\": 36015, \"\\u0120floats\": 36016, \"\\u0120dex\": 36017, \"\\u0120Witcher\": 36018, \"\\u0120Swansea\": 36019, \"dm\": 36020, \"\\u0120salty\": 36021, \"yellow\": 36022, \"\\u0120cape\": 36023, \"\\u0120Drain\": 36024, \"\\u0120Paula\": 36025, \"\\u0120Toledo\": 36026, \"lesi\": 36027, \"Magazine\": 36028, \"\\u0120Wick\": 36029, \"\\u0120Mn\": 36030, \"\\u0120Ack\": 36031, \"\\u0120Riding\": 36032, \"ASON\": 36033, \"\\u0120homophobic\": 36034, \"ARP\": 36035, \"\\u0120wandered\": 36036, \"CPU\": 36037, \"oodoo\": 36038, \"\\u0120Pipe\": 36039, \"\\u0120tightening\": 36040, \"\\u0120Butt\": 36041, \"318\": 36042, \"\\u0120deserted\": 36043, \"Session\": 36044, \"\\u0120facilitating\": 36045, \"Jump\": 36046, \"\\u0120emergencies\": 36047, \"OWER\": 36048, \"\\u0120exhaustive\": 36049, \"\\u0120AFTER\": 36050, \"\\u0120heartbeat\": 36051, \"\\u0120Label\": 36052, \"acky\": 36053, \"\\u0120Certified\": 36054, \"iltration\": 36055, \"Ze\": 36056, \"\\u0120Utt\": 36057, \"\\u01201300\": 36058, \"\\u0120presume\": 36059, \"\\u0120Disp\": 36060, \"\\u0120surged\": 36061, \"\\u0120dolls\": 36062, \"Columb\": 36063, \"\\u0120chimpan\": 36064, \"\\u0120Razor\": 36065, \"\\u0120ticks\": 36066, \"\\u0120councillor\": 36067, \"\\u0120pilgrimage\": 36068, \"\\u0120Rebels\": 36069, \"\\u0120QC\": 36070, \"\\u0120Auction\": 36071, \"xia\": 36072, \"ikk\": 36073, \"bred\": 36074, \"\\u0120insertion\": 36075, \"\\u0120coarse\": 36076, \"dB\": 36077, \"SEE\": 36078, \"\\u0120Zap\": 36079, \"\\u0120Foo\": 36080, \"\\u0120contempor\": 36081, \"\\u0120Quarterly\": 36082, \"otions\": 36083, \"\\u0120Alchemist\": 36084, \"\\u0120Trey\": 36085, \"\\u0120Duo\": 36086, \"Sweet\": 36087, \"804\": 36088, \"\\u0120Giov\": 36089, \"\\u0120funn\": 36090, \"Nin\": 36091, \"hoff\": 36092, \"\\u0120ramifications\": 36093, \"\\u01201922\": 36094, \"\\u0120Experts\": 36095, \"azes\": 36096, \"\\u0120garments\": 36097, \"arial\": 36098, \"\\u0120Nab\": 36099, \"\\u0120257\": 36100, \"\\u0120Ved\": 36101, \"\\u0120humorous\": 36102, \"\\u0120Pompe\": 36103, \"\\u0120nylon\": 36104, \"\\u0120lurking\": 36105, \"\\u0120Sergey\": 36106, \"\\u0120Mattis\": 36107, \"\\u0120misogyny\": 36108, \"\\u0120Components\": 36109, \"\\u0120Watching\": 36110, \"\\u0120Folk\": 36111, \"ractical\": 36112, \"Bush\": 36113, \"\\u0120taped\": 36114, \"\\u0120grouping\": 36115, \"\\u0120beads\": 36116, \"\\u01202048\": 36117, \"\\u0120condu\": 36118, \"querque\": 36119, \"Reading\": 36120, \"\\u0120grievances\": 36121, \"Ultra\": 36122, \"\\u0120endpoint\": 36123, \"Hig\": 36124, \"\\u0120Static\": 36125, \"\\u0120Scarborough\": 36126, \"Lua\": 36127, \"\\u0120Messi\": 36128, \"aqu\": 36129, \"\\u0120PsyNet\": 36130, \"\\u0120Rudd\": 36131, \"\\u0120avenue\": 36132, \"vp\": 36133, \"Jer\": 36134, \"\\u0120shady\": 36135, \"\\u0120Resist\": 36136, \"\\u0120Artemis\": 36137, \"\\u0120careless\": 36138, \"\\u0120brokers\": 36139, \"\\u0120temperament\": 36140, \"\\u0120520\": 36141, \"Tags\": 36142, \"\\u0120Turning\": 36143, \"\\u0120uttered\": 36144, \"\\u0120pedd\": 36145, \"\\u0120improvised\": 36146, \"\\u0120:(\": 36147, \"\\u0120tabl\": 36148, \"\\u0120plains\": 36149, \"1600\": 36150, \"pressure\": 36151, \"\\u0120Essence\": 36152, \"margin\": 36153, \"friends\": 36154, \"\\u0120Restoration\": 36155, \"\\u0120pollut\": 36156, \"\\u0120Poker\": 36157, \"\\u0120Augustine\": 36158, \"\\u0120CIS\": 36159, \"\\u0120SEAL\": 36160, \"orama\": 36161, \"\\u0120thwart\": 36162, \"seek\": 36163, \"\\u0120pagan\": 36164, \"\\u00c2\\u00ba\": 36165, \"cpu\": 36166, \"\\u0120garn\": 36167, \"\\u0120assortment\": 36168, \"\\u0120ILCS\": 36169, \"tower\": 36170, \"Recommended\": 36171, \"\\u0120unborn\": 36172, \"\\u0120RandomRedditor\": 36173, \"\\u0120RandomRedditorWithNo\": 36174, \"\\u0120paralyzed\": 36175, \"\\u0120eruption\": 36176, \"\\u0120intersect\": 36177, \"\\u0120Stoke\": 36178, \"\\u0120Sco\": 36179, \"Bind\": 36180, \"\\u00e5\\u00be\": 36181, \"\\u0120PNG\": 36182, \"\\u0120Negative\": 36183, \"\\u0120NOAA\": 36184, \"Leon\": 36185, \"\\u0120alloy\": 36186, \"\\u0120Lama\": 36187, \"\\u0120Diversity\": 36188, \"575\": 36189, \"\\u0120underestimated\": 36190, \"\\u0120Scor\": 36191, \"\\u0120mural\": 36192, \"\\u0120busted\": 36193, \"soon\": 36194, \"lif\": 36195, \"\\u0120nonex\": 36196, \"\\u0120allergy\": 36197, \"\\u0120Underworld\": 36198, \"\\u0120Rays\": 36199, \"\\u0120Blasio\": 36200, \"\\u0120hrs\": 36201, \"\\u0120Dir\": 36202, \"\\u0120327\": 36203, \"byter\": 36204, \"\\u0120replacements\": 36205, \"\\u0120activates\": 36206, \"rived\": 36207, \"MH\": 36208, \"\\u0120pans\": 36209, \"\\u0120HI\": 36210, \"\\u0120longitudinal\": 36211, \"\\u0120nuisance\": 36212, \"aler\": 36213, \"\\u0120swell\": 36214, \"\\u0120Signed\": 36215, \"sci\": 36216, \"\\u0120Isles\": 36217, \"\\u0120AGA\": 36218, \"\\u0120defiant\": 36219, \"\\u0120sonic\": 36220, \"ocon\": 36221, \"KC\": 36222, \"\\u0120Aim\": 36223, \"tie\": 36224, \"ahah\": 36225, \"\\u0120mL\": 36226, \"DX\": 36227, \"\\u0120bisc\": 36228, \"\\u0120Billboard\": 36229, \"\\u0120SYSTEM\": 36230, \"NEY\": 36231, \"gaard\": 36232, \"\\u0120distressed\": 36233, \"formerly\": 36234, \"Alan\": 36235, \"\\u0120chefs\": 36236, \"\\u0120optics\": 36237, \"\\u0120Comet\": 36238, \"\\u0120AMC\": 36239, \"\\u0120redesigned\": 36240, \"irmation\": 36241, \"\\u0120sightings\": 36242, \"382\": 36243, \"311\": 36244, \"\\u0120WB\": 36245, \"\\u0120contraction\": 36246, \"\\u0120TOTAL\": 36247, \"Dual\": 36248, \"\\u0120startled\": 36249, \"\\u0120understandably\": 36250, \"\\u0120sunglasses\": 36251, \"ETHOD\": 36252, \"\\u0120docker\": 36253, \"\\u0120surfing\": 36254, \"\\u0120HEL\": 36255, \"\\u0120Slack\": 36256, \"tones\": 36257, \"\\u0120shalt\": 36258, \"Visual\": 36259, \"498\": 36260, \"Department\": 36261, \"cussion\": 36262, \"\\u0120unrestricted\": 36263, \"\\u0120tad\": 36264, \"\\u0120rename\": 36265, \"employed\": 36266, \"\\u0120educating\": 36267, \"\\u0120grinned\": 36268, \"bedroom\": 36269, \"\\u0120Activities\": 36270, \"\\u0120Velvet\": 36271, \"\\u0120SWAT\": 36272, \"\\u0120shuffle\": 36273, \"igor\": 36274, \"\\u0120saturation\": 36275, \"Finding\": 36276, \"cream\": 36277, \"icter\": 36278, \"\\u0120vodka\": 36279, \"tracking\": 36280, \"tec\": 36281, \"\\u0120foreground\": 36282, \"iesta\": 36283, \"\\u0120vehement\": 36284, \"\\u0120ECB\": 36285, \"\\u0120Tie\": 36286, \"Ey\": 36287, \"\\u0120turtles\": 36288, \"\\u0120Railroad\": 36289, \"\\u0120Katz\": 36290, \"\\u0120Frames\": 36291, \"\\u0120menace\": 36292, \"\\u0120Fellowship\": 36293, \"\\u0120Essential\": 36294, \"uggish\": 36295, \"\\u0120drip\": 36296, \"chwitz\": 36297, \"\\u0120Kyoto\": 36298, \"sb\": 36299, \"\\u0120Nina\": 36300, \"Parameter\": 36301, \"\\u0120alarms\": 36302, \"\\u0120Claud\": 36303, \"\\u0120pioneering\": 36304, \"\\u0120chiefly\": 36305, \"\\u0120Scream\": 36306, \"Collection\": 36307, \"\\u0120thankfully\": 36308, \"\\u0120Ronaldo\": 36309, \"\\u00e5\\u0143\\u0132\": 36310, \"strip\": 36311, \"\\u0120Disneyland\": 36312, \"commercial\": 36313, \"Seeing\": 36314, \"Soul\": 36315, \"\\u0120evacuate\": 36316, \"\\u0120civ\": 36317, \"\\u0120Ashe\": 36318, \"\\u0120divides\": 36319, \"\\u0120Dagger\": 36320, \"rehensive\": 36321, \"\\u0120berries\": 36322, \"\\u0120DF\": 36323, \"\\u0120sushi\": 36324, \"\\u0120plurality\": 36325, \"WI\": 36326, \"\\u0120disadvantaged\": 36327, \"\\u0120battalion\": 36328, \"obiles\": 36329, \"451\": 36330, \"\\u0120cling\": 36331, \"\\u0120undeniable\": 36332, \"\\u0120Lounge\": 36333, \"\\u0120haunt\": 36334, \"phe\": 36335, \"\\u0120quantify\": 36336, \"\\u0120differed\": 36337, \"\\u0120[*]\": 36338, \"\\u0120Viz\": 36339, \"cum\": 36340, \"slave\": 36341, \"\\u0120videog\": 36342, \"\\u0120quar\": 36343, \"\\u0120bundles\": 36344, \"\\u0120Alonso\": 36345, \"tackle\": 36346, \"\\u0120neuronal\": 36347, \"\\u0120landslide\": 36348, \"confirmed\": 36349, \"\\u0120Depth\": 36350, \"\\u0120renewables\": 36351, \"Bear\": 36352, \"\\u0120Macedonia\": 36353, \"\\u0120jerseys\": 36354, \"\\u0120bunk\": 36355, \"\\u0120Spawn\": 36356, \"\\u0120Controls\": 36357, \"\\u0120Buchanan\": 36358, \"\\u0120robotics\": 36359, \"\\u0120emphasizing\": 36360, \"\\u0120Tutorial\": 36361, \"hyp\": 36362, \"iston\": 36363, \"\\u0120monumental\": 36364, \"\\u00e6\\u00b0\": 36365, \"\\u0120Carry\": 36366, \"\\u0120tbsp\": 36367, \"enance\": 36368, \"Hill\": 36369, \"arthed\": 36370, \"\\u0120rotten\": 36371, \"Dean\": 36372, \"\\u0120twisting\": 36373, \"\\u0120goodwill\": 36374, \"\\u0120immersion\": 36375, \"Living\": 36376, \"\\u0120brushes\": 36377, \"\\u0120CGI\": 36378, \"\\u0120Atk\": 36379, \"traditional\": 36380, \"\\u0120phantom\": 36381, \"\\u0120Stamina\": 36382, \"\\u0120expansions\": 36383, \"\\u0120Marin\": 36384, \"\\u0120embarked\": 36385, \"\\u0120Eg\": 36386, \"intestinal\": 36387, \"\\u0120PEOPLE\": 36388, \"\\u0120Booth\": 36389, \"\\u0120Appalach\": 36390, \"\\u0120relegated\": 36391, \"VT\": 36392, \"MIT\": 36393, \"\\u0120muster\": 36394, \"\\u0120withdrawing\": 36395, \"\\u0120microscope\": 36396, \"\\u0120Gathering\": 36397, \"\\u0120Crescent\": 36398, \"\\u0120Argentine\": 36399, \"\\u0120Decre\": 36400, \"\\u0120Dominic\": 36401, \"\\u0120buds\": 36402, \"antage\": 36403, \"\\u0120Ion\": 36404, \"\\u0120widened\": 36405, \"ONSORED\": 36406, \"\\u0120Gloves\": 36407, \"iannopoulos\": 36408, \"razen\": 36409, \"feel\": 36410, \"\\u0120repayment\": 36411, \"\\u0120hindsight\": 36412, \"\\u0120REALLY\": 36413, \"\\u0120Pistol\": 36414, \"\\u0120Brah\": 36415, \"\\u0120watts\": 36416, \"\\u0120survives\": 36417, \"\\u0120flurry\": 36418, \"issy\": 36419, \"Alert\": 36420, \"\\u0120Uruguay\": 36421, \"Phoenix\": 36422, \"Slow\": 36423, \"\\u0120Grave\": 36424, \"\\u0120Fir\": 36425, \"\\u0120manageable\": 36426, \"\\u0120tariff\": 36427, \"\\u0120UDP\": 36428, \"\\u0120Pistons\": 36429, \"\\u0120Nigerian\": 36430, \"\\u0120strikeouts\": 36431, \"\\u0120cosmetics\": 36432, \"whelming\": 36433, \"fab\": 36434, \"cape\": 36435, \"proxy\": 36436, \"\\u0120rethink\": 36437, \"\\u0120overcoming\": 36438, \"simple\": 36439, \"\\u0120woo\": 36440, \"\\u0120distracting\": 36441, \"\\u0120Stanton\": 36442, \"\\u0120Tulsa\": 36443, \"\\u0120Dock\": 36444, \"659\": 36445, \"\\u0120discord\": 36446, \"\\u0120Emacs\": 36447, \"\\u0120Ves\": 36448, \"\\u0120ROB\": 36449, \"\\u0120reassuring\": 36450, \"\\u0120consortium\": 36451, \"Muslims\": 36452, \"321\": 36453, \"\\u0120prompts\": 36454, \"sei\": 36455, \"\\u0120Hitch\": 36456, \"imposed\": 36457, \"\\u0120Fool\": 36458, \"\\u0120indiscrim\": 36459, \"wrong\": 36460, \"buquerque\": 36461, \"Davis\": 36462, \"!]\": 36463, \"\\u0120timeless\": 36464, \"\\u0120NEED\": 36465, \"\\u0120pesticide\": 36466, \"\\u0120rallying\": 36467, \"\\u0120Calder\": 36468, \"\\u0120\\u00e5\\u00a4\": 36469, \"\\u0120xp\": 36470, \"\\u0120Unle\": 36471, \"\\u0120Export\": 36472, \"luaj\": 36473, \"Buff\": 36474, \")</\": 36475, \"Boot\": 36476, \"\\u0120Chrysler\": 36477, \"orative\": 36478, \"Mess\": 36479, \"\\u0120negligible\": 36480, \"ertodd\": 36481, \"\\u0120Mushroom\": 36482, \"\\u0120Gale\": 36483, \"gc\": 36484, \"\\u0120Cosby\": 36485, \"\\u0120Rural\": 36486, \"ritical\": 36487, \"Bell\": 36488, \"\\u0120turbine\": 36489, \"00200000\": 36490, \"\\u0120legitimately\": 36491, \"\\u0120Animated\": 36492, \"TED\": 36493, \"\\u0120Theodore\": 36494, \"conduct\": 36495, \"\\u0120Hier\": 36496, \"\\u0120counterfeit\": 36497, \"\\u0120Algeria\": 36498, \"\\u0120unbeat\": 36499, \"controller\": 36500, \"\\u0120unres\": 36501, \"\\u0120scrambling\": 36502, \"\\u0120Fallon\": 36503, \"Tes\": 36504, \"\\u0120amber\": 36505, \"\\u0120royalties\": 36506, \"\\u0120Shelter\": 36507, \"\\u0120Lester\": 36508, \"\\u0120classify\": 36509, \"Remote\": 36510, \"\\u0120unheard\": 36511, \"\\u0120controversies\": 36512, \"\\u0120enrichment\": 36513, \"\\u0120Yankee\": 36514, \"gamer\": 36515, \"\\u0120platinum\": 36516, \"\\u0120ecology\": 36517, \"\\u0120Sark\": 36518, \"\\u0120untouched\": 36519, \"\\u0120supervisors\": 36520, \"\\u0120\\\"%\": 36521, \"\\u0120footh\": 36522, \"\\u0120commons\": 36523, \"\\u0120narcotics\": 36524, \"\\u0120indices\": 36525, \"\\u0120Ply\": 36526, \"\\u0120additionally\": 36527, \"\\u0120Gawker\": 36528, \"\\u0120EQ\": 36529, \"Playing\": 36530, \"\\u0120caveat\": 36531, \"\\u0120Absolute\": 36532, \"ossus\": 36533, \"Baby\": 36534, \"\\u0120ration\": 36535, \"\\u0120resin\": 36536, \"\\u0120calibration\": 36537, \"\\u0120Newport\": 36538, \"\\u0120knocks\": 36539, \"vt\": 36540, \"\\u0120compost\": 36541, \"Scene\": 36542, \"\\u0120sarcast\": 36543, \"\\u0120kisses\": 36544, \"\\u0120ns\": 36545, \"alli\": 36546, \"\\u0120Marcel\": 36547, \"\\u0120Piet\": 36548, \"iatrics\": 36549, \"\\u0120surrounds\": 36550, \"\\u0120Reprodu\": 36551, \"\\u0120Phillies\": 36552, \"\\u0120uncertainties\": 36553, \"\\u0120Eur\": 36554, \"\\u0120Romance\": 36555, \"\\u0120Hath\": 36556, \"\\u0120Needs\": 36557, \"\\u0120Cloak\": 36558, \"\\u0120crem\": 36559, \"queue\": 36560, \"\\u0120355\": 36561, \"\\u0120upfront\": 36562, \"]);\": 36563, \"\\u0120reciproc\": 36564, \"\\u01201927\": 36565, \"\\u01201100\": 36566, \"utsu\": 36567, \"\\u0120depressive\": 36568, \"owment\": 36569, \"Fans\": 36570, \"\\u0120mech\": 36571, \"\\u0120annihil\": 36572, \"\\u0120counterterrorism\": 36573, \"\\u0120Figures\": 36574, \"bold\": 36575, \"\\u0120Moines\": 36576, \"\\u0120Drivers\": 36577, \"\\u0120manuscripts\": 36578, \"\\u0120Crypto\": 36579, \"\\u0120hypnot\": 36580, \"reddits\": 36581, \"\\u0120prosecutions\": 36582, \"\\u0120divert\": 36583, \"CRIP\": 36584, \"\\u0120Bene\": 36585, \"\\u0120Reggie\": 36586, \"\\u0120taxing\": 36587, \"\\u0120Morales\": 36588, \"enting\": 36589, \"tur\": 36590, \"significant\": 36591, \"\\u0120PROV\": 36592, \"\\u0120strands\": 36593, \"\\u0120pouch\": 36594, \"\\u0120Rookie\": 36595, \"\\u00bb\\u0134\": 36596, \"\\u0120nicer\": 36597, \"hemy\": 36598, \"hw\": 36599, \"ECA\": 36600, \"\\u0120intimidated\": 36601, \"\\u0120stricter\": 36602, \"\\u0120microbial\": 36603, \"details\": 36604, \"\\u0120vows\": 36605, \"\\u0120quake\": 36606, \"hhhh\": 36607, \"\\u0120reinvent\": 36608, \"Ub\": 36609, \"\\u0120relinqu\": 36610, \"\\u0120Buffett\": 36611, \"licensed\": 36612, \"ittered\": 36613, \"\\u0120Picard\": 36614, \"\\u0120chewing\": 36615, \"ucl\": 36616, \"organic\": 36617, \"\\u0120localized\": 36618, \"\\u0120Economist\": 36619, \"\\u0120acquainted\": 36620, \"Definition\": 36621, \"sed\": 36622, \"Critics\": 36623, \"\\u0120cc\": 36624, \"453\": 36625, \"381\": 36626, \"\\u0120fellows\": 36627, \"\\u0120checkpoints\": 36628, \"025\": 36629, \"\\u0120reelection\": 36630, \"\\u0120mediated\": 36631, \"\\u0120KDE\": 36632, \"\\u0120hurdle\": 36633, \"\\u0120texting\": 36634, \"Perfect\": 36635, \"\\u0120trustees\": 36636, \"fecture\": 36637, \"\\u0120dich\": 36638, \"monary\": 36639, \"\\u0120distinctions\": 36640, \"\\u01201400\": 36641, \"\\u0120usher\": 36642, \"\\u0120parasites\": 36643, \"\\u0120Sharing\": 36644, \"\\u0120Vim\": 36645, \"\\u0120barbecue\": 36646, \"\\u0120Ministers\": 36647, \"erella\": 36648, \"\\u0120eb\": 36649, \"\\u0120mc\": 36650, \"\\u0120Somehow\": 36651, \"\\u0120Insect\": 36652, \"changes\": 36653, \"broad\": 36654, \"\\u0120Byz\": 36655, \"\\u0120grapes\": 36656, \"669\": 36657, \"\\u0120=================\": 36658, \"\\u0120assimil\": 36659, \"\\u0120haunting\": 36660, \"\\u0120firepower\": 36661, \"\\u0120defamation\": 36662, \"emphasis\": 36663, \"\\u0120compose\": 36664, \"\\u0120allergies\": 36665, \"\\u0120strang\": 36666, \"rollers\": 36667, \"bang\": 36668, \"\\u0120brewers\": 36669, \"rongh\": 36670, \"riot\": 36671, \"poor\": 36672, \"cold\": 36673, \"Sample\": 36674, \"\\u0120buoy\": 36675, \"040\": 36676, \"\\u0120Courtney\": 36677, \"\\u0120268\": 36678, \"\\u0120Wedding\": 36679, \"702\": 36680, \"\\u0120obsessive\": 36681, \"\\u0120braking\": 36682, \"\\u0120Lal\": 36683, \"anical\": 36684, \"\\u00e5\\u00a6\": 36685, \"aten\": 36686, \"Construction\": 36687, \"\\u0120clinically\": 36688, \"iership\": 36689, \"Names\": 36690, \"\\u0120Discuss\": 36691, \"\\u0120Ramos\": 36692, \"\\u0120locale\": 36693, \"\\u0120Agricultural\": 36694, \"Enable\": 36695, \"\\u0120horsepower\": 36696, \"enture\": 36697, \"Pref\": 36698, \"Court\": 36699, \"\\u0120staffing\": 36700, \"\\u0120futuristic\": 36701, \"drivers\": 36702, \"\\u0120Marketplace\": 36703, \"\\u00e6\\u012a\\u00a6\": 36704, \"Friends\": 36705, \"\\u0120damning\": 36706, \"\\u0120Customers\": 36707, \"\\u0120weeds\": 36708, \"\\u0120Mai\": 36709, \"\\u0120agile\": 36710, \"\\u0120Tatt\": 36711, \"icent\": 36712, \"Ranked\": 36713, \"croft\": 36714, \"\\u0120Katy\": 36715, \"Extreme\": 36716, \"\\u0120carve\": 36717, \"\\u0120Rover\": 36718, \"\\u0120Byron\": 36719, \"372\": 36720, \"\\u0120conducts\": 36721, \"ratch\": 36722, \"itia\": 36723, \"\\u0120Pumpkin\": 36724, \"Sadly\": 36725, \"Reloaded\": 36726, \"Policy\": 36727, \"\\u0120lick\": 36728, \"peak\": 36729, \"isks\": 36730, \"\\u0120CDs\": 36731, \"\\u0120Encyclopedia\": 36732, \"initial\": 36733, \"Cos\": 36734, \"\\u0120Awareness\": 36735, \"\\u0120Dram\": 36736, \"$$$$\": 36737, \"\\u0120riff\": 36738, \"\\u0120scripture\": 36739, \"runners\": 36740, \"\\u0120boiler\": 36741, \"onson\": 36742, \"oin\": 36743, \"\\u0120hamstring\": 36744, \"\\u0120cataly\": 36745, \"\\u0120Archbishop\": 36746, \"chall\": 36747, \"\\u0120faux\": 36748, \"okin\": 36749, \"localhost\": 36750, \"\\u0120NAME\": 36751, \"adobe\": 36752, \"SAN\": 36753, \"amate\": 36754, \"\\u0120scramble\": 36755, \"\\u0120carc\": 36756, \"\\u0120Manifest\": 36757, \"\\u0120Cedar\": 36758, \"\\u0120Sergio\": 36759, \"later\": 36760, \"ffer\": 36761, \"\\u0120grappling\": 36762, \"\\u0120Deutsche\": 36763, \"agonists\": 36764, \"\\u0120Newsp\": 36765, \"\\u0120pretended\": 36766, \"archment\": 36767, \"\\u0120curated\": 36768, \"\\u0120headphone\": 36769, \"\\u0120Uncommon\": 36770, \"\\u0120SIGN\": 36771, \"Agent\": 36772, \"\\u0120deadlines\": 36773, \"\\u0120horizontally\": 36774, \"\\u0120MAT\": 36775, \"\\u0120Summers\": 36776, \"\\u0120ordained\": 36777, \"\\u0120Lastly\": 36778, \"\\u0120Kendall\": 36779, \"\\u0120frig\": 36780, \"\\u0120Machina\": 36781, \"\\u0120Waterloo\": 36782, \"\\u0120Mexicans\": 36783, \"\\u0120protector\": 36784, \"\\u0120glare\": 36785, \"}\\\"\": 36786, \"Premium\": 36787, \"\\u0120rift\": 36788, \"\\u0120Telescope\": 36789, \"Metal\": 36790, \"\\u0120recapt\": 36791, \"\\u0120;;\": 36792, \"\\u0120inclination\": 36793, \"\\u0120imposes\": 36794, \"ingen\": 36795, \"^{\": 36796, \"\\u0120haste\": 36797, \"\\u0120dolphins\": 36798, \"\\u0120commuters\": 36799, \"planned\": 36800, \"cong\": 36801, \"mx\": 36802, \"\\u0120Upload\": 36803, \"\\u0120extrap\": 36804, \"\\u0120Tucson\": 36805, \"\\u0120Exploration\": 36806, \"efeated\": 36807, \"\\u0120slender\": 36808, \"703\": 36809, \"\\u0120Buk\": 36810, \"isel\": 36811, \"\\u0120competitiveness\": 36812, \"chlor\": 36813, \"\\u0120Permanent\": 36814, \"\\u0120Everett\": 36815, \"\\u0120Specialist\": 36816, \"\\u0120SOL\": 36817, \"\\u0120cyan\": 36818, \"\\u0120Exactly\": 36819, \"UF\": 36820, \"\\u0120LIFE\": 36821, \"aryl\": 36822, \"onet\": 36823, \"\\u0120Employee\": 36824, \"awed\": 36825, \"\\u0120Ratings\": 36826, \"\\u0120extravag\": 36827, \"ulhu\": 36828, \"\\u0120Plane\": 36829, \"\\u0120elevate\": 36830, \"\\u0120Coordinator\": 36831, \"\\u0120Watkins\": 36832, \"\\u0120excludes\": 36833, \"\\u0120sentient\": 36834, \"\\u0120epoch\": 36835, \"\\u0120alloc\": 36836, \"Previously\": 36837, \"\\u0120Shy\": 36838, \"\\u0120Slovakia\": 36839, \"LOCK\": 36840, \"\\u0120markedly\": 36841, \"\\u0120knob\": 36842, \"\\u0120adventurers\": 36843, \"\\u0120Been\": 36844, \"\\u0120Costs\": 36845, \"ammers\": 36846, \"\\u0120onslaught\": 36847, \"\\u0120Supported\": 36848, \"\\u0120Tau\": 36849, \"ikarp\": 36850, \"\\u0120Sovere\": 36851, \"\\u0120Hampton\": 36852, \"\\u00e3\\u0124\\u012b\": 36853, \"Prev\": 36854, \"\\u0120Worse\": 36855, \"\\u0120cottage\": 36856, \"\\u0120Hades\": 36857, \"lez\": 36858, \"bowl\": 36859, \"\\u0120fragrance\": 36860, \"\\u0120Lok\": 36861, \"EMOTE\": 36862, \"\\u0120Petro\": 36863, \"\\u01201925\": 36864, \"\\u0120Pend\": 36865, \"producing\": 36866, \"\\u0120relocate\": 36867, \"vati\": 36868, \"pole\": 36869, \"\\u0120semin\": 36870, \"\\u0120NUM\": 36871, \"\\u0120rocked\": 36872, \"buff\": 36873, \"bly\": 36874, \"Reply\": 36875, \"\\u0120Hai\": 36876, \"\\u0120articulated\": 36877, \"\\u0120Islamabad\": 36878, \"665\": 36879, \"\\u0120Claims\": 36880, \"Desktop\": 36881, \"\\u0120trustee\": 36882, \"\\u0120scripting\": 36883, \"\\u0120Sob\": 36884, \"\\u0120Asylum\": 36885, \"STDOUT\": 36886, \"\\u0120Clown\": 36887, \"\\u0120Dortmund\": 36888, \"\\u0120Devon\": 36889, \"lite\": 36890, \"\\u0120Marble\": 36891, \"\\u0120bunker\": 36892, \"\\u0120crest\": 36893, \"\\u0120arousal\": 36894, \"\\u0120Sears\": 36895, \"\\u0120Buddy\": 36896, \"eredith\": 36897, \"\\u0120Polly\": 36898, \"\\u0120decode\": 36899, \"\\u0120Vish\": 36900, \"\\u0120Reflect\": 36901, \"anon\": 36902, \"\\u0120refunds\": 36903, \"immers\": 36904, \"HM\": 36905, \"\\u0120wiping\": 36906, \"\\u0120puzzled\": 36907, \"\\u0120matte\": 36908, \"uno\": 36909, \"Pierre\": 36910, \")),\": 36911, \"\\u0120tainted\": 36912, \"\\u0120symbolism\": 36913, \"\\u0120Fraz\": 36914, \"\\u0120protestors\": 36915, \"etheus\": 36916, \"%%%%\": 36917, \"Wra\": 36918, \"\\u0120lax\": 36919, \"adem\": 36920, \"aturation\": 36921, \"\\u00e3\\u0125\\u0135\": 36922, \"\\u0120Trailer\": 36923, \"\\u0120ENG\": 36924, \"\\u0120Bowser\": 36925, \"\\u0120attm\": 36926, \"Dur\": 36927, \"807\": 36928, \"\\u0120sidx\": 36929, \"\\u0120cider\": 36930, \"\\u0120Affect\": 36931, \"\\u0120woven\": 36932, \"\\u0120Barker\": 36933, \"benef\": 36934, \"\\u0120dstg\": 36935, \"\\u0120Ryu\": 36936, \">[\": 36937, \"\\u0120sqor\": 36938, \"Saudi\": 36939, \"\\u0120istg\": 36940, \"\\u0120indulge\": 36941, \"proc\": 36942, \"\\u0120disgusted\": 36943, \"\\u0120compounded\": 36944, \"\\u0120nem\": 36945, \"\\u0120schooling\": 36946, \"\\u0120Cure\": 36947, \"processing\": 36948, \"Sol\": 36949, \"\\u0120proverb\": 36950, \"itized\": 36951, \"\\u0120Alvarez\": 36952, \"\\u0120scarf\": 36953, \"\\u0120rectangular\": 36954, \"reve\": 36955, \"\\u0120hormonal\": 36956, \"\\u0120Stress\": 36957, \"itizen\": 36958, \"\\u0120425\": 36959, \"girls\": 36960, \"\\u0120Noir\": 36961, \"\\u0120Rapp\": 36962, \"\\u0120marches\": 36963, \"church\": 36964, \"\\u0120Uses\": 36965, \"\\u0120405\": 36966, \"\\u0120Berm\": 36967, \"\\u0120ordinances\": 36968, \"\\u0120Judgment\": 36969, \"Charges\": 36970, \"\\u0120Zin\": 36971, \"\\u0120dusty\": 36972, \"\\u0120strawberries\": 36973, \"\\u0120perce\": 36974, \"\\u0120Thur\": 36975, \"\\u0120Deborah\": 36976, \"netflix\": 36977, \"\\u0120Lambert\": 36978, \"\\u0120amused\": 36979, \"\\u0120Guang\": 36980, \"YOU\": 36981, \"RGB\": 36982, \"\\u0120CCTV\": 36983, \"\\u0120fiat\": 36984, \"rang\": 36985, \"\\u0120federation\": 36986, \"\\u0120Mant\": 36987, \"\\u0120Bust\": 36988, \"\\u0120Mare\": 36989, \"respective\": 36990, \"\\u0120Migration\": 36991, \"\\u0120BIT\": 36992, \"590\": 36993, \"\\u0120patriotism\": 36994, \"\\u0120outlining\": 36995, \"region\": 36996, \"\\u0120Jos\\u00c3\\u00a9\": 36997, \"\\u0120blasting\": 36998, \"\\u0120Ezra\": 36999, \"Bs\": 37000, \"\\u0120undermines\": 37001, \"\\u0120Smooth\": 37002, \"\\u0120clashed\": 37003, \"radio\": 37004, \"\\u0120transitioning\": 37005, \"\\u0120Buccaneers\": 37006, \"\\u0120Owl\": 37007, \"\\u0120plugs\": 37008, \"\\u0120hiatus\": 37009, \"\\u0120Pinball\": 37010, \"\\u0120mig\": 37011, \"\\u0120Nutr\": 37012, \"\\u0120Wolfe\": 37013, \"\\u0120integers\": 37014, \"\\u0120orbits\": 37015, \"\\u0120Edwin\": 37016, \"\\u0120DirectX\": 37017, \"bite\": 37018, \"\\u0120blazing\": 37019, \"vr\": 37020, \"Edge\": 37021, \"\\u0120PID\": 37022, \"exit\": 37023, \"\\u0120Comed\": 37024, \"\\u0120Pathfinder\": 37025, \"\\u0120Guid\": 37026, \"\\u0120Signs\": 37027, \"\\u0120Zer\": 37028, \"\\u0120Agenda\": 37029, \"\\u0120reimbursement\": 37030, \"Mesh\": 37031, \"iPhone\": 37032, \"\\u0120Marcos\": 37033, \"\\u0120Sites\": 37034, \"hate\": 37035, \"enburg\": 37036, \"\\u0120sockets\": 37037, \"pend\": 37038, \"Batman\": 37039, \"vir\": 37040, \"\\u0120SHOW\": 37041, \"\\u0120provisional\": 37042, \"conn\": 37043, \"\\u0120Deaths\": 37044, \"ATIVE\": 37045, \"Profile\": 37046, \"sym\": 37047, \"JA\": 37048, \"\\u0120ninja\": 37049, \"installed\": 37050, \"idates\": 37051, \"ebra\": 37052, \"\\u0120Omaha\": 37053, \"\\u0120seizing\": 37054, \"\\u0120Beasts\": 37055, \"\\u0120salts\": 37056, \"Mission\": 37057, \"Generally\": 37058, \"\\u0120Trilogy\": 37059, \"heon\": 37060, \"legates\": 37061, \"\\u0120dime\": 37062, \"\\u0120faire\": 37063, \"parable\": 37064, \"Graph\": 37065, \"\\u0120totaling\": 37066, \"\\u0120diagrams\": 37067, \"\\u0120Yanuk\": 37068, \"plet\": 37069, \"\\u0120Meh\": 37070, \"\\u0120mythical\": 37071, \"\\u0120Stephens\": 37072, \"autical\": 37073, \"ochemistry\": 37074, \"\\u0120kilograms\": 37075, \"\\u0120elbows\": 37076, \"ancock\": 37077, \"\\u0120BCE\": 37078, \"\\u0120Prague\": 37079, \"\\u0120improv\": 37080, \"\\u0120Devin\": 37081, \"\\u0120\\\"\\\\\": 37082, \"paralle\": 37083, \"\\u0120supremacists\": 37084, \"\\u0120Billion\": 37085, \"\\u0120regimen\": 37086, \"innacle\": 37087, \"\\u0120requisite\": 37088, \"angan\": 37089, \"\\u0120Burlington\": 37090, \"ainment\": 37091, \"\\u0120Objective\": 37092, \"omsky\": 37093, \"GV\": 37094, \"\\u0120unilateral\": 37095, \"\\u0120tc\": 37096, \"\\u0120hires\": 37097, \"mental\": 37098, \"\\u0120involuntary\": 37099, \"\\u0120transpl\": 37100, \"\\u0120ASCII\": 37101, \"\\u00c2\\u00a8\": 37102, \"Events\": 37103, \"\\u0120doubted\": 37104, \"\\u0120Kaplan\": 37105, \"\\u0120Courage\": 37106, \"igon\": 37107, \"\\u0120Managing\": 37108, \"\\u0120Tart\": 37109, \"\\u0120falsehood\": 37110, \"\\u0120Violet\": 37111, \"\\u0120airs\": 37112, \"\\u0120fertilizer\": 37113, \"Britain\": 37114, \"\\u0120aquatic\": 37115, \"ouf\": 37116, \"Words\": 37117, \"\\u0120Hartford\": 37118, \"\\u0120evenings\": 37119, \"\\u0120Vengeance\": 37120, \"quite\": 37121, \"Gall\": 37122, \"\\u0120Pret\": 37123, \"\\u0120pdf\": 37124, \"\\u0120LM\": 37125, \"\\u0120Sochi\": 37126, \"\\u0120Intercept\": 37127, \"920\": 37128, \"\\u0120profitability\": 37129, \"\\u0120Idle\": 37130, \"\\u0120MacDonald\": 37131, \"\\u0120Establishment\": 37132, \"umsy\": 37133, \"\\u0120gatherings\": 37134, \"\\u0120Naj\": 37135, \"Charlie\": 37136, \"\\u0120ascent\": 37137, \"\\u0120Protector\": 37138, \"\\u0120algebra\": 37139, \"\\u0120bios\": 37140, \"forums\": 37141, \"ELS\": 37142, \"Introduced\": 37143, \"\\u0120335\": 37144, \"\\u0120astronomy\": 37145, \"Contribut\": 37146, \"\\u0120Polic\": 37147, \"Platform\": 37148, \"\\u0120containment\": 37149, \"wrap\": 37150, \"\\u0120coronary\": 37151, \"\\u0120Jelly\": 37152, \"manager\": 37153, \"\\u0120heartbreaking\": 37154, \"cair\": 37155, \"\\u0120Chero\": 37156, \"cgi\": 37157, \"Medical\": 37158, \"\\u0120Accountability\": 37159, \"!!\\\"\": 37160, \"ophile\": 37161, \"\\u0120psychotic\": 37162, \"\\u0120Restrict\": 37163, \"\\u0120equitable\": 37164, \"issues\": 37165, \"\\u01201905\": 37166, \"\\u0120Nek\": 37167, \"cised\": 37168, \"\\u0120Tracking\": 37169, \"\\u0120ozone\": 37170, \"\\u0120cooker\": 37171, \"rosis\": 37172, \"\\u0120reopen\": 37173, \"\\u0120infinity\": 37174, \"\\u0120Pharmaceutical\": 37175, \"ensional\": 37176, \"Attempt\": 37177, \"\\u0120Rory\": 37178, \"Marco\": 37179, \"\\u0120awaits\": 37180, \"HOW\": 37181, \"treated\": 37182, \"\\u0120bolst\": 37183, \"\\u0120revered\": 37184, \"\\u0120pods\": 37185, \"oppers\": 37186, \"0010\": 37187, \"\\u0120amplitude\": 37188, \"rican\": 37189, \"SPONSORED\": 37190, \"\\u0120trousers\": 37191, \"\\u0120halves\": 37192, \"\\u0120Kaine\": 37193, \"\\u0120Cutler\": 37194, \"\\u0120AUTH\": 37195, \"\\u0120splendid\": 37196, \"\\u0120preventive\": 37197, \"\\u0120Dudley\": 37198, \"ifacts\": 37199, \"uminati\": 37200, \"\\u0120Yin\": 37201, \"\\u0120admon\": 37202, \"\\u0120Vag\": 37203, \"\\u0120inverted\": 37204, \"\\u0120hastily\": 37205, \"\\u0120Hague\": 37206, \"Lyn\": 37207, \"\\u0120ledger\": 37208, \"\\u0120astronomical\": 37209, \"getting\": 37210, \"\\u0120circa\": 37211, \"\\u0120Cic\": 37212, \"\\u0120Tennis\": 37213, \"Limited\": 37214, \"\\u0120dru\": 37215, \"\\u0120BYU\": 37216, \"\\u0120travellers\": 37217, \"\\u0120pane\": 37218, \"\\u0120Intro\": 37219, \"\\u0120patiently\": 37220, \"\\u0120aiding\": 37221, \"\\u0120loos\": 37222, \"\\u0120Tough\": 37223, \"\\u0120293\": 37224, \"\\u0120consumes\": 37225, \"SourceFile\": 37226, \"\\u0120\\\"\\\"\\\"\": 37227, \"\\u0120bonding\": 37228, \"\\u0120tilted\": 37229, \"\\u0120menstrual\": 37230, \"\\u0120Celestial\": 37231, \"ULAR\": 37232, \"Plugin\": 37233, \"\\u0120risking\": 37234, \"Naz\": 37235, \"\\u0120Riyadh\": 37236, \"\\u0120accredited\": 37237, \"\\u0120skirm\": 37238, \"\\u00e9\\u013d\": 37239, \"\\u0120examiner\": 37240, \"\\u0120messing\": 37241, \"\\u0120nearing\": 37242, \"\\u0120Chern\": 37243, \"\\u0120Beckham\": 37244, \"\\u0120swapped\": 37245, \"\\u0120goose\": 37246, \"Kay\": 37247, \"\\u0120lofty\": 37248, \"\\u0120Wallet\": 37249, \"\\u0120['\": 37250, \"\\u0120apocalypse\": 37251, \"\\u0120bamboo\": 37252, \"\\u0120SPACE\": 37253, \"\\u0120Elena\": 37254, \"\\u0120306\": 37255, \"acons\": 37256, \"\\u0120tightened\": 37257, \"\\u0120adolescence\": 37258, \"\\u0120rainy\": 37259, \"\\u0120vandalism\": 37260, \"\\u0120Newtown\": 37261, \"\\u0120conject\": 37262, \"cakes\": 37263, \"\\u0120cheated\": 37264, \"\\u0120moderators\": 37265, \"params\": 37266, \"EFF\": 37267, \"\\u0120deceit\": 37268, \"\\u0120STL\": 37269, \"\\u0120Tanzania\": 37270, \"\\u0120RI\": 37271, \"\\u01201923\": 37272, \"\\u0120Exile\": 37273, \"thel\": 37274, \"\\u0120theolog\": 37275, \"\\u0120quirky\": 37276, \"\\u0120Irvine\": 37277, \"\\u0120needy\": 37278, \"oris\": 37279, \"Um\": 37280, \"Ka\": 37281, \"\\u0120mailbox\": 37282, \"322\": 37283, \"\\u0120bos\": 37284, \"\\u0120Petra\": 37285, \"KING\": 37286, \"\\u0120enlarged\": 37287, \"Often\": 37288, \"\\u0120badass\": 37289, \"\\u0120343\": 37290, \"\\u0120Places\": 37291, \"\\u0120CAD\": 37292, \"\\u0120pristine\": 37293, \"\\u0120intervening\": 37294, \"direction\": 37295, \"\\u0120laz\": 37296, \"\\u0120DSM\": 37297, \"\\u0120projecting\": 37298, \"\\u0120Funk\": 37299, \"agog\": 37300, \"payment\": 37301, \"nov\": 37302, \"\\u0120chatter\": 37303, \"ARB\": 37304, \"\\u0120examinations\": 37305, \"\\u0120Household\": 37306, \"\\u0120Gus\": 37307, \"Ford\": 37308, \"414\": 37309, \"Boss\": 37310, \"\\u0120mystic\": 37311, \"\\u0120leaps\": 37312, \"\\u0120Bav\": 37313, \"ulz\": 37314, \"budget\": 37315, \"Football\": 37316, \"\\u0120subsidized\": 37317, \"\\u0120firsthand\": 37318, \"\\u0120coincide\": 37319, \"ocular\": 37320, \"Conn\": 37321, \"\\u0120Collabor\": 37322, \"\\u0120fools\": 37323, \"amura\": 37324, \"ahar\": 37325, \"rists\": 37326, \"\\u0120swollen\": 37327, \"\\u0120expended\": 37328, \"\\u0120Pau\": 37329, \"sup\": 37330, \"\\u0120spar\": 37331, \"\\u0120keynote\": 37332, \"suff\": 37333, \"\\u0120unequal\": 37334, \"\\u0120progressing\": 37335, \"strings\": 37336, \"\\u0120Gamergate\": 37337, \"Disney\": 37338, \"\\u0120Eleven\": 37339, \"omnia\": 37340, \"\\u0120scripted\": 37341, \"\\u0120earners\": 37342, \"brother\": 37343, \"\\u0120Enabled\": 37344, \"\\u00e6\\u00b3\": 37345, \"\\u0120larvae\": 37346, \"\\u0120LOC\": 37347, \"mess\": 37348, \"Wilson\": 37349, \"\\u0120Template\": 37350, \"successfully\": 37351, \"\\u0120paramount\": 37352, \"\\u0120camouflage\": 37353, \"\\u0120binds\": 37354, \"\\u0120Quiet\": 37355, \"\\u0120Shutterstock\": 37356, \"rush\": 37357, \"\\u0120mascot\": 37358, \"fortune\": 37359, \"\\u0120Colt\": 37360, \"\\u0120Beyon\": 37361, \"habi\": 37362, \"\\u0120hairc\": 37363, \"\\u0120267\": 37364, \"\\u0120Deus\": 37365, \"\\u0120twitch\": 37366, \"\\u0120concentrating\": 37367, \"\\u0120nipples\": 37368, \"cible\": 37369, \"\\u0120gir\": 37370, \"NZ\": 37371, \"Math\": 37372, \"nih\": 37373, \"Required\": 37374, \"\\u0120ponder\": 37375, \"\\u0120SAN\": 37376, \"\\u0120weddings\": 37377, \"\\u0120loneliness\": 37378, \"NES\": 37379, \"\\u0120Mahjong\": 37380, \"695\": 37381, \"addle\": 37382, \"\\u0120Garner\": 37383, \"\\u0120COUR\": 37384, \"Bridge\": 37385, \"\\u0120spree\": 37386, \"\\u0120Caldwell\": 37387, \"\\u0120bribery\": 37388, \"\\u0120\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\": 37389, \"plugins\": 37390, \"\\u0120racket\": 37391, \"\\u0120champagne\": 37392, \"versible\": 37393, \"Vote\": 37394, \"\\u0120modifiers\": 37395, \"Mayor\": 37396, \"680\": 37397, \"\\u0120assemblies\": 37398, \"\\u0120Sultan\": 37399, \"\\u0120Ning\": 37400, \"\\u0120Ladies\": 37401, \"\\u0120sulfur\": 37402, \"\\u0120orbs\": 37403, \"\\u0120-----\": 37404, \"_______\": 37405, \"\\u0120Journalism\": 37406, \"\\u0120esports\": 37407, \"\\u0120lush\": 37408, \"\\u0120hue\": 37409, \"\\u0120spectral\": 37410, \"Honest\": 37411, \"\\u00e3\\u0125\\u0131\": 37412, \"\\u0120bushes\": 37413, \"\\u0120reinforcement\": 37414, \"\\u0120reopened\": 37415, \"\\u0120Wheels\": 37416, \"\\u0120Morg\": 37417, \"rieving\": 37418, \"\\u0120auxiliary\": 37419, \"\\u0120jQuery\": 37420, \"\\u0120BAT\": 37421, \"tesque\": 37422, \"\\u0120vertex\": 37423, \"pure\": 37424, \"frey\": 37425, \"\\u00e3\\u0124\\u00ba\": 37426, \"dos\": 37427, \"\\u0120typh\": 37428, \"\\u0120cull\": 37429, \"\\u0120eq\": 37430, \"\\u0120decon\": 37431, \"\\u0120tossing\": 37432, \"\\u0120disparate\": 37433, \"\\u0120Brigham\": 37434, \"printf\": 37435, \"ledged\": 37436, \"\\u0120sund\": 37437, \"\\u0120cozy\": 37438, \"\\u0120hepatitis\": 37439, \"performing\": 37440, \"\\u0120aval\": 37441, \"\\u0120GG\": 37442, \"future\": 37443, \"\\u0120petertodd\": 37444, \"\\u0120Kosovo\": 37445, \"\\u0120magnets\": 37446, \"Already\": 37447, \"\\u0120Edison\": 37448, \"\\u0120Ceres\": 37449, \"\\u0120RAID\": 37450, \"\\u0120brilliance\": 37451, \"576\": 37452, \"\\u0120derives\": 37453, \"\\u0120hypertension\": 37454, \"\\u0120\\u00ce\\u0136\": 37455, \"\\u0120lambda\": 37456, \"\\u0120flair\": 37457, \"\\u0120missionaries\": 37458, \"\\u0120rapes\": 37459, \"\\u0120Starter\": 37460, \"\\u0120Months\": 37461, \"\\u0120defy\": 37462, \"\\u0120seismic\": 37463, \"\\u0120Raphael\": 37464, \"\\u0120eurozone\": 37465, \"656\": 37466, \"zsche\": 37467, \"\\u0120scratched\": 37468, \"\\u0120bows\": 37469, \"\\u0120Lennon\": 37470, \"\\u0120Gaia\": 37471, \"\\u0120dripping\": 37472, \"facts\": 37473, \"Ale\": 37474, \"\\u0120frogs\": 37475, \"\\u0120Breast\": 37476, \"ogeneity\": 37477, \"\\u0120Prosecutor\": 37478, \"\\u0120amplified\": 37479, \"\\u0120Hodg\": 37480, \"\\u0120Fn\": 37481, \"Thousands\": 37482, \"\\u0120NIH\": 37483, \"\\u0120Monitoring\": 37484, \"FTWARE\": 37485, \"\\u0120Priebus\": 37486, \"\\u0120Growing\": 37487, \"hunter\": 37488, \"\\u0120diagnose\": 37489, \"\\u0120Mald\": 37490, \"\\u0120LR\": 37491, \"\\u0120crowned\": 37492, \"\\u0120bursting\": 37493, \"\\u0120dissolution\": 37494, \"javascript\": 37495, \"\\u0120usefulness\": 37496, \"\\u0120Execution\": 37497, \":(\": 37498, \"\\u0120Ivory\": 37499, \"aah\": 37500, \"\\u0120persecuted\": 37501, \"violence\": 37502, \"istas\": 37503, \"\\u0120Crate\": 37504, \"\\u0120impulses\": 37505, \"\\u0120Spani\": 37506, \"edes\": 37507, \"Handle\": 37508, \"\\u0120Zerg\": 37509, \"thinkable\": 37510, \"Lastly\": 37511, \"\\u0120spontaneously\": 37512, \"\\u0120inconvenient\": 37513, \"\\u0120dismissing\": 37514, \"\\u0120plotted\": 37515, \"\\u0120eighty\": 37516, \"\\u0120737\": 37517, \"rish\": 37518, \"\\u0120Thornton\": 37519, \"atham\": 37520, \"\\u0120sitcom\": 37521, \"Ven\": 37522, \"Recipe\": 37523, \"tel\": 37524, \"lund\": 37525, \"\\u0120clears\": 37526, \"\\u0120Sasuke\": 37527, \"\\u0120258\": 37528, \"\\u0120opting\": 37529, \"\\u0120enraged\": 37530, \"esthetic\": 37531, \"\\u0120Ae\": 37532, \"uchs\": 37533, \"Prep\": 37534, \"Flow\": 37535, \"\\u0120runoff\": 37536, \"\\u0120Eating\": 37537, \"\\u0120Giles\": 37538, \"\\u0120Acting\": 37539, \"resources\": 37540, \"ibaba\": 37541, \"\\u0120rpm\": 37542, \"\\u0120skewed\": 37543, \"\\u0120Blanc\": 37544, \"\\u0120Sakuya\": 37545, \"\\u0120hotter\": 37546, \"\\u01201924\": 37547, \"opian\": 37548, \"cko\": 37549, \"\\u0120crumbling\": 37550, \"\\u0120captains\": 37551, \"\\u0120Appropriations\": 37552, \"leaders\": 37553, \"dropping\": 37554, \"anuts\": 37555, \"\\u0120reversing\": 37556, \"\\u0120Pose\": 37557, \"\\u0120Sek\": 37558, \"Scot\": 37559, \"\\u0120Idea\": 37560, \"cise\": 37561, \"\\u0120Slovenia\": 37562, \"\\u0120317\": 37563, \"Doctor\": 37564, \"\\u0120crocod\": 37565, \"aldi\": 37566, \"Sea\": 37567, \"\\u0120Farrell\": 37568, \"\\u0120mercenaries\": 37569, \"\\u0120RNC\": 37570, \"\\u0120Guess\": 37571, \"\\u0120pacing\": 37572, \"Machine\": 37573, \"StreamerBot\": 37574, \"\\u0120Charity\": 37575, \"\\u0120298\": 37576, \"\\u0120cannons\": 37577, \"\\u0120Toby\": 37578, \"TPPStreamerBot\": 37579, \"\\u0120Passion\": 37580, \"cfg\": 37581, \"Thom\": 37582, \"\\u0120badges\": 37583, \"\\u0120Bernstein\": 37584, \".\\u00e2\\u0122\\u0135\": 37585, \"\\u0120POP\": 37586, \"\\u0120Conj\": 37587, \"\\u0120initialization\": 37588, \"\\u0120biodiversity\": 37589, \"Dub\": 37590, \"\\u0120feudal\": 37591, \"\\u0120disclaimer\": 37592, \"\\u0120crow\": 37593, \"\\u0120ignition\": 37594, \"arf\": 37595, \"SHA\": 37596, \"\\u0120kHz\": 37597, \"hazard\": 37598, \"\\u0120Artists\": 37599, \"oeuv\": 37600, \"679\": 37601, \"\\u0120Rudy\": 37602, \"Nine\": 37603, \"\\u0120Ramadan\": 37604, \"\\u00e5\\u00bd\": 37605, \"itto\": 37606, \"\\u0120adrenaline\": 37607, \"Cert\": 37608, \"\\u0120smelled\": 37609, \"\\u0120impunity\": 37610, \"\\u0120agendas\": 37611, \"\\u0120Reborn\": 37612, \"\\u0120Concent\": 37613, \"\\u0120Seems\": 37614, \"\\u0120omega\": 37615, \"\\u0120Dustin\": 37616, \"\\u0120backer\": 37617, \"\\u0120Sauce\": 37618, \"\\u0120Boyle\": 37619, \"WIN\": 37620, \"\\u0120spins\": 37621, \"\\u0120pauses\": 37622, \"upt\": 37623, \"\\u0120shredded\": 37624, \"\\u0120strapped\": 37625, \"\\u0120Corruption\": 37626, \"\\u0120scratches\": 37627, \"\\u0120ni\": 37628, \"\\u0120attire\": 37629, \"\\u0120SAF\": 37630, \"FactoryReloaded\": 37631, \"\\u0120IPS\": 37632, \"\\u0120(%\": 37633, \"\\u0120seminar\": 37634, \"focus\": 37635, \"civil\": 37636, \"\\u01201860\": 37637, \"intosh\": 37638, \"\\u0120continual\": 37639, \"\\u0120abbrevi\": 37640, \"\\u0120Sok\": 37641, \"ocobo\": 37642, \"XM\": 37643, \"\\u0120frantic\": 37644, \"\\u0120unavoidable\": 37645, \"\\u0120artery\": 37646, \"\\u0120annotations\": 37647, \"bath\": 37648, \"Climate\": 37649, \"\\u0120dors\": 37650, \"\\u0120Slide\": 37651, \"coord\": 37652, \"\\u0120Reload\": 37653, \"\\u0120LDL\": 37654, \"\\u0120Lovecraft\": 37655, \"\\u0120unimagin\": 37656, \"\\u0120resembled\": 37657, \"\\u0120barracks\": 37658, \"np\": 37659, \"\\u0120surrogate\": 37660, \"\\u0120categorized\": 37661, \"\\u00e3\\u0124\\u00a9\": 37662, \"\\u0120vaccinated\": 37663, \"\\u0120drainage\": 37664, \"\\u0120indist\": 37665, \"\\u0120WhatsApp\": 37666, \"\\u01201870\": 37667, \"olerance\": 37668, \"invoke\": 37669, \"amorph\": 37670, \"\\u0120reconnect\": 37671, \"\\u0120emanc\": 37672, \"\\u0120blindness\": 37673, \"\\u01201280\": 37674, \"internet\": 37675, \"collar\": 37676, \"\\u0120altru\": 37677, \"\\u0120abyss\": 37678, \"\\u0120TRI\": 37679, \"657\": 37680, \"\\u0120infused\": 37681, \"HEAD\": 37682, \"\\u0120forestry\": 37683, \"\\u0120Woody\": 37684, \"\\u0120Ci\": 37685, \"wi\": 37686, \"sam\": 37687, \"784\": 37688, \"holiday\": 37689, \"\\u0120mogul\": 37690, \"\\u0120Fees\": 37691, \"\\u0120DEN\": 37692, \"Internal\": 37693, \"urbed\": 37694, \"fusc\": 37695, \"atom\": 37696, \"\\u0120Illusion\": 37697, \"\\u0120polled\": 37698, \"\\u0120flap\": 37699, \"\\u0120coax\": 37700, \"LGBT\": 37701, \"Analy\": 37702, \"\\u0120Sections\": 37703, \"\\u0120Californ\": 37704, \"emn\": 37705, \"\\u0120hither\": 37706, \"\\u0120NIGHT\": 37707, \"\\u0120nailed\": 37708, \"\\u0120Pipeline\": 37709, \"391\": 37710, \"oof\": 37711, \"\\u0120Primal\": 37712, \"verend\": 37713, \"\\u0120slashing\": 37714, \"\\u0120retri\": 37715, \"aviour\": 37716, \"\\u0120departing\": 37717, \"gil\": 37718, \"ISC\": 37719, \"\\u0120midway\": 37720, \"\\u0120ultrasound\": 37721, \"\\u0120behaving\": 37722, \"\\u0120Tara\": 37723, \"classes\": 37724, \"Virtual\": 37725, \"\\u0120Colonial\": 37726, \"\\u0120stripping\": 37727, \"\\u0120orchestrated\": 37728, \"\\u0120Graves\": 37729, \"452\": 37730, \"\\u0120Ironically\": 37731, \"\\u0120Writers\": 37732, \"\\u0120lends\": 37733, \"\\u0120Manz\": 37734, \"\\u0120raven\": 37735, \"\\u0120oxidative\": 37736, \"\\u0120266\": 37737, \"ELF\": 37738, \"actually\": 37739, \"ascar\": 37740, \"Draft\": 37741, \"\\u0120favourable\": 37742, \"\\u0120humiliating\": 37743, \"\\u0120fidelity\": 37744, \"\\u0120Hof\": 37745, \"\\u0120Xuan\": 37746, \"496\": 37747, \"\\u0120layered\": 37748, \"atis\": 37749, \"790\": 37750, \"\\u0120paycheck\": 37751, \"iton\": 37752, \"Kar\": 37753, \"\\u0120VMware\": 37754, \"\\u0120Farmer\": 37755, \"\\u0120servic\": 37756, \"glomer\": 37757, \"\\u0120slump\": 37758, \"\\u0120Fabric\": 37759, \"\\u0120DOC\": 37760, \"esting\": 37761, \"\\u0120reassure\": 37762, \"\\u0120phyl\": 37763, \"volt\": 37764, \"itory\": 37765, \"Rules\": 37766, \"\\u0120oxidation\": 37767, \"\\u0120prized\": 37768, \"\\u0120mistress\": 37769, \"\\u0120Django\": 37770, \"WARN\": 37771, \"\\u00e5\\u0133\": 37772, \"\\u0120encode\": 37773, \"\\u0120Feedback\": 37774, \"\\u0120stupidity\": 37775, \"Ian\": 37776, \"\\u0120Yugoslavia\": 37777, \"\\u00d7\\u00a8\": 37778, \"acl\": 37779, \"UTE\": 37780, \"1977\": 37781, \"\\u0120qualifies\": 37782, \"\\u0120pulses\": 37783, \"pretty\": 37784, \"\\u0120froze\": 37785, \"\\u0120ss\": 37786, \"Iterator\": 37787, \"\\u0120urgently\": 37788, \"\\u0120mailed\": 37789, \"\\u0120Cham\": 37790, \"\\u0120sustaining\": 37791, \"\\u0120basil\": 37792, \"\\u0120puppies\": 37793, \"ilant\": 37794, \"\\u0120PLEASE\": 37795, \"lap\": 37796, \"aceous\": 37797, \"Fear\": 37798, \"\\u0120Mastery\": 37799, \"automatic\": 37800, \"\\u0120TAG\": 37801, \"\\u0120antim\": 37802, \"agles\": 37803, \"473\": 37804, \"frames\": 37805, \"\\u0120whispers\": 37806, \"\\u0120Whoever\": 37807, \"\\u0120bravery\": 37808, \"\\u0120UKIP\": 37809, \"ractions\": 37810, \"\\\"\\\"\\\"\": 37811, \"\\u0120tame\": 37812, \"\\u0120parted\": 37813, \"everything\": 37814, \"CONT\": 37815, \"\\u0120indebted\": 37816, \"\\u0120addr\": 37817, \"rek\": 37818, \"IRED\": 37819, \"\\u0120eminent\": 37820, \"clinton\": 37821, \"\\u0120ousted\": 37822, \"\\u0120reviewer\": 37823, \"\\u0120meltdown\": 37824, \"\\u0120rearr\": 37825, \"\\u0120Yao\": 37826, \"thereal\": 37827, \"abyte\": 37828, \"\\u0120stumbling\": 37829, \"\\u0120batches\": 37830, \"\\u0120259\": 37831, \"\\u0120contraceptive\": 37832, \"\\u0120prostitute\": 37833, \"ensis\": 37834, \"Decl\": 37835, \"\\u0120Strikes\": 37836, \"Military\": 37837, \"\\u0120Oath\": 37838, \"vacc\": 37839, \"ppings\": 37840, \"052\": 37841, \"\\u0120partName\": 37842, \"amping\": 37843, \"Reports\": 37844, \"KI\": 37845, \"CHR\": 37846, \"\\u0120subtly\": 37847, \"swers\": 37848, \"Blake\": 37849, \"usual\": 37850, \"\\u0120contestants\": 37851, \"\\u0120cartridges\": 37852, \"\\u0120GREAT\": 37853, \"\\u0120blush\": 37854, \"\\u0120\\u00e2\\u0122\\u00ba\": 37855, \"472\": 37856, \"\\u0120reasoned\": 37857, \"\\u00e3\\u0125\\u00a4\": 37858, \"paralleled\": 37859, \"\\u0120dyn\": 37860, \"agate\": 37861, \"\\u0120nightly\": 37862, \"\\u00e5\\u0128\": 37863, \"556\": 37864, \"\\u0120semantic\": 37865, \"\\u0120Advoc\": 37866, \"\\u0120!!\": 37867, \"\\u0120disagrees\": 37868, \"\\u0120BW\": 37869, \"Veh\": 37870, \"\\u0120harming\": 37871, \"\\u0120embraces\": 37872, \"\\u0120strives\": 37873, \"\\u0120inland\": 37874, \"\\u0120Kard\": 37875, \"\\u0120heats\": 37876, \"\\u0120Ginny\": 37877, \"utan\": 37878, \"ernaut\": 37879, \"ylene\": 37880, \"\\u0120Elev\": 37881, \"JD\": 37882, \"\\u0120hars\": 37883, \"\\u0120Starr\": 37884, \"\\u0120skysc\": 37885, \"\\u0120collaborators\": 37886, \"Usually\": 37887, \"\\u0120revolutions\": 37888, \"\\u0120STATS\": 37889, \"\\u0120dismantle\": 37890, \"\\u0120confidently\": 37891, \"\\u0120kinetic\": 37892, \"Ali\": 37893, \"\\u0120percentile\": 37894, \"\\u0120extracting\": 37895, \"illian\": 37896, \"estead\": 37897, \"\\u0120physicists\": 37898, \"\\u0120Marshal\": 37899, \"\\u0120fellowship\": 37900, \"\\u0120dashed\": 37901, \"\\u0120UR\": 37902, \"\\u0120Sioux\": 37903, \"\\u0120Compact\": 37904, \"amide\": 37905, \"Python\": 37906, \"\\u0120Leigh\": 37907, \"\\u0120Pharmac\": 37908, \"istrates\": 37909, \"herical\": 37910, \"\\u0120fue\": 37911, \"\\u0120Emin\": 37912, \"\\u0120({\": 37913, \"\\u0120Neighborhood\": 37914, \"\\u0120disrupting\": 37915, \"\\u0120Dup\": 37916, \"\\u0120gland\": 37917, \"\\u0120Sev\": 37918, \"\\u0120Marian\": 37919, \"argon\": 37920, \"\\u0120Dund\": 37921, \"\\u0120<!--\": 37922, \"\\u0120strand\": 37923, \"\\u0120stadiums\": 37924, \"zos\": 37925, \"\\u0120psychosis\": 37926, \"\\u0120Rack\": 37927, \"\\u0120brilliantly\": 37928, \"\\u00ef\\u00b8\\u0131\": 37929, \"\\u0120submerged\": 37930, \"\\u0120Instit\": 37931, \"\\u0120Chow\": 37932, \"\\u0120cages\": 37933, \"\\u0120Hats\": 37934, \"\\u0120Urs\": 37935, \"\\u0120diluted\": 37936, \"usat\": 37937, \"ienne\": 37938, \"\\u0120Membership\": 37939, \"\\u0120Burk\": 37940, \"\\u0120ie\": 37941, \"\\u0120archetype\": 37942, \"Drug\": 37943, \"ulton\": 37944, \"\\u0120Spock\": 37945, \"\\u0120McKay\": 37946, \"\\u0120Depend\": 37947, \"Featured\": 37948, \"Soc\": 37949, \"1978\": 37950, \"\\u0120Bere\": 37951, \"\\u0120relentlessly\": 37952, \"\\u0120crippling\": 37953, \"\\u0120arthritis\": 37954, \"\\u00e7\\u0136\\u0141\": 37955, \"\\u0120Tropical\": 37956, \"\\u0120Bulg\": 37957, \"\\u0120Cheryl\": 37958, \"\\u0120admirable\": 37959, \"\\u0120subtitle\": 37960, \"Override\": 37961, \"\\u0120originating\": 37962, \"\\u0120CCP\": 37963, \"\\u0120swore\": 37964, \"\\u0120Sole\": 37965, \"\\u0120Disorders\": 37966, \"329\": 37967, \"\\u0120procession\": 37968, \"\\u0120refurb\": 37969, \"\\u0120immersed\": 37970, \"requently\": 37971, \"\\u0120skeptics\": 37972, \"\\u0120ceramic\": 37973, \"mitter\": 37974, \"enstein\": 37975, \"belt\": 37976, \"\\u0120TIT\": 37977, \"bidden\": 37978, \"\\u0120fir\": 37979, \"mist\": 37980, \">]\": 37981, \"\\u0120weave\": 37982, \"\\u0120Paradox\": 37983, \"\\u0120entrusted\": 37984, \"\\u0120Barclays\": 37985, \"\\u0120novelist\": 37986, \"ogie\": 37987, \"806\": 37988, \"\\u0120ninety\": 37989, \"\\u0120disagreements\": 37990, \"@@@@@@@@\": 37991, \"\\u0120Auschwitz\": 37992, \"cars\": 37993, \"\\u0120LET\": 37994, \"tub\": 37995, \"arantine\": 37996, \"POS\": 37997, \"\\u0120backstory\": 37998, \"\\u0120cheerful\": 37999, \"\\u0120Rag\": 38000, \"eka\": 38001, \"biased\": 38002, \"\\u0120inexperienced\": 38003, \"akra\": 38004, \"\\u0120Witt\": 38005, \"tan\": 38006, \"\\u0120rapist\": 38007, \"\\u0120plateau\": 38008, \"chal\": 38009, \"\\u0120Inquis\": 38010, \"expression\": 38011, \"\\u0120cipher\": 38012, \"\\u0120shaving\": 38013, \"adden\": 38014, \"rely\": 38015, \"(\\\\\": 38016, \"isma\": 38017, \"\\u0120Regulatory\": 38018, \"CHAR\": 38019, \"ilyn\": 38020, \"NVIDIA\": 38021, \"GU\": 38022, \"\\u0120murm\": 38023, \"laus\": 38024, \"Christopher\": 38025, \"\\u0120contractual\": 38026, \"\\u0120Proxy\": 38027, \"\\u0120Jaime\": 38028, \"\\u0120Methodist\": 38029, \"\\u0120stewards\": 38030, \"sta\": 38031, \"peria\": 38032, \"\\u0120physiology\": 38033, \"\\u0120bumped\": 38034, \"\\u0120fructose\": 38035, \"Australian\": 38036, \"\\u0120Metallic\": 38037, \"\\u0120Masquerade\": 38038, \"arb\": 38039, \"\\u0120promul\": 38040, \"\\u0120downfall\": 38041, \"\\u0120butcher\": 38042, \"\\u0120bour\": 38043, \"\\u0120INFORMATION\": 38044, \"\\u0120Bis\": 38045, \"pects\": 38046, \"adena\": 38047, \"\\u0120contemplating\": 38048, \"aroo\": 38049, \"centered\": 38050, \"\\u0120Peaks\": 38051, \"Used\": 38052, \"\\u0120modem\": 38053, \"\\u0120genders\": 38054, \"\\u01208000\": 38055, \"371\": 38056, \"\\u0120maternity\": 38057, \"\\u0120Raz\": 38058, \"\\u0120rocking\": 38059, \"\\u0120handguns\": 38060, \"\\u0120DACA\": 38061, \"Autom\": 38062, \"\\u0120Nile\": 38063, \"\\u0120tumult\": 38064, \"\\u0120Benefit\": 38065, \"\\u0120Approach\": 38066, \"workshop\": 38067, \"\\u0120Leaving\": 38068, \"Ger\": 38069, \"instead\": 38070, \"\\u0120vibrations\": 38071, \"\\u0120repositories\": 38072, \"497\": 38073, \"\\u0120Aunt\": 38074, \"\\u0120Jub\": 38075, \"\\u0120Expedition\": 38076, \"Alpha\": 38077, \"\\u0120sans\": 38078, \"\\u0120overdue\": 38079, \"\\u0120overcrowd\": 38080, \"\\u0120legislatures\": 38081, \"\\u0120paternal\": 38082, \"\\u0120Leonardo\": 38083, \"\\u0120expressive\": 38084, \"\\u0120distractions\": 38085, \"\\u0120silenced\": 38086, \"trust\": 38087, \"\\u0120biking\": 38088, \"\\u0120560\": 38089, \"\\u0120propriet\": 38090, \"\\u0120imposition\": 38091, \"\\u0120conglomer\": 38092, \"\\u0120=================================================================\": 38093, \"\\u0120Teaching\": 38094, \"\\u0120Yose\": 38095, \"intensive\": 38096, \"Town\": 38097, \"\\u0120trolling\": 38098, \"\\u0120Grac\": 38099, \"\\u0120ASUS\": 38100, \"Yo\": 38101, \"\\u0120specials\": 38102, \"\\u0120Neph\": 38103, \"\\u0120Godzilla\": 38104, \"Database\": 38105, \"\\u0120Hegel\": 38106, \"\\u0120272\": 38107, \"1976\": 38108, \"\\u0120Gloria\": 38109, \"\\u0120disemb\": 38110, \"\\u0120Investigations\": 38111, \"\\u0120Bane\": 38112, \"agements\": 38113, \"Strange\": 38114, \"\\u0120treasury\": 38115, \"\\u0120Plays\": 38116, \"\\u0120undesirable\": 38117, \"\\u0120widening\": 38118, \"\\u0120verbally\": 38119, \"\\u0120infancy\": 38120, \"\\u0120cutter\": 38121, \"fml\": 38122, \"\\u01202100\": 38123, \"prototype\": 38124, \"fine\": 38125, \"\\u0120decriminal\": 38126, \"\\u0120dysfunctional\": 38127, \"\\u0120besie\": 38128, \"\\u0120Ernst\": 38129, \"zeb\": 38130, \"\\u0120northeastern\": 38131, \"\\u0120aust\": 38132, \"porate\": 38133, \"\\u0120Marlins\": 38134, \"\\u0120segregated\": 38135, \"eworld\": 38136, \"\\u0120Maher\": 38137, \"\\u0120traverse\": 38138, \"\\u0120monastery\": 38139, \"urgy\": 38140, \"Gear\": 38141, \"sand\": 38142, \"Compl\": 38143, \"\\u0120EMP\": 38144, \"\\u0120plent\": 38145, \"\\u0120Mercer\": 38146, \"\\u0120276\": 38147, \"TABLE\": 38148, \"Configuration\": 38149, \"Hundreds\": 38150, \"\\u0120pric\": 38151, \"\\u0120collaborating\": 38152, \"\\u0120Paramount\": 38153, \"\\u0120Cummings\": 38154, \"\\u0120(<\": 38155, \"\\u0120recorder\": 38156, \"\\u0120flats\": 38157, \"\\u0120416\": 38158, \"whose\": 38159, \"FontSize\": 38160, \"\\u0120Orbit\": 38161, \"YR\": 38162, \"\\u0120wrists\": 38163, \"\\u0120bakery\": 38164, \")}\": 38165, \"\\u0120Bounty\": 38166, \"\\u0120Lancaster\": 38167, \"\\u0120endings\": 38168, \"according\": 38169, \"\\u0120Salam\": 38170, \"easy\": 38171, \"755\": 38172, \"\\u0120Burr\": 38173, \"\\u0120Barnett\": 38174, \"onomous\": 38175, \"Union\": 38176, \"\\u0120precedence\": 38177, \"\\u0120Scholarship\": 38178, \"\\u0120UX\": 38179, \"\\u0120rollout\": 38180, \"\\u0120boon\": 38181, \"alm\": 38182, \"\\u0120Canter\": 38183, \"\\u00e6\\u00b5\": 38184, \"\\u0120rounding\": 38185, \"\\u0120clad\": 38186, \"\\u0120vap\": 38187, \"\\u0120Featured\": 38188, \"isations\": 38189, \"\\u0120540\": 38190, \"police\": 38191, \"\\u0120unsettling\": 38192, \"\\u0120drifting\": 38193, \"\\u0120Lumia\": 38194, \"\\u0120ObamaCare\": 38195, \"\\u0120Favor\": 38196, \"Hyper\": 38197, \"\\u0120Rothschild\": 38198, \"\\u0120Miliband\": 38199, \"analy\": 38200, \"\\u0120Juliet\": 38201, \"Hu\": 38202, \"\\u0120recalling\": 38203, \"ahead\": 38204, \"696\": 38205, \"\\u0120unfavorable\": 38206, \"\\u0120dances\": 38207, \"Ox\": 38208, \"\\u0120legality\": 38209, \"\\u0120403\": 38210, \"romancer\": 38211, \"\\u0120inquire\": 38212, \"\\u0120Moves\": 38213, \"\\\\\\\">\": 38214, \"\\u0120Variant\": 38215, \"\\u0120Messiah\": 38216, \"\\u0120LCS\": 38217, \"\\u0120Bah\\u00c3\\u00a1\": 38218, \"756\": 38219, \"\\u0120eyebrow\": 38220, \"\\u0120\\u00c2\\u00a5\": 38221, \"\\u0120McF\": 38222, \"\\u0120Forty\": 38223, \"Mas\": 38224, \"\\u0120panicked\": 38225, \"\\u0120transformations\": 38226, \"qq\": 38227, \"\\u0120revolves\": 38228, \"ringe\": 38229, \"\\u0120Ai\": 38230, \"axe\": 38231, \"\\u0120onward\": 38232, \"\\u0120CFR\": 38233, \"\\u0120Bare\": 38234, \"login\": 38235, \"\\u0120liquids\": 38236, \"\\u0120decomp\": 38237, \"secondary\": 38238, \"ilan\": 38239, \"\\u0120Convert\": 38240, \"amiya\": 38241, \"\\u0120prosecuting\": 38242, \"\\u0120\\u00e2\\u012b\\u00a1\": 38243, \"\\u0120Yorkers\": 38244, \"\\u0120Byrne\": 38245, \"slow\": 38246, \"awei\": 38247, \"Jean\": 38248, \"\\u0120269\": 38249, \"\\u0120Skydragon\": 38250, \"\\u0120\\u00c3\\u00a9\": 38251, \"\\u0120Nicaragua\": 38252, \"\\u0120Huckabee\": 38253, \"\\u0120Highly\": 38254, \"\\u0120amphib\": 38255, \"\\u0120Pastor\": 38256, \"\\u0120Lets\": 38257, \"\\u0120blurred\": 38258, \"\\u0120visceral\": 38259, \"\\u0120CBO\": 38260, \"\\u0120collaborated\": 38261, \"zig\": 38262, \"Legal\": 38263, \"\\u0120apartheid\": 38264, \"\\u0120brid\": 38265, \"\\u0120preset\": 38266, \"\\u0120DET\": 38267, \"\\u0120AMA\": 38268, \"\\u00d7\\u0136\": 38269, \"arching\": 38270, \"aucuses\": 38271, \"builder\": 38272, \"\\u0120poetic\": 38273, \"\\u0120emulator\": 38274, \"\\u0120Molecular\": 38275, \"\\u0120honoring\": 38276, \"iseum\": 38277, \"\\u0120tractor\": 38278, \"\\u0120Cluster\": 38279, \"\\u0120Calm\": 38280, \"aredevil\": 38281, \"\\u0120sidewalks\": 38282, \"\\u0120violin\": 38283, \"\\u0120generalized\": 38284, \"\\u0120Alec\": 38285, \"\\u0120embargo\": 38286, \"\\u0120fastball\": 38287, \"\\u0120HTTPS\": 38288, \"\\u0120Lack\": 38289, \"\\u0120Chill\": 38290, \"river\": 38291, \"Chel\": 38292, \"\\u0120Swarm\": 38293, \"\\u0120Levine\": 38294, \"roying\": 38295, \"Launch\": 38296, \"\\u0120kicker\": 38297, \"\\u0120additive\": 38298, \"\\u0120Deals\": 38299, \"Widget\": 38300, \"containing\": 38301, \"\\u0120escalate\": 38302, \"\\u0120OPEN\": 38303, \"\\u0120tweaked\": 38304, \"\\u0120stash\": 38305, \"\\u0120sparks\": 38306, \"\\u0120Essex\": 38307, \"\\u0120Ecc\": 38308, \"\\u0120convict\": 38309, \"\\u0120blogging\": 38310, \"IER\": 38311, \"\\u0120HL\": 38312, \"\\u0120murderers\": 38313, \"759\": 38314, \"\\u0120Hib\": 38315, \"\\u0120depl\": 38316, \"\\u0120Jord\": 38317, \"Sac\": 38318, \"\\u0120dissect\": 38319, \"\\u0120Howe\": 38320, \"osher\": 38321, \"\\u0120customizable\": 38322, \"\\u0120Franz\": 38323, \"\\u0120atro\": 38324, \"\\u00c4\\u0129\": 38325, \"\\u01200004\": 38326, \"\\u0120outpost\": 38327, \"Ross\": 38328, \"\\u0120glyphosate\": 38329, \"\\u0120Hastings\": 38330, \"\\u0120BEFORE\": 38331, \"\\u0120shove\": 38332, \"opped\": 38333, \"\\u0120Scala\": 38334, \"\\u0120amulet\": 38335, \"anian\": 38336, \"\\u0120exacerbated\": 38337, \"\\u0120eater\": 38338, \"471\": 38339, \"UME\": 38340, \"\\u0120pulp\": 38341, \"izontal\": 38342, \"\\u0120Zam\": 38343, \"\\u0120ATI\": 38344, \"immune\": 38345, \"abytes\": 38346, \"\\u0120unnecessarily\": 38347, \"\\u0120CAT\": 38348, \"\\u0120Axis\": 38349, \"\\u0120visualize\": 38350, \"\\u00c3\\u012b\": 38351, \"\\u0120Radical\": 38352, \"fm\": 38353, \"Documents\": 38354, \"\\u0120Forrest\": 38355, \"\\u0120contextual\": 38356, \"\\u0120Symbol\": 38357, \"\\u0120tentative\": 38358, \"\\u0120DOES\": 38359, \"\\u0120Goods\": 38360, \"\\u0120intermittent\": 38361, \"}:\": 38362, \"mediated\": 38363, \"\\u0120ridicule\": 38364, \"\\u0120atheism\": 38365, \"\\u0120pathogens\": 38366, \"\\u0120Mum\": 38367, \"\\u0120reintrodu\": 38368, \"\\u0120307\": 38369, \"iHUD\": 38370, \"\\u0120flashlight\": 38371, \"\\u0120swearing\": 38372, \"\\u0120pengu\": 38373, \"Bu\": 38374, \"\\u0120rotated\": 38375, \"\\u0120Crane\": 38376, \"\\u0120());\": 38377, \"\\u0120fashionable\": 38378, \"\\u0120endorsing\": 38379, \"463\": 38380, \")[\": 38381, \"\\u0120ingestion\": 38382, \"\\u0120cooks\": 38383, \"\\u0120950\": 38384, \"otomy\": 38385, \"\\u0120Imam\": 38386, \"\\u0120ka\": 38387, \"\\u0120teaser\": 38388, \"\\u0120Ghosts\": 38389, \"\\u0120\\u00e3\\u0124\\u00b5\": 38390, \"1969\": 38391, \"\\u00cf\\u0125\": 38392, \"ubby\": 38393, \"\\u0120converter\": 38394, \"zanne\": 38395, \"ende\": 38396, \"\\u0120Prepar\": 38397, \"\\u0120Nickel\": 38398, \"\\u0120Chimera\": 38399, \"him\": 38400, \"\\u0120Tyrann\": 38401, \"\\u0120Sabbath\": 38402, \"\\u0120Nichols\": 38403, \"\\u0120rapt\": 38404, \"ihar\": 38405, \"\\u0120shelling\": 38406, \"\\u0120illuminate\": 38407, \"\\u0120dentist\": 38408, \"utor\": 38409, \"\\u0120Integration\": 38410, \"\\u0120whims\": 38411, \"\\u0120Literary\": 38412, \"Beaut\": 38413, \"\\u0120parchment\": 38414, \"agara\": 38415, \"Brand\": 38416, \"\\u0120derog\": 38417, \"\\u00e2\\u0122\\u00a6)\": 38418, \"\\u0120Norse\": 38419, \"\\u0120unwitting\": 38420, \"\\u0120cuc\": 38421, \"\\u0120borderline\": 38422, \"\\u0120upsetting\": 38423, \"\\u0120recourse\": 38424, \"\\u0120draped\": 38425, \"\\u0120Radar\": 38426, \"\\u0120colder\": 38427, \"\\u0120Pepsi\": 38428, \"iminary\": 38429, \"],[\": 38430, \"658\": 38431, \"Vi\": 38432, \"\\u0120Frem\": 38433, \"\\u0120Pes\": 38434, \"\\u0120veterinary\": 38435, \"\\u0120TED\": 38436, \"\\u0120Epidem\": 38437, \"nova\": 38438, \"kid\": 38439, \"\\u0120devout\": 38440, \"oct\": 38441, \"jad\": 38442, \"Moh\": 38443, \"\\u0120PAY\": 38444, \"\\u0120geometric\": 38445, \"\\u0120323\": 38446, \"\\u0120circumference\": 38447, \"ichick\": 38448, \"1975\": 38449, \"\\u0120Yuri\": 38450, \"\\u0120Shall\": 38451, \"\\u0120Hover\": 38452, \"unin\": 38453, \"Spr\": 38454, \"\\u0120graft\": 38455, \"\\u0120Happiness\": 38456, \"\\u0120disadvantages\": 38457, \"attacks\": 38458, \"\\u0120hubs\": 38459, \"\\u0120StarCraft\": 38460, \"\\u00e9\\u0138\": 38461, \"\\u0120galleries\": 38462, \"\\u0120Korra\": 38463, \"\\u0120groceries\": 38464, \"\\u0120Gorsuch\": 38465, \"\\u0120rapists\": 38466, \"\\u0120fungi\": 38467, \"\\u0120Typhoon\": 38468, \"Vector\": 38469, \"\\u0120Empress\": 38470, \"battle\": 38471, \"468\": 38472, \"\\u0120parasite\": 38473, \"\\u0120Bomber\": 38474, \"SG\": 38475, \"exist\": 38476, \"\\u0120Pf\": 38477, \"\\u0120unse\": 38478, \"\\u0120surgeons\": 38479, \"Birth\": 38480, \"\\u0120Unsure\": 38481, \"\\u0120Printed\": 38482, \"\\u0120Behavioral\": 38483, \"\\u0120Aster\": 38484, \"Pakistan\": 38485, \"\\u0120unethical\": 38486, \"\\u0120sv\": 38487, \"\\u0120IoT\": 38488, \"\\u0120layouts\": 38489, \"Pain\": 38490, \"\\u0120constants\": 38491, \"\\u0120LW\": 38492, \"\\u0120Bake\": 38493, \"\\u0120towels\": 38494, \"\\u0120deterioration\": 38495, \"\\u0120Bolivia\": 38496, \"\\u0120blinded\": 38497, \"\\u0120Warden\": 38498, \"\\u0120Mistress\": 38499, \"\\u0120onstage\": 38500, \"\\u0120clans\": 38501, \"\\u0120BEST\": 38502, \"1960\": 38503, \"\\u0120antique\": 38504, \"\\u0120rhetorical\": 38505, \"\\u0120Percy\": 38506, \"\\u0120Rwanda\": 38507, \",.\": 38508, \"Bruce\": 38509, \"\\u0120traumat\": 38510, \"\\u0120Parliamentary\": 38511, \"\\u0120footnote\": 38512, \"idia\": 38513, \"\\u0120Learned\": 38514, \"seeking\": 38515, \"genic\": 38516, \"\\u0120dimensional\": 38517, \"Hide\": 38518, \"\\u00e8\\u0122\\u0127\": 38519, \"\\u0120intrigue\": 38520, \"inse\": 38521, \"\\u0120leases\": 38522, \"\\u0120apprentices\": 38523, \"washing\": 38524, \"\\u01201926\": 38525, \"VILLE\": 38526, \"\\u0120swoop\": 38527, \"scl\": 38528, \"\\u0120bedrooms\": 38529, \"onics\": 38530, \"\\u0120Crunch\": 38531, \"compatible\": 38532, \"\\u0120incapac\": 38533, \"\\u0120Yemeni\": 38534, \"ashtra\": 38535, \"zhou\": 38536, \"danger\": 38537, \"\\u0120manifestations\": 38538, \"\\u0120Demons\": 38539, \"AAF\": 38540, \"Secretary\": 38541, \"ACTED\": 38542, \"LOD\": 38543, \"\\u0120amy\": 38544, \"raper\": 38545, \"ethnic\": 38546, \"417\": 38547, \"\\u0120positives\": 38548, \"\\u0120273\": 38549, \"\\u0120Refugees\": 38550, \"\\u0120usb\": 38551, \"\\u0120Vald\": 38552, \"oddy\": 38553, \"\\u0120Mahmoud\": 38554, \"Asia\": 38555, \"\\u0120skulls\": 38556, \"\\u0120Exodus\": 38557, \"\\u0120Compet\": 38558, \"\\u0120LIC\": 38559, \"\\u0120Mansion\": 38560, \"\\u0120Ame\": 38561, \"\\u0120consolidate\": 38562, \"storms\": 38563, \"ontent\": 38564, \"996\": 38565, \"\\u0120clen\": 38566, \"\\u0120mummy\": 38567, \"flat\": 38568, \"758\": 38569, \"\\u0120VOL\": 38570, \"oteric\": 38571, \"nen\": 38572, \"\\u0120Minute\": 38573, \"Sov\": 38574, \"\\u0120finer\": 38575, \"Rh\": 38576, \"lycer\": 38577, \"\\u0120reinforcements\": 38578, \"\\u0120Johannes\": 38579, \"\\u0120Gallagher\": 38580, \"\\u0120gymn\": 38581, \"Suddenly\": 38582, \"\\u0120extortion\": 38583, \"kr\": 38584, \"iator\": 38585, \"Ta\": 38586, \"\\u0120hippocampus\": 38587, \"NPR\": 38588, \"\\u0120Computing\": 38589, \"\\u0120squarely\": 38590, \"\\u0120modelling\": 38591, \"\\u0120Forums\": 38592, \"\\u0120Lisp\": 38593, \"\\u0120Krishna\": 38594, \"\\u0120324\": 38595, \"\\u0120rushes\": 38596, \"\\u0120ensued\": 38597, \"\\u0120creeping\": 38598, \"onte\": 38599, \"nai\": 38600, \"ilater\": 38601, \"\\u0120Hornets\": 38602, \"\\u0120oblivious\": 38603, \"INST\": 38604, \"559\": 38605, \"\\u0120jeopardy\": 38606, \"\\u0120distinguishing\": 38607, \"jured\": 38608, \"\\u0120begs\": 38609, \"similar\": 38610, \"phot\": 38611, \"530\": 38612, \"\\u0120Parkway\": 38613, \"\\u0120sinks\": 38614, \"\\u0120Hearthstone\": 38615, \"ibur\": 38616, \"\\u0120Baton\": 38617, \"Avoid\": 38618, \"\\u0120dancer\": 38619, \"\\u0120magistrate\": 38620, \"aryn\": 38621, \"\\u0120disturbances\": 38622, \"\\u0120Romero\": 38623, \"\\u0120paraph\": 38624, \"\\u0120mischief\": 38625, \"\\u00e2\\u0138\\u0135\": 38626, \"\\u0120Sharia\": 38627, \"\\u0120urinary\": 38628, \"route\": 38629, \"ivas\": 38630, \"fitted\": 38631, \"\\u0120ejected\": 38632, \"\\u0120Albuquerque\": 38633, \"\\u0120470\": 38634, \"\\u0120irritated\": 38635, \"\\u0120Zip\": 38636, \"\\u0120Biol\": 38637, \"\\u00c3\\u012f\": 38638, \"\\u0120denounce\": 38639, \"\\u0120binaries\": 38640, \"\\u0120Verse\": 38641, \"\\u0120oppos\": 38642, \"\\u0120Kendrick\": 38643, \"\\u0120GPL\": 38644, \"\\u0120spew\": 38645, \"\\u0120Elijah\": 38646, \"\\u0120Eas\": 38647, \"\\u0120drifted\": 38648, \"sofar\": 38649, \"\\u0120annoyance\": 38650, \"\\u0120BET\": 38651, \"474\": 38652, \"\\u0120Strongh\": 38653, \"itates\": 38654, \"\\u0120Cognitive\": 38655, \"ophone\": 38656, \"\\u0120Identification\": 38657, \"ocrine\": 38658, \"connection\": 38659, \"\\u0120boxer\": 38660, \"\\u0120ASD\": 38661, \"\\u0120Areas\": 38662, \"Yang\": 38663, \"tch\": 38664, \"ullah\": 38665, \"\\u0120deceive\": 38666, \"Combat\": 38667, \"episode\": 38668, \"crete\": 38669, \"Witness\": 38670, \"\\u0120condolences\": 38671, \"htar\": 38672, \"\\u0120heals\": 38673, \"\\u0120buckets\": 38674, \"\\u0120LAW\": 38675, \"Blu\": 38676, \"\\u0120slab\": 38677, \"\\u0120ORDER\": 38678, \"ocl\": 38679, \"atton\": 38680, \"\\u0120Stevenson\": 38681, \"\\u0120Ginger\": 38682, \"\\u0120Friendly\": 38683, \"\\u0120Vanderbilt\": 38684, \"spirit\": 38685, \"igl\": 38686, \"\\u0120Regarding\": 38687, \"\\u0120PROG\": 38688, \"\\u0120sealing\": 38689, \"starting\": 38690, \"\\u0120cardinal\": 38691, \"\\u0120Vec\": 38692, \"\\u0120Beir\": 38693, \"\\u0120milliseconds\": 38694, \"weak\": 38695, \"perse\": 38696, \"\\u0120sterile\": 38697, \"\\u0120Contemporary\": 38698, \"\\u0120Phant\": 38699, \"\\u0120Clo\": 38700, \"\\u0120outp\": 38701, \"\\u0120exiled\": 38702, \"\\u0120277\": 38703, \"\\u0120selfie\": 38704, \"\\u0120manic\": 38705, \"\\u0120nano\": 38706, \"terms\": 38707, \"Alexander\": 38708, \"\\u0120resolves\": 38709, \"\\u0120millennia\": 38710, \"\\u0120explodes\": 38711, \"\\u0120constellation\": 38712, \"\\u0120adultery\": 38713, \"motion\": 38714, \"DOC\": 38715, \"\\u0120broadcasters\": 38716, \"\\u0120kindergarten\": 38717, \"\\u0120Mayweather\": 38718, \"\\u0120Eco\": 38719, \"icho\": 38720, \"\\u0120287\": 38721, \"laun\": 38722, \"\\u0120mute\": 38723, \"\\u0120discreet\": 38724, \"\\u0120preschool\": 38725, \"\\u0120preempt\": 38726, \"Delete\": 38727, \"\\u0120Freed\": 38728, \"Pi\": 38729, \"HK\": 38730, \"\\u0120blocker\": 38731, \"\\u0120Cumber\": 38732, \"\\u0120wrought\": 38733, \"dating\": 38734, \"\\u0120insurer\": 38735, \"\\u0120quotas\": 38736, \"\\u0120preached\": 38737, \"\\u0120eviction\": 38738, \"\\u0120Regina\": 38739, \"\\u0120Pens\": 38740, \"\\u0120seventeen\": 38741, \"\\u0120Nass\": 38742, \"Dick\": 38743, \"\\u0120folds\": 38744, \"\\u0120dotted\": 38745, \"\\u0120Aad\": 38746, \"Universal\": 38747, \"\\u0120pizz\": 38748, \"\\u0120Guru\": 38749, \"\\u0120soils\": 38750, \"\\u0120novice\": 38751, \"\\u0120Neander\": 38752, \"\\u0120stool\": 38753, \"\\u0120detonated\": 38754, \"\\u0120Pikachu\": 38755, \"\\u0120Massive\": 38756, \"IVER\": 38757, \"\\u0120Abdel\": 38758, \"\\u0120subdued\": 38759, \"\\u0120tallest\": 38760, \"\\u0120precarious\": 38761, \"\\u0120ay\": 38762, \"rification\": 38763, \"\\u0120Obj\": 38764, \"cale\": 38765, \"\\u0120unquestion\": 38766, \"culosis\": 38767, \"adas\": 38768, \"igrated\": 38769, \"Days\": 38770, \"\\u0120queens\": 38771, \"\\u0120Gazette\": 38772, \"\\u0120Colour\": 38773, \"\\u0120Bowman\": 38774, \"\\u0120JJ\": 38775, \"\\u00c3\\u00afve\": 38776, \"\\u0120dominates\": 38777, \"Student\": 38778, \"\\u0120mu\": 38779, \"\\u0120backlog\": 38780, \"\\u0120Electro\": 38781, \"Truth\": 38782, \"483\": 38783, \"\\u0120condensed\": 38784, \"rules\": 38785, \"\\u0120Conspiracy\": 38786, \"\\u0120acronym\": 38787, \"handled\": 38788, \"\\u0120Matte\": 38789, \"jri\": 38790, \"\\u0120Impossible\": 38791, \"lude\": 38792, \"creation\": 38793, \"\\u0120warmed\": 38794, \"\\u0120Slave\": 38795, \"\\u0120misled\": 38796, \"\\u0120ferment\": 38797, \"\\u0120Kah\": 38798, \"inki\": 38799, \"keleton\": 38800, \"cyl\": 38801, \"\\u0120Karin\": 38802, \"Hunter\": 38803, \"Register\": 38804, \"\\u0120Surrey\": 38805, \"\\u0120stares\": 38806, \"\\u0120Width\": 38807, \"\\u0120Nay\": 38808, \"\\u0120Ski\": 38809, \"\\u0120blacklist\": 38810, \"ucket\": 38811, \"\\u0120expulsion\": 38812, \"imet\": 38813, \"\\u0120retweet\": 38814, \"vantage\": 38815, \"Feature\": 38816, \"\\u0120troopers\": 38817, \"\\u0120homers\": 38818, \"969\": 38819, \"\\u0120contingency\": 38820, \"\\u0120WTC\": 38821, \"\\u0120Brewer\": 38822, \"foreign\": 38823, \"Ware\": 38824, \"Solar\": 38825, \"\\u0120undue\": 38826, \"REC\": 38827, \"ulnerable\": 38828, \"pathic\": 38829, \"\\u0120Boise\": 38830, \"\\u0120322\": 38831, \"\\u0120aroused\": 38832, \"\\u0120Ying\": 38833, \"\\u00e4\\u00b8\\u012f\": 38834, \"ueless\": 38835, \"\\u0120pas\": 38836, \"\\u0120morp\": 38837, \"\\u0120floral\": 38838, \"Express\": 38839, \"udging\": 38840, \"kB\": 38841, \"\\u0120Granted\": 38842, \"\\u00d8\\u00af\": 38843, \"\\u0120Micha\": 38844, \"\\u0120Gothic\": 38845, \"\\u0120SPECIAL\": 38846, \"\\u0120Ricardo\": 38847, \"Fran\": 38848, \"\\u0120administering\": 38849, \"620\": 38850, \"pora\": 38851, \"\\u0120\\u00c2\\u00ae\": 38852, \"\\u0120compromises\": 38853, \"\\u0120bitten\": 38854, \"Accept\": 38855, \"Thirty\": 38856, \"\\u00d0\\u00b2\": 38857, \"\\u0120materially\": 38858, \"\\u0120Terr\": 38859, \"igmatic\": 38860, \"chains\": 38861, \"\\u0120dove\": 38862, \"stadt\": 38863, \"Marvel\": 38864, \"FAULT\": 38865, \"\\u0120windshield\": 38866, \"\\u0120336\": 38867, \"adier\": 38868, \"\\u0120swapping\": 38869, \"\\u0120flawless\": 38870, \"\\u0120Predator\": 38871, \"\\u0120Michele\": 38872, \"\\u0120propulsion\": 38873, \"\\u0120Psychic\": 38874, \"\\u0120assigning\": 38875, \"\\u0120fabrication\": 38876, \"\\u0120barley\": 38877, \"lust\": 38878, \"\\u0120towering\": 38879, \"\\u0120altercation\": 38880, \"\\u0120Bentley\": 38881, \"Sphere\": 38882, \"\\u0120tuna\": 38883, \"\\u0120Classes\": 38884, \"Freedom\": 38885, \"uner\": 38886, \"Lady\": 38887, \"voice\": 38888, \"\\u0120coolest\": 38889, \"orr\": 38890, \"\\u0120palp\": 38891, \"${\": 38892, \"\\u0120hysteria\": 38893, \"\\u0120Metatron\": 38894, \"pants\": 38895, \"\\u0120spawning\": 38896, \"Experts\": 38897, \"\\u0120Investors\": 38898, \"\\u0120Anarchy\": 38899, \"\\u0120shrunk\": 38900, \"\\u0120Victim\": 38901, \"\\u0120289\": 38902, \"\\u0120ecstasy\": 38903, \"\\u0120Binding\": 38904, \"585\": 38905, \"\\u0120Melody\": 38906, \"578\": 38907, \"otally\": 38908, \"\\u0120Etsy\": 38909, \"liga\": 38910, \"\\u0120applauded\": 38911, \"\\u0120sweating\": 38912, \"\\u0120redistributed\": 38913, \"\\u0120popcorn\": 38914, \"\\u0120seminal\": 38915, \"fur\": 38916, \"\\u0120Neuroscience\": 38917, \"Rand\": 38918, \"\\u0120Ost\": 38919, \"\\u0120Madden\": 38920, \"\\u0120Increasing\": 38921, \"\\u0120Dawkins\": 38922, \"\\u0120Subway\": 38923, \"\\u0120arsen\": 38924, \"conserv\": 38925, \"BUR\": 38926, \"\\u0120spiked\": 38927, \"\\u0120Lyft\": 38928, \"\\u0120Imperium\": 38929, \"\\u0120Dropbox\": 38930, \"\\u0120favoured\": 38931, \"\\u0120encompasses\": 38932, \"ghost\": 38933, \"\\u0120inspires\": 38934, \"\\u0120burgeoning\": 38935, \"\\u0120Yoshi\": 38936, \"\\u0120Vertical\": 38937, \"\\u0120Auditor\": 38938, \"\\u0120intending\": 38939, \"\\u0120filibuster\": 38940, \"Bloom\": 38941, \"fac\": 38942, \"\\u0120Cavs\": 38943, \"igning\": 38944, \"\\u0120coworkers\": 38945, \"\\u0120Barbarian\": 38946, \"remember\": 38947, \"FLAG\": 38948, \"\\u0120auditory\": 38949, \"asonry\": 38950, \"College\": 38951, \"\\u0120muted\": 38952, \"gemony\": 38953, \"obin\": 38954, \"\\u0120Psycho\": 38955, \"968\": 38956, \"\\u0120lavish\": 38957, \"\\u0120hierarchical\": 38958, \"\\u0120Drone\": 38959, \"ouk\": 38960, \"\\u0120crippled\": 38961, \"\\u0120Maxim\": 38962, \"Slot\": 38963, \"\\u0120quiz\": 38964, \"\\u0120Vid\": 38965, \"ifling\": 38966, \"\\u0120archaeologists\": 38967, \"\\u0120abandonment\": 38968, \"dial\": 38969, \"leon\": 38970, \"\\u0120Fas\": 38971, \"Ted\": 38972, \"\\u0120raspberry\": 38973, \"\\u0120maneuvers\": 38974, \"\\u0120behaviours\": 38975, \"\\u0120insure\": 38976, \"\\u0120remod\": 38977, \"Switch\": 38978, \"hoe\": 38979, \"\\u0120spaced\": 38980, \"\\u0120affordability\": 38981, \"\\u0120Fern\": 38982, \"notation\": 38983, \"\\u0120Balanced\": 38984, \"\\u0120occupies\": 38985, \"environment\": 38986, \"\\u0120necklace\": 38987, \"\\u0120sedan\": 38988, \"FU\": 38989, \"\\u0120Bravo\": 38990, \"\\u0120abusers\": 38991, \"\\u0120Anita\": 38992, \"metadata\": 38993, \"\\u0120Github\": 38994, \"aito\": 38995, \"\\u0120Faster\": 38996, \"\\u0120Wasserman\": 38997, \"\\u0120Flesh\": 38998, \"\\u0120thorn\": 38999, \"rarily\": 39000, \"\\u0120Merry\": 39001, \"wine\": 39002, \"\\u0120populace\": 39003, \"\\u0120Lann\": 39004, \"\\u0120repairing\": 39005, \"\\u0120psyche\": 39006, \"\\u0120modulation\": 39007, \"awaru\": 39008, \"\\u00e2\\u0122\\u012d\\u00e2\\u0122\\u012d\": 39009, \"arij\": 39010, \"\\u0120decorations\": 39011, \"\\u0120apologise\": 39012, \"\\u0120Garg\": 39013, \"apply\": 39014, \"\\u0120giveaway\": 39015, \"\\u0120Flan\": 39016, \"\\u0120Wyatt\": 39017, \"Uber\": 39018, \"\\u0120authorised\": 39019, \"\\u0120Moral\": 39020, \"HAHAHAHA\": 39021, \"activate\": 39022, \"\\u0120torpedo\": 39023, \"\\u0120FAR\": 39024, \"\\u0120amassed\": 39025, \"\\u0120Aram\": 39026, \"arkin\": 39027, \"\\u0120Victims\": 39028, \"stab\": 39029, \"\\u0120om\": 39030, \"\\u0120ECO\": 39031, \"\\u0120opioids\": 39032, \"\\u0120purposely\": 39033, \"\\u0120Vest\": 39034, \"\\u0120erg\": 39035, \"atan\": 39036, \"\\u0120Surgery\": 39037, \"\\u0120correcting\": 39038, \"\\u0120Ortiz\": 39039, \"\\u0120Beet\": 39040, \"\\u0120revoke\": 39041, \"\\u0120freeway\": 39042, \"\\u0120Higgins\": 39043, \"Fail\": 39044, \"\\u0120Farms\": 39045, \"\\u0120ATP\": 39046, \"hound\": 39047, \"\\u0120poking\": 39048, \"\\u0120Communists\": 39049, \"monster\": 39050, \"imentary\": 39051, \"\\u0120unlocking\": 39052, \"\\u0120unfit\": 39053, \"weed\": 39054, \"enario\": 39055, \"atical\": 39056, \"\\u0120Enlightenment\": 39057, \"\\u0120NG\": 39058, \"\\u0120Compensation\": 39059, \"deen\": 39060, \"\\u0120Widow\": 39061, \"\\u0120Cindy\": 39062, \"\\u0120Afterwards\": 39063, \"\\u01206000\": 39064, \"ikhail\": 39065, \"agically\": 39066, \"\\u0120ratified\": 39067, \"\\u0120casualty\": 39068, \"HOME\": 39069, \"psey\": 39070, \"fee\": 39071, \"\\u0120sparkling\": 39072, \"\\u0120d\\u00c3\\u00a9\": 39073, \"\\u0120concerted\": 39074, \"Catal\": 39075, \"\\u0120complying\": 39076, \"\\u0120Ares\": 39077, \"\\u0120Dent\": 39078, \"Shut\": 39079, \"\\u0120skim\": 39080, \"administ\": 39081, \"\\u0120hostilities\": 39082, \"\\u0120Gins\": 39083, \"\\u0120608\": 39084, \"\\u0120muddy\": 39085, \"\\u0120McInt\": 39086, \"\\u0120Decay\": 39087, \"525\": 39088, \"\\u0120conspicuous\": 39089, \"\\u0120Exposure\": 39090, \"\\u0120rescind\": 39091, \"\\u0120wearable\": 39092, \"\\u0120328\": 39093, \"ourmet\": 39094, \"ahs\": 39095, \"\\u0120Robots\": 39096, \"\\u0120eclips\": 39097, \"instance\": 39098, \"\\u0120REPORT\": 39099, \"\\u0120Appl\": 39100, \"030\": 39101, \"\\u0120Skies\": 39102, \"0100\": 39103, \"\\u0120fallacy\": 39104, \"Socket\": 39105, \"\\u0120Receiver\": 39106, \"\\u0120solves\": 39107, \"\\u0120Butterfly\": 39108, \"\\u0120Shopping\": 39109, \"\\u0120FIRE\": 39110, \"654\": 39111, \"Medic\": 39112, \"\\u0120singers\": 39113, \"\\u0120Needless\": 39114, \"''''\": 39115, \"ishers\": 39116, \"\\u0120Dive\": 39117, \"588\": 39118, \"\\u0120selectively\": 39119, \"\\u0120clumsy\": 39120, \"889\": 39121, \"\\u0120purchaser\": 39122, \"earned\": 39123, \"ardy\": 39124, \"\\u0120benefiting\": 39125, \"english\": 39126, \"\\u0120yielding\": 39127, \"\\u0120Pour\": 39128, \"\\u0120spinach\": 39129, \"\\u0120delve\": 39130, \"\\u0120Crom\": 39131, \"610\": 39132, \"\\u0120exporting\": 39133, \"\\u0120MAKE\": 39134, \"\\u0120263\": 39135, \"\\u0120grop\": 39136, \"\\u0120envoy\": 39137, \"\\u0120Inquiry\": 39138, \"\\u0120Luigi\": 39139, \"dry\": 39140, \"\\u0120Turing\": 39141, \"ThumbnailImage\": 39142, \"\\u0120Variety\": 39143, \"\\u0120facet\": 39144, \"\\u0120fluffy\": 39145, \"\\u0120excerpts\": 39146, \"\\u0120shorth\": 39147, \"\\u0120Olsen\": 39148, \"CLUD\": 39149, \"\\u0120reliant\": 39150, \"\\u0120UNC\": 39151, \"Tour\": 39152, \"\\u0120bathing\": 39153, \"Company\": 39154, \"\\u0120globalization\": 39155, \"Pred\": 39156, \"\\u0120Malfoy\": 39157, \"\\u0120hoc\": 39158, \"jam\": 39159, \"crafted\": 39160, \"\\u0120Bonds\": 39161, \"\\u0120Kissinger\": 39162, \"England\": 39163, \"\\u0120orderly\": 39164, \"catentry\": 39165, \"\\u0120261\": 39166, \"\\u0120exchanging\": 39167, \"\\u0120Intent\": 39168, \"\\u0120Amendments\": 39169, \"DOM\": 39170, \"\\u0120stout\": 39171, \"\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\\u00c2\\u0142\": 39172, \"\\u0120Airbus\": 39173, \"\\u0120278\": 39174, \"hyde\": 39175, \"Poll\": 39176, \"ItemThumbnailImage\": 39177, \"\\u0120loopholes\": 39178, \"\\u0120Pillar\": 39179, \"\\u0120explor\": 39180, \"Stretch\": 39181, \"Apart\": 39182, \"\\u0120unmarried\": 39183, \"Limit\": 39184, \"\\u0120Transformers\": 39185, \"\\u0120intellectually\": 39186, \"uncture\": 39187, \"1800\": 39188, \"\\u0120darn\": 39189, \"Brazil\": 39190, \"\\u0120leftover\": 39191, \"berus\": 39192, \"fred\": 39193, \"Minecraft\": 39194, \"326\": 39195, \"\\u0120Forms\": 39196, \"\\u0120proofs\": 39197, \"\\u0120Designed\": 39198, \"\\u0120indexes\": 39199, \"\\u0120Suppose\": 39200, \"EMS\": 39201, \"\\u0120Loving\": 39202, \"\\u0120Bonnie\": 39203, \"imating\": 39204, \"OTUS\": 39205, \"\\u0120conductor\": 39206, \"\\u0120behaved\": 39207, \"\\u0120Fren\": 39208, \"\\u0120synerg\": 39209, \"\\u0120millennium\": 39210, \"\\u0120catering\": 39211, \"\\u0120Lauder\": 39212, \"Wr\": 39213, \"\\u0120Yiannopoulos\": 39214, \"\\u0120ATF\": 39215, \"\\u0120enslaved\": 39216, \"\\u0120awakened\": 39217, \"DVD\": 39218, \"\\u0120EDITION\": 39219, \"\\u0120Concert\": 39220, \"\\u0120Challenger\": 39221, \"\\u0120Haku\": 39222, \"umeric\": 39223, \"\\u0120deprecated\": 39224, \"\\u0120SHAR\": 39225, \"412\": 39226, \"\\u0120dystop\": 39227, \"\\u0120trembling\": 39228, \"\\u0120dreaded\": 39229, \"\\u0120Spac\": 39230, \"padding\": 39231, \"Repl\": 39232, \"\\u0120Garrison\": 39233, \"Mini\": 39234, \"\\u0120unparalleled\": 39235, \"amar\": 39236, \"URRENT\": 39237, \"wreck\": 39238, \"certain\": 39239, \"tal\": 39240, \"\\u0120CLS\": 39241, \"appings\": 39242, \"\\u0120sensed\": 39243, \"\\u0120fencing\": 39244, \"\\u0120Paso\": 39245, \"\\u0120Desk\": 39246, \"\\u0120scoff\": 39247, \"\\u0120contemplate\": 39248, \"\\u0120Liga\": 39249, \"liquid\": 39250, \"757\": 39251, \"\\u0120apprentice\": 39252, \"\\u0120UCHIJ\": 39253, \"570\": 39254, \"\\u0120Thousand\": 39255, \"\\u0120Illum\": 39256, \"\\u0120championed\": 39257, \"\\u00e3\\u0124\\u012e\": 39258, \"\\u0120electors\": 39259, \"\\u0120398\": 39260, \"\\u0120Hancock\": 39261, \"rounded\": 39262, \"\\u0120JOHN\": 39263, \"\\u0120unsatisf\": 39264, \"\\u0120qualifier\": 39265, \"\\u0120Gadget\": 39266, \"ENE\": 39267, \"\\u0120deadliest\": 39268, \"\\u0120Plants\": 39269, \"\\u0120ions\": 39270, \"\\u0120accents\": 39271, \"\\u0120tweaking\": 39272, \"\\u0120shaved\": 39273, \"FREE\": 39274, \"\\u0120Chaser\": 39275, \"Against\": 39276, \"960\": 39277, \"\\u0120methamphetamine\": 39278, \"\\u0120normalized\": 39279, \"\\u0120$\\\\\": 39280, \"\\u0120Precision\": 39281, \"\\u0120Guam\": 39282, \"\\u0120choked\": 39283, \"\\u0120XII\": 39284, \"\\u0120Casting\": 39285, \"Torrent\": 39286, \"\\u0120scalp\": 39287, \"\\u0120Jaguar\": 39288, \"wit\": 39289, \"\\u0120semic\": 39290, \"ixie\": 39291, \"\\u0120Gould\": 39292, \"\\u0120confines\": 39293, \"Nusra\": 39294, \"\\u0120Lon\": 39295, \"\\u0120Jugg\": 39296, \"ycle\": 39297, \"\\u0120Codec\": 39298, \"Egypt\": 39299, \"\\u0120restrain\": 39300, \"\\u0120Aliens\": 39301, \"\\u0120choking\": 39302, \"\\u0120Dunk\": 39303, \"\\u0120Bella\": 39304, \"abc\": 39305, \"\\u0120slang\": 39306, \"\\u0120neurotrans\": 39307, \"sav\": 39308, \"\\u0120empowerment\": 39309, \"\\u00e2\\u0128\\u0134\": 39310, \"\\u0120climbers\": 39311, \"\\u0120Mim\": 39312, \"\\u0120Fra\": 39313, \"rosse\": 39314, \"Capital\": 39315, \"\\u0120Cthulhu\": 39316, \"Interface\": 39317, \"\\u0120proficient\": 39318, \"\\u0120INTO\": 39319, \"\\u0120318\": 39320, \"rontal\": 39321, \"580\": 39322, \"\\u0120Despair\": 39323, \"Kenn\": 39324, \"\\u0120scrimmage\": 39325, \"\\u0120Coat\": 39326, \"asions\": 39327, \"\\u0120wallpaper\": 39328, \"\\u0120Jol\": 39329, \"\\u0120resurgence\": 39330, \"\\u0120antiv\": 39331, \"\\u0120Balls\": 39332, \"\\u00b2\\u00be\": 39333, \"\\u0120buffers\": 39334, \"\\u0120subsystem\": 39335, \"\\u0120Stellar\": 39336, \"\\u0120Lung\": 39337, \"AIDS\": 39338, \"\\u0120eradicate\": 39339, \"\\u0120blatantly\": 39340, \"\\u0120behaves\": 39341, \"\\u0120Nun\": 39342, \"\\u0120antics\": 39343, \"export\": 39344, \"DEV\": 39345, \"wb\": 39346, \"\\u0120php\": 39347, \"\\u0120Integrity\": 39348, \"\\u0120explorer\": 39349, \"\\u0120revolving\": 39350, \"authored\": 39351, \"gans\": 39352, \"\\u0120bask\": 39353, \"\\u0120asynchronous\": 39354, \"\\u00e5\\u012f\": 39355, \"THING\": 39356, \"698\": 39357, \"Gene\": 39358, \"\\u0120Racer\": 39359, \"\\u0120Nico\": 39360, \"issued\": 39361, \"\\u0120sermon\": 39362, \"possibly\": 39363, \"\\u0120sizeof\": 39364, \"\\u0120entrepreneurial\": 39365, \"oxin\": 39366, \"\\u0120Minerva\": 39367, \"\\u0120platoon\": 39368, \"nos\": 39369, \"riks\": 39370, \"AUT\": 39371, \"\\u0120Avalanche\": 39372, \"\\u0120Desc\": 39373, \"\\u0133\\u00e5\\u00a3\\u00ab\": 39374, \"\\u0120Poc\": 39375, \"\\u0120conferred\": 39376, \"\\u00ce\\u00bb\": 39377, \"\\u0120patched\": 39378, \"FBI\": 39379, \"662\": 39380, \"\\u0120fractures\": 39381, \"\\u0120detects\": 39382, \"\\u0120dedicate\": 39383, \"\\u0120constituent\": 39384, \"\\u0120cosmos\": 39385, \"WT\": 39386, \"\\u0120sweats\": 39387, \"\\u0120sprung\": 39388, \"bara\": 39389, \"solid\": 39390, \"\\u0120unsus\": 39391, \"\\u0120bulky\": 39392, \"\\u0120Philippe\": 39393, \"\\u0120Fenrir\": 39394, \"\\u0120therapists\": 39395, \"oreal\": 39396, \"^^^^\": 39397, \"\\u0120totaled\": 39398, \"\\u0120booze\": 39399, \"\\u0120RPC\": 39400, \"Prosecutors\": 39401, \"\\u0120diseng\": 39402, \"\\u0120Shared\": 39403, \"\\u0120motorcycles\": 39404, \"\\u0120inventions\": 39405, \"\\u0120lettuce\": 39406, \"\\u0120Merge\": 39407, \"\\u0120JC\": 39408, \"\\u0120spirituality\": 39409, \"\\u0120WARNING\": 39410, \"\\u0120unlucky\": 39411, \"\\u0120Tess\": 39412, \"\\u0120tongues\": 39413, \"\\u0120DUI\": 39414, \"Tumblr\": 39415, \"\\u0120leans\": 39416, \"\\u0120invaders\": 39417, \"\\u0120canopy\": 39418, \"\\u0120Hurricanes\": 39419, \"\\u0120Bret\": 39420, \"\\u0120APPLIC\": 39421, \"idine\": 39422, \"ickle\": 39423, \"Regarding\": 39424, \"\\u0120veggies\": 39425, \"\\u0120ejac\": 39426, \"juven\": 39427, \"Fish\": 39428, \"DEM\": 39429, \"\\u0120Dino\": 39430, \"Throw\": 39431, \"\\u0120Checking\": 39432, \"beard\": 39433, \"(&\": 39434, \"\\u0120jails\": 39435, \"\\u0120hr\": 39436, \"transfer\": 39437, \"ivating\": 39438, \"\\u0120fleets\": 39439, \"\\u0120Imag\": 39440, \"\\u0120McDonnell\": 39441, \"\\u0120snippet\": 39442, \"Isa\": 39443, \"\\u0120Chatt\": 39444, \"\\u0120Stain\": 39445, \"\\u0120SetFontSize\": 39446, \"\\u0120Oy\": 39447, \"\\u0120Mathematics\": 39448, \"494\": 39449, \"\\u0120electroly\": 39450, \"\\u0120Gott\": 39451, \"\\u0120Bras\": 39452, \"BOOK\": 39453, \"\\u0120Finger\": 39454, \"dump\": 39455, \"\\u0120mutants\": 39456, \"\\u0120rentals\": 39457, \"\\u0120intertw\": 39458, \"\\u0120creek\": 39459, \"aila\": 39460, \"Brother\": 39461, \"\\u0120Discord\": 39462, \"pee\": 39463, \"rawler\": 39464, \"\\u0120carp\": 39465, \"\\u0120279\": 39466, \"\\u00e3\\u0124\\u00b7\\u00e3\\u0125\\u00a3\": 39467, \"relations\": 39468, \"\\u0120contrasts\": 39469, \"Column\": 39470, \"\\u0120reconnaissance\": 39471, \"\\u0120unknow\": 39472, \"\\u0120looting\": 39473, \"\\u0120regulates\": 39474, \"\\u0120optimum\": 39475, \"\\u0120Cherokee\": 39476, \"\\u0120Ary\": 39477, \"Latest\": 39478, \"\\u0120roadside\": 39479, \"\\u0120danced\": 39480, \"\\u0120Unicorn\": 39481, \"Acknowled\": 39482, \"\\u0120uncontroll\": 39483, \"\\u0120MUS\": 39484, \"atio\": 39485, \"chance\": 39486, \"haven\": 39487, \"VALUE\": 39488, \"\\u0120favourites\": 39489, \"\\u0120ceremonial\": 39490, \"binary\": 39491, \"peed\": 39492, \"woods\": 39493, \"EMP\": 39494, \"\\u0120vascular\": 39495, \"\\u0120contemplated\": 39496, \"\\u0120barren\": 39497, \"\\u0120LIST\": 39498, \"Yellow\": 39499, \"osponsors\": 39500, \"\\u0120whisky\": 39501, \"\\u0120Mamm\": 39502, \"\\u0120DeVos\": 39503, \"minimum\": 39504, \"Hung\": 39505, \"442\": 39506, \"Pic\": 39507, \"\\u0120Snapdragon\": 39508, \"776\": 39509, \"\\u0120carving\": 39510, \"\\u0120undecided\": 39511, \"\\u0120advantageous\": 39512, \"\\u0120palms\": 39513, \"\\u0120AQ\": 39514, \"\\u0120starch\": 39515, \"Loop\": 39516, \"\\u0120paddle\": 39517, \"\\u0120flaming\": 39518, \"\\u0120Horizons\": 39519, \"Animation\": 39520, \"boost\": 39521, \"\\u0120probabilities\": 39522, \"\\u0120Mish\": 39523, \"\\u0120exodus\": 39524, \"\\u0120Editorial\": 39525, \"\\u0120fungus\": 39526, \"\\u0120dissenting\": 39527, \"\\u0120Delicious\": 39528, \"rogram\": 39529, \"\\u0120Dyn\": 39530, \"disk\": 39531, \"tom\": 39532, \"\\u0120fabrics\": 39533, \"\\u0120Cove\": 39534, \"\\u0120Bans\": 39535, \"\\u0120soften\": 39536, \"\\u0120CONS\": 39537, \"\\u0120ineligible\": 39538, \"\\u0120estimating\": 39539, \"\\u0120Lexington\": 39540, \"practice\": 39541, \"ofi\": 39542, \"\\u0120shedding\": 39543, \"\\u0120Nope\": 39544, \"\\u0120breathed\": 39545, \"\\u0120Corinthians\": 39546, \"yne\": 39547, \"eki\": 39548, \"Bull\": 39549, \"\\u0120attaching\": 39550, \"reenshots\": 39551, \"\\u0120analyse\": 39552, \"\\u0120Kappa\": 39553, \"\\u0120unsustainable\": 39554, \"\\u0120interpol\": 39555, \"anky\": 39556, \"hemer\": 39557, \"\\u0120protagonists\": 39558, \"\\u0120formatted\": 39559, \"\\u0120Bryce\": 39560, \"\\u0120Achilles\": 39561, \"\\u0120Abedin\": 39562, \"shock\": 39563, \"\\u0120bum\": 39564, \"bos\": 39565, \"qua\": 39566, \"\\u0120Warn\": 39567, \"qt\": 39568, \"\\u0120Diabetes\": 39569, \"864\": 39570, \"\\u0120Invisible\": 39571, \"\\u0120vanish\": 39572, \"\\u0120transmitting\": 39573, \"\\u0120murky\": 39574, \"\\u0120Fei\": 39575, \"\\u0120awaited\": 39576, \"\\u0120Jurassic\": 39577, \"ummies\": 39578, \"\\u0120menacing\": 39579, \"gall\": 39580, \"Cath\": 39581, \"Built\": 39582, \"ildo\": 39583, \"\\u0120Votes\": 39584, \"\\u0120ont\": 39585, \"\\u0120munitions\": 39586, \"\\u0120Freem\": 39587, \"\\u00c3\\u0143n\": 39588, \"\\u0120decency\": 39589, \"lopp\": 39590, \"ieved\": 39591, \"\\u0120Gord\": 39592, \"\\u0120unthinkable\": 39593, \"\\u0120Newsweek\": 39594, \"\\u0120321\": 39595, \"Heat\": 39596, \"\\u0120presenter\": 39597, \"jiang\": 39598, \"\\u0120plank\": 39599, \"\\u0120Avalon\": 39600, \"\\u0120benz\": 39601, \"\\u0120Rout\": 39602, \"\\u0120slamming\": 39603, \"\\u0120Dai\": 39604, \"outer\": 39605, \"\\u0120Cookie\": 39606, \"\\u0120Alicia\": 39607, \"gey\": 39608, \"\\u0120vanity\": 39609, \"\\u0120owl\": 39610, \"\\u00e1\\u00b5\": 39611, \"tested\": 39612, \"\\u0120Awakens\": 39613, \"\\u0120canv\": 39614, \"\\u0120blindly\": 39615, \"\\u0120Ridley\": 39616, \"\\u0120Emails\": 39617, \"Requires\": 39618, \"\\u0120Serbian\": 39619, \"ographed\": 39620, \"iframe\": 39621, \"eteria\": 39622, \"\\u0120alternating\": 39623, \"quiet\": 39624, \"\\u0120sociology\": 39625, \"\\u0120Unlock\": 39626, \"\\u0120Communism\": 39627, \"\\u0120ops\": 39628, \"\\u0120attribution\": 39629, \"\\u0120abduction\": 39630, \"\\u0120Abram\": 39631, \"\\u0120sidelined\": 39632, \"\\u0120BOOK\": 39633, \"\\u0120refining\": 39634, \"\\u0120Feeling\": 39635, \"\\u0120Oslo\": 39636, \"\\u0120Pruitt\": 39637, \"rack\": 39638, \"angible\": 39639, \"\\u0120cautiously\": 39640, \"\\u0120MARK\": 39641, \"eeds\": 39642, \"Mouse\": 39643, \"\\u0120Steph\": 39644, \"\\u0120Pair\": 39645, \"Sab\": 39646, \"997\": 39647, \"\\u0120Baal\": 39648, \"Bec\": 39649, \"\\u0120comma\": 39650, \"\\u0120Pall\": 39651, \"\\u0120Gael\": 39652, \"\\u0120misunderstand\": 39653, \"\\u0120Pesh\": 39654, \"Orderable\": 39655, \"\\u0120dismal\": 39656, \"\\u0120Shiny\": 39657, \"%\\\"\": 39658, \"\\u0120realistically\": 39659, \"\\u0120patio\": 39660, \"\\u0120Gw\": 39661, \"\\u0120Virtue\": 39662, \"\\u0120exhausting\": 39663, \"whatever\": 39664, \"ophys\": 39665, \"yip\": 39666, \"418\": 39667, \"Adjust\": 39668, \"\\u0120Waiting\": 39669, \"esson\": 39670, \"\\u0120Mazda\": 39671, \"\\u0120Dozens\": 39672, \"\\u0120streamlined\": 39673, \"\\u0120incompetence\": 39674, \"\\u0120Meth\": 39675, \"\\u0120ethos\": 39676, \"ONES\": 39677, \"\\u0120incentiv\": 39678, \"\\u0120gritty\": 39679, \"\\u0120Butcher\": 39680, \"Header\": 39681, \"\\u0120exponential\": 39682, \"\\u00c3\\u0141\": 39683, \"\\u0120correlate\": 39684, \"\\u0120consensual\": 39685, \"sounding\": 39686, \"Ring\": 39687, \"Origin\": 39688, \"\\u0120conclusive\": 39689, \"feet\": 39690, \"acly\": 39691, \"\\u0120Fernandez\": 39692, \"Buyable\": 39693, \"\\u0120ducks\": 39694, \"auntlets\": 39695, \"\\u0120elong\": 39696, \"\\u0120286\": 39697, \"\\u0120simul\": 39698, \"Gas\": 39699, \"\\u0120Kirst\": 39700, \"\\u0120protr\": 39701, \"\\u0120Robo\": 39702, \"\\u0120AoE\": 39703, \"opol\": 39704, \"\\u0120psychologically\": 39705, \"spin\": 39706, \"ilaterally\": 39707, \"\\u0120Conrad\": 39708, \"Wave\": 39709, \"441\": 39710, \"\\u0120Advertisement\": 39711, \"\\u0120Harmon\": 39712, \"\\u0120Oriental\": 39713, \"isSpecial\": 39714, \"\\u0120presumptive\": 39715, \"\\u0120wil\": 39716, \"\\u0120Kier\": 39717, \"nea\": 39718, \"\\u0120ppm\": 39719, \"\\u0120harbour\": 39720, \"\\u0120Wired\": 39721, \"company\": 39722, \"\\u0120coroner\": 39723, \"aturdays\": 39724, \"\\u0120Proud\": 39725, \"\\u0120NEXT\": 39726, \"\\u0120Flake\": 39727, \"valued\": 39728, \"ceiver\": 39729, \"\\u0120fraught\": 39730, \"\\u0120casing\": 39731, \"\\u0120runaway\": 39732, \"\\u0120gin\": 39733, \"\\u0120Laurent\": 39734, \"\\u0120Harlem\": 39735, \"\\u0120Curiosity\": 39736, \"quished\": 39737, \"\\u0120neuroscience\": 39738, \"\\u0120Hulu\": 39739, \"\\u0120borrower\": 39740, \"\\u0120petitioner\": 39741, \"\\u0120Cooldown\": 39742, \"WARD\": 39743, \"\\u0120invoking\": 39744, \"confidence\": 39745, \"Forward\": 39746, \"\\u0120sts\": 39747, \"population\": 39748, \"DeliveryDate\": 39749, \"Film\": 39750, \"\\u0120Cov\": 39751, \"quickShip\": 39752, \"quickShipAvailable\": 39753, \"primary\": 39754, \"isSpecialOrderable\": 39755, \"inventoryQuantity\": 39756, \"channelAvailability\": 39757, \"BOX\": 39758, \"\\u0120Multiplayer\": 39759, \"\\u0120Jenner\": 39760, \"778\": 39761, \"\\u0120Md\": 39762, \"\\u0120~/.\": 39763, \"MN\": 39764, \"\\u0120childish\": 39765, \"\\u0120antioxidant\": 39766, \"\\u0120Chromebook\": 39767, \"\\u0120274\": 39768, \"\\u0120screenplay\": 39769, \"\\u0120adventurous\": 39770, \"\\u0120Relationship\": 39771, \"responsive\": 39772, \"mington\": 39773, \"\\u0120cornerstone\": 39774, \"\\u0120Fey\": 39775, \"FIR\": 39776, \"\\u0120rookies\": 39777, \"\\u0120Featuring\": 39778, \"\\u0120originate\": 39779, \"\\u0120electrodes\": 39780, \"antes\": 39781, \"\\u0120scriptures\": 39782, \"\\u0120glued\": 39783, \"\\u0120discontent\": 39784, \"\\u0120afflicted\": 39785, \"layout\": 39786, \"Brave\": 39787, \"\\u0120mosa\": 39788, \"\\u0120Quantity\": 39789, \"\\u0120Hik\": 39790, \"winner\": 39791, \"Hours\": 39792, \"\\u0120entail\": 39793, \"\\u0120Cells\": 39794, \"ologue\": 39795, \"\\u0120vil\": 39796, \"\\u0120preacher\": 39797, \"\\u0120decorative\": 39798, \"different\": 39799, \"\\u0120prejudices\": 39800, \"\\u0120Smoking\": 39801, \"\\u0120Nottingham\": 39802, \"soType\": 39803, \"\\u0120rhythms\": 39804, \"\\u0120Alph\": 39805, \"blast\": 39806, \"Steel\": 39807, \"\\u0120Danielle\": 39808, \"\\u0120strife\": 39809, \"\\u0120rematch\": 39810, \"soDeliveryDate\": 39811, \"\\u0120Fork\": 39812, \"trip\": 39813, \"olulu\": 39814, \"heses\": 39815, \"CG\": 39816, \"\\u0120POLITICO\": 39817, \"osta\": 39818, \"\\u0120Drift\": 39819, \"\\u00e9\\u00be\\u012f\\u00e5\\u00a5\": 39820, \"\\u00e9\\u00be\\u012f\\u00e5\\u00a5\\u0133\\u00e5\\u00a3\\u00ab\": 39821, \"\\u0120vetting\": 39822, \"\\u0120Jinping\": 39823, \"\\u0120Recession\": 39824, \"Minor\": 39825, \"\\u0120Fraud\": 39826, \"enfranch\": 39827, \"\\u0120convened\": 39828, \"\\u0120NAACP\": 39829, \"\\u0120Millions\": 39830, \"\\u0120Farming\": 39831, \"\\u0120Woo\": 39832, \"\\u0120Flare\": 39833, \"rito\": 39834, \"immigrant\": 39835, \"\\u0120vacancy\": 39836, \"\\u0120HEAD\": 39837, \"\\u0120Vaj\": 39838, \"egal\": 39839, \"\\u0120Vigil\": 39840, \"Study\": 39841, \"\\u0120ruining\": 39842, \"\\u0120racks\": 39843, \"\\u0120heater\": 39844, \"\\u0120Randolph\": 39845, \"\\u0120Brush\": 39846, \"\\u0120Tir\": 39847, \"\\u00d8\\u00a8\": 39848, \"\\u0120cov\": 39849, \"%]\": 39850, \"\\u0120recounts\": 39851, \"\\u0120OPT\": 39852, \"\\u0120Melt\": 39853, \"\\u0120truce\": 39854, \"\\u0120casinos\": 39855, \"\\u0120crusade\": 39856, \"\\u0120carnage\": 39857, \"\\u0120stripe\": 39858, \"\\u0120Kyl\": 39859, \"Textures\": 39860, \"\\u0120698\": 39861, \"\\u0120proclamation\": 39862, \"\\u0120goodies\": 39863, \"\\u0120..........\": 39864, \"proclaimed\": 39865, \"Polit\": 39866, \"\\u0120topical\": 39867, \"\\u0120specialize\": 39868, \"\\u0120Amin\": 39869, \"gm\": 39870, \"\\u0120anchored\": 39871, \"\\u0120bearings\": 39872, \"sample\": 39873, \"\\u0120Highland\": 39874, \"\\u0120Autism\": 39875, \"\\u0120mercenary\": 39876, \"\\u0120interviewer\": 39877, \"LER\": 39878, \"\\u0120Somers\": 39879, \"\\u0120embryo\": 39880, \"\\u0120Assy\": 39881, \"\\u0120281\": 39882, \"\\u0120Editing\": 39883, \"\\u0120Chosen\": 39884, \"660\": 39885, \"\\u0120pci\": 39886, \"\\u0120Thunderbolt\": 39887, \"BILL\": 39888, \"\\u0120chuckled\": 39889, \"jriwal\": 39890, \"hof\": 39891, \"\\u0120earthly\": 39892, \"(){\": 39893, \"independence\": 39894, \"\\u0120dispers\": 39895, \"\\u0120Vendor\": 39896, \"\\u0120Gareth\": 39897, \"\\u0120pals\": 39898, \"Penn\": 39899, \"\\u0120Submit\": 39900, \"icum\": 39901, \"Thu\": 39902, \"\\u0120clandestine\": 39903, \"\\u0120cannibal\": 39904, \"\\u0120Clerk\": 39905, \"EStream\": 39906, \"galitarian\": 39907, \"\\u00e2\\u013b\\u00a5\": 39908, \"gew\": 39909, \"\\u0120horrend\": 39910, \"\\u0120Lov\": 39911, \"\\u0120Reaction\": 39912, \"ocrin\": 39913, \"Classic\": 39914, \"\\u0120echoing\": 39915, \"\\u0120disclosing\": 39916, \"\\u0120Insight\": 39917, \"ogun\": 39918, \"\\u0120Incarn\": 39919, \"uploads\": 39920, \"pperc\": 39921, \"guyen\": 39922, \"\\u01201901\": 39923, \"\\u0120Bars\": 39924, \"687\": 39925, \"\\u0120bribes\": 39926, \"\\u0120Fresno\": 39927, \"urat\": 39928, \"\\u0120Reese\": 39929, \"\\u0120intrusive\": 39930, \"\\u0120gripping\": 39931, \"\\u0120Blueprint\": 39932, \"\\u0120Rasm\": 39933, \"unia\": 39934, \"managed\": 39935, \"\\u0120Hebdo\": 39936, \"\\u0120345\": 39937, \"\\u0120decoding\": 39938, \"\\u0120poets\": 39939, \"\\u0120jaws\": 39940, \"\\u0120FIGHT\": 39941, \"ameless\": 39942, \"\\u0120Meadows\": 39943, \"\\u0120Harbaugh\": 39944, \"Interview\": 39945, \"\\u0120Hosp\": 39946, \"\\u0120BRA\": 39947, \"\\u0120deletion\": 39948, \"mob\": 39949, \"Walker\": 39950, \"\\u0120Moonlight\": 39951, \"\\u0120Jed\": 39952, \"\\u0120Sophia\": 39953, \"\\u0120usur\": 39954, \"\\u0120fortunately\": 39955, \"\\u0120Putting\": 39956, \"\\u0120Fold\": 39957, \"\\u0120sanitation\": 39958, \"\\u0120partisans\": 39959, \"ISON\": 39960, \"Bow\": 39961, \"\\u0120CONC\": 39962, \"\\u0120Reduced\": 39963, \"\\u0120Sutton\": 39964, \"\\u0120touchscreen\": 39965, \"\\u0120embryos\": 39966, \"\\u00e2\\u0122\\u00a2\\u00e2\\u0122\\u00a2\\u00e2\\u0122\\u00a2\\u00e2\\u0122\\u00a2\": 39967, \"\\u0120Krug\": 39968, \"combat\": 39969, \"\\u0120Petroleum\": 39970, \"\\u0120amd\": 39971, \"\\u0120Cosmos\": 39972, \"\\u0120prescribing\": 39973, \"\\u0120conformity\": 39974, \"ourses\": 39975, \"\\u0120plentiful\": 39976, \"\\u0120disillusion\": 39977, \"\\u0120Ecology\": 39978, \"ittal\": 39979, \"\\u0120fanc\": 39980, \"\\u0120assassinated\": 39981, \"regnancy\": 39982, \"\\u0120perennial\": 39983, \"\\u0120Bullets\": 39984, \"\\u0120stale\": 39985, \"\\u0120cached\": 39986, \"\\u0120Judith\": 39987, \"\\u0120Diseases\": 39988, \"Allen\": 39989, \"\\u0120las\": 39990, \"\\u0120shards\": 39991, \"\\u0120Suarez\": 39992, \"\\u0120Friendship\": 39993, \"interface\": 39994, \"\\u0120Supporters\": 39995, \"addons\": 39996, \"462\": 39997, \"\\u0120Imran\": 39998, \"\\u0120Wim\": 39999, \"\\u0120newfound\": 40000, \"\\u0120Mb\": 40001, \"Animal\": 40002, \"\\u0120darling\": 40003, \"ande\": 40004, \"\\u0120rhy\": 40005, \"\\u0120Twisted\": 40006, \"posal\": 40007, \"ynski\": 40008, \"Various\": 40009, \"\\u00d7\\u013e\": 40010, \"\\u0120Kiw\": 40011, \"uyomi\": 40012, \"\\u0120wellbeing\": 40013, \"\\u0120Lau\": 40014, \"anos\": 40015, \"\\u0120unmist\": 40016, \"\\u0120macOS\": 40017, \"\\u0120restroom\": 40018, \"\\u0120Oliv\": 40019, \"\\u0120Airways\": 40020, \"\\u0120timetable\": 40021, \"980\": 40022, \"\\u0120radios\": 40023, \"voy\": 40024, \"iasco\": 40025, \"\\u0120cloudy\": 40026, \"\\u0120Drawing\": 40027, \"Anything\": 40028, \"Syria\": 40029, \"\\u0120Hert\": 40030, \"staking\": 40031, \"\\u0120unchecked\": 40032, \"\\u0120brazen\": 40033, \"\\u0120NRS\": 40034, \"697\": 40035, \"onomic\": 40036, \"establish\": 40037, \"\\u0120leng\": 40038, \"\\u0120diagonal\": 40039, \"\\u0120Fior\": 40040, \"Lair\": 40041, \"\\u0120Stard\": 40042, \"\\u0120deficient\": 40043, \"joining\": 40044, \"beam\": 40045, \"\\u0120omnip\": 40046, \"\\u0120blender\": 40047, \"\\u0120sunrise\": 40048, \"Moore\": 40049, \"\\u0120Fault\": 40050, \"\\u0120Costume\": 40051, \"\\u0120Mub\": 40052, \"Flags\": 40053, \"anse\": 40054, \"\\u0120payout\": 40055, \"\\u0120Governors\": 40056, \"\\u0120Dillon\": 40057, \"\\u0120Banana\": 40058, \"Nar\": 40059, \"\\u0120trailed\": 40060, \"\\u0120imperialist\": 40061, \"umann\": 40062, \"atsuki\": 40063, \"435\": 40064, \"\\u0120Roads\": 40065, \"\\u0120slur\": 40066, \"\\u0120Ideally\": 40067, \"\\u0120trenches\": 40068, \"Ctrl\": 40069, \"\\u0120mirrored\": 40070, \"\\u0120Zel\": 40071, \"\\u0120Crest\": 40072, \"Compat\": 40073, \"\\u0120Rolls\": 40074, \"scrib\": 40075, \"\\u0120Trails\": 40076, \"ometers\": 40077, \"winter\": 40078, \"\\u0120immortality\": 40079, \"ilated\": 40080, \"\\u0120contradicts\": 40081, \"universal\": 40082, \"illions\": 40083, \"\\u0120Mama\": 40084, \"optim\": 40085, \"ATURE\": 40086, \"\\u0120geo\": 40087, \"etter\": 40088, \"\\u0120Carlo\": 40089, \"424\": 40090, \"\\u0120canonical\": 40091, \"\\u0120Stronghold\": 40092, \"near\": 40093, \"\\u0120perfume\": 40094, \"\\u0120orchestra\": 40095, \"odiac\": 40096, \"\\u0120uphe\": 40097, \"\\u0120reigning\": 40098, \"versive\": 40099, \"\\u0120caucuses\": 40100, \"\\u0120DEM\": 40101, \"\\u0120insulted\": 40102, \"\\u0120------\": 40103, \"\\u0120Crush\": 40104, \"\\u0120rooting\": 40105, \"\\u0120Wraith\": 40106, \"\\u0120whore\": 40107, \"\\u0120tofu\": 40108, \"Cmd\": 40109, \"\\u0120Bree\": 40110, \"\\u0120$_\": 40111, \"\\u0120rive\": 40112, \"\\u0120Advertising\": 40113, \"\\u0120watt\": 40114, \"\\u0120HO\": 40115, \"\\u0120persuasive\": 40116, \"\\u0120Parameters\": 40117, \"\\u0120observational\": 40118, \"\\u0120NCT\": 40119, \"\\u0120Moj\": 40120, \"\\u0120Salon\": 40121, \"\\u0120trunc\": 40122, \"\\u0120exquisite\": 40123, \"\\u0120Mara\": 40124, \"\\u0120poop\": 40125, \"\\u0120ANN\": 40126, \"Exc\": 40127, \"\\u0120Wonderful\": 40128, \"\\u0120Taco\": 40129, \"\\u0120homeowner\": 40130, \"\\u0120Smithsonian\": 40131, \"orporated\": 40132, \"mmmm\": 40133, \"\\u0120loaf\": 40134, \"\\u0120Yamato\": 40135, \"\\u0120Indo\": 40136, \"\\u0120clinging\": 40137, \"\\u00c3\\u00a1s\": 40138, \"\\u0120immutable\": 40139, \"hub\": 40140, \"Orange\": 40141, \"\\u0120fingertips\": 40142, \"\\u0120Wooden\": 40143, \"\\u0120Kidd\": 40144, \"\\u0120JPM\": 40145, \"\\u0120Damn\": 40146, \"Cow\": 40147, \"codes\": 40148, \"482\": 40149, \"\\u0120initiating\": 40150, \"\\u0120Elk\": 40151, \"\\u0120Cutting\": 40152, \"\\u0120absentee\": 40153, \"\\u0120Vance\": 40154, \"\\u0120Lilith\": 40155, \"GUI\": 40156, \"\\u0120obscured\": 40157, \"\\u0120dwarves\": 40158, \"\\u0120Chop\": 40159, \"\\u0120Boko\": 40160, \"Values\": 40161, \"\\u0120multimedia\": 40162, \"\\u0120brewed\": 40163, \"Regular\": 40164, \"CRIPTION\": 40165, \"\\u0120Mortal\": 40166, \"\\u0120apex\": 40167, \"\\u0120traveler\": 40168, \"\\u0120boils\": 40169, \"\\u0120spraying\": 40170, \"Represent\": 40171, \"\\u0120Starship\": 40172, \"428\": 40173, \"\\u0120disapproval\": 40174, \"\\u0120shadowy\": 40175, \"\\u0120lamented\": 40176, \"\\u0120Replace\": 40177, \"\\u0120Fran\\u00c3\\u00a7\": 40178, \"677\": 40179, \"dor\": 40180, \"\\u0120unstoppable\": 40181, \"\\u0120cohorts\": 40182, \"gyn\": 40183, \"\\u0120Classics\": 40184, \"\\u0120Amph\": 40185, \"\\u0120sluggish\": 40186, \"\\u0120Addiction\": 40187, \"\\u0120Padres\": 40188, \"\\u0120inscription\": 40189, \"\\u0120inhuman\": 40190, \"minus\": 40191, \"\\u0120Jeremiah\": 40192, \"atars\": 40193, \"Terror\": 40194, \"\\u0120Tos\": 40195, \"\\u0120Sharma\": 40196, \"asta\": 40197, \"catch\": 40198, \"\\u0120plumbing\": 40199, \"\\u0120Timbers\": 40200, \"Shar\": 40201, \"Hal\": 40202, \"\\u0120Osc\": 40203, \"\\u0120coupling\": 40204, \"humans\": 40205, \"\\u0120sponge\": 40206, \"\\u0120idols\": 40207, \"\\u0120Spa\": 40208, \"\\u0120Advocate\": 40209, \"\\u0120Beats\": 40210, \"lua\": 40211, \"\\u0120ticking\": 40212, \"\\u0120loader\": 40213, \"\\u0120Gron\": 40214, \"810\": 40215, \"\\u0120stimulated\": 40216, \"\\u0120sidebar\": 40217, \"\\u0120Manufacturer\": 40218, \"oreAnd\": 40219, \"1973\": 40220, \"\\u0120praises\": 40221, \"\\u0120Flores\": 40222, \"disable\": 40223, \"\\u0120Electrical\": 40224, \"raise\": 40225, \"Eth\": 40226, \"\\u0120migrated\": 40227, \"\\u0120lecturer\": 40228, \"Kids\": 40229, \"\\u0120Cavern\": 40230, \"\\u0120kettle\": 40231, \"\\u0120glyc\": 40232, \"\\u0120Mandela\": 40233, \"\\u0120Fully\": 40234, \"\\u00e5\\u00a7\\u00ab\": 40235, \"FINEST\": 40236, \"\\u0120squeezing\": 40237, \"\\u0120Ryder\": 40238, \"ampoo\": 40239, \"oreAndOnline\": 40240, \"InstoreAndOnline\": 40241, \"BuyableInstoreAndOnline\": 40242, \"\\u0120commemorate\": 40243, \"\\u0120Rampage\": 40244, \"Austin\": 40245, \"\\u0120Shroud\": 40246, \"\\u0120Ruins\": 40247, \"915\": 40248, \"\\u0120KH\": 40249, \"\\u0120waterfront\": 40250, \"\\u0120ESC\": 40251, \"baby\": 40252, \"\\u0120Cout\": 40253, \"\\u0120Emblem\": 40254, \"\\u0120equivalents\": 40255, \"492\": 40256, \"Unique\": 40257, \"\\u0120Nietzsche\": 40258, \"browser\": 40259, \"\\u0120imitation\": 40260, \"\\u0120Werewolf\": 40261, \"\\u0120Kirin\": 40262, \"acas\": 40263, \"',\\\"\": 40264, \"\\u0120\\u00c3\\u00be\": 40265, \"Reviewed\": 40266, \"\\u0120cunt\": 40267, \"\\u0120voic\": 40268, \"\\u0120Lenovo\": 40269, \"\\u0120bonded\": 40270, \"481\": 40271, \"\\u0120inhibitors\": 40272, \"\\u0120endeavors\": 40273, \"\\u0120Havana\": 40274, \"\\u0120Stout\": 40275, \"\\u0120Jolly\": 40276, \"Actor\": 40277, \"*/(\": 40278, \"\\u0120occurrences\": 40279, \"\\u0120Tens\": 40280, \"Increased\": 40281, \"\\u0120ACTION\": 40282, \"\\u0120\\u00e3\\u0122\\u012e\": 40283, \"\\u0120Rankings\": 40284, \"\\u0120Breat\": 40285, \"\\u0120309\": 40286, \"Dou\": 40287, \"\\u0120impacting\": 40288, \"\\u0120Duchess\": 40289, \"prefix\": 40290, \"QB\": 40291, \"\\u0120summoning\": 40292, \"\\u0120bestowed\": 40293, \"\\u0120Kepler\": 40294, \"\\u0120POWER\": 40295, \"cube\": 40296, \"\\u0120Kits\": 40297, \"\\u0120Grip\": 40298, \"\\u0120opium\": 40299, \"\\u0120reputable\": 40300, \"toc\": 40301, \"ichael\": 40302, \"\\u0120Ripple\": 40303, \"\\u0120caf\\u00c3\\u00a9\": 40304, \"\\u0120Zoom\": 40305, \"\\u0120Burma\": 40306, \"\\u0120waive\": 40307, \"\\u0120stalls\": 40308, \"\\u0120demeanor\": 40309, \"incerity\": 40310, \"\\u0120fluoride\": 40311, \"\\u0120SHOULD\": 40312, \"Paris\": 40313, \"\\u0120longing\": 40314, \"\\u0120plat\": 40315, \"\\u0120grossly\": 40316, \"\\u0120bulls\": 40317, \"\\u0120showcasing\": 40318, \"expected\": 40319, \"\\u0120Gaddafi\": 40320, \"engineering\": 40321, \"Repeat\": 40322, \"\\u0120Kut\": 40323, \"\\u0120conceivable\": 40324, \"\\u0120trimmed\": 40325, \"oscope\": 40326, \"\\u0120Candidate\": 40327, \"\\u0120Tears\": 40328, \"rolog\": 40329, \"Lewis\": 40330, \"SUP\": 40331, \"\\u0120roadmap\": 40332, \"\\u0120saliva\": 40333, \"\\u0120trumpet\": 40334, \"Jimmy\": 40335, \"\\u0120miraculous\": 40336, \"\\u0120colonization\": 40337, \"\\u0120amput\": 40338, \"\\u0120GNOME\": 40339, \"atech\": 40340, \"Different\": 40341, \"\\u0120ELE\": 40342, \"\\u0120Governments\": 40343, \"\\u0120Ahead\": 40344, \"\\u00e3\\u0127\\u012d\\u00e3\\u0127\\u012d\": 40345, \"wordpress\": 40346, \"LIB\": 40347, \"\\u0120Include\": 40348, \"\\u0120Dorothy\": 40349, \"045\": 40350, \"\\u0120Colombian\": 40351, \"\\u0120leased\": 40352, \"884\": 40353, \"\\u0120degrading\": 40354, \"\\u0120Daisy\": 40355, \"iations\": 40356, \"\\u0120baptized\": 40357, \"\\u0120surname\": 40358, \"cox\": 40359, \"\\u0120blinked\": 40360, \"\\u00e3\\u0125\\u00a2\": 40361, \"\\u0120pollen\": 40362, \"\\u0120dermat\": 40363, \"\\u0120regex\": 40364, \"\\u0120Nicholson\": 40365, \"\\u0120Eater\": 40366, \"\\u00e7\\u013e\": 40367, \"rador\": 40368, \"\\u0120narrower\": 40369, \"\\u0120hurricanes\": 40370, \"\\u0120hallucinations\": 40371, \"ridden\": 40372, \"ISSION\": 40373, \"\\u0120Firefly\": 40374, \"\\u0120attainment\": 40375, \"\\u0120nominate\": 40376, \"\\u0120avocado\": 40377, \"\\u0120Meredith\": 40378, \"\\u0120ts\": 40379, \"\\u0120reverence\": 40380, \"\\u0120euph\": 40381, \"\\u0120crates\": 40382, \"\\u0120TEXT\": 40383, \"\\u0120443\": 40384, \"\\u0120319\": 40385, \"JSON\": 40386, \"iquette\": 40387, \"\\u0120shortstop\": 40388, \"ickey\": 40389, \"\\u0120propelled\": 40390, \"\\u0120api\": 40391, \"\\u0120Thieves\": 40392, \"779\": 40393, \"\\u0120oversaw\": 40394, \"\\u0120coli\": 40395, \"\\u0120Nicola\": 40396, \"\\u0120overcl\": 40397, \"ikawa\": 40398, \"\\u0120Cyr\": 40399, \"\\u0120384\": 40400, \"789\": 40401, \"\\u0120Allows\": 40402, \"1027\": 40403, \"Detroit\": 40404, \"TRY\": 40405, \"setup\": 40406, \"\\u0120Socialism\": 40407, \"Soviet\": 40408, \"susp\": 40409, \"\\u0120APR\": 40410, \"\\u0120Shutdown\": 40411, \"\\u0120aluminium\": 40412, \"zbek\": 40413, \"\\u0120Lover\": 40414, \"GGGGGGGG\": 40415, \"\\u0120democracies\": 40416, \"\\u01201908\": 40417, \"\\u0120Merrill\": 40418, \"\\u0120Francois\": 40419, \"gdala\": 40420, \"\\u0120traffickers\": 40421, \"\\u0120Til\": 40422, \"\\u0120Goat\": 40423, \"\\u0120sped\": 40424, \"\\u0120Reserv\": 40425, \"\\u0120prod\": 40426, \"552\": 40427, \"\\u0120cac\": 40428, \"\\u0120Univ\": 40429, \"\\u0120Schwe\": 40430, \"\\u0120swirling\": 40431, \"\\u0120Wilderness\": 40432, \"\\u0120Eggs\": 40433, \"\\u0120saddened\": 40434, \"\\u0120archaic\": 40435, \"Hyd\": 40436, \"\\u0120excessively\": 40437, \"BRE\": 40438, \"\\u0120aerospace\": 40439, \"\\u0120Voices\": 40440, \"Craig\": 40441, \"\\u0120ignited\": 40442, \"Initially\": 40443, \"\\u0120McA\": 40444, \"\\u0120handset\": 40445, \"\\u0120reforming\": 40446, \"\\u0120frustrations\": 40447, \"\\u0120Deadpool\": 40448, \"\\u0120Belichick\": 40449, \"ractor\": 40450, \"\\u0120Ragnarok\": 40451, \"\\u0120Drupal\": 40452, \"\\u0120Approximately\": 40453, \"1920\": 40454, \"\\u0120Hubble\": 40455, \"armor\": 40456, \"\\u0120Saras\": 40457, \"\\u0120Jonas\": 40458, \"\\u0120nostalgic\": 40459, \"\\u0120feasibility\": 40460, \"Saharan\": 40461, \"\\u0120orbiting\": 40462, \"\\u0120970\": 40463, \"Ru\": 40464, \"\\u0120shin\": 40465, \"\\u0120Investigators\": 40466, \"\\u0120inconsistencies\": 40467, \"\\u0120PAN\": 40468, \"BG\": 40469, \"\\u0120grazing\": 40470, \"\\u0120detectors\": 40471, \"\\u0120Startup\": 40472, \"\\u0120Funny\": 40473, \"\\u0120Naomi\": 40474, \"Considering\": 40475, \"\\u0120hog\": 40476, \"utf\": 40477, \"cemic\": 40478, \"\\u0120fortified\": 40479, \"\\u0120Functions\": 40480, \"\\u0120codec\": 40481, \"nutrition\": 40482, \"Hat\": 40483, \"\\\"!\": 40484, \"microsoft\": 40485, \"558\": 40486, \"\\u0120Thin\": 40487, \"\\u0120ACE\": 40488, \"Alias\": 40489, \"\\u0120OPS\": 40490, \"papers\": 40491, \"PK\": 40492, \"\\u00e3\\u0122\\u0130\": 40493, \"\\u0120improbable\": 40494, \"Northern\": 40495, \"equal\": 40496, \"\\u0120lookout\": 40497, \"\\u0120tyres\": 40498, \"\\u0120Modified\": 40499, \"\\u0120Kop\": 40500, \"Absolutely\": 40501, \"\\u0120buildup\": 40502, \"silver\": 40503, \"\\u0120audi\": 40504, \"\\u0120grotesque\": 40505, \"\\u0120Saber\": 40506, \"\\u0120Presbyter\": 40507, \"ONY\": 40508, \"\\u0120glaciers\": 40509, \"\\u0120Shoals\": 40510, \"\\u0120Kass\": 40511, \"\\u0120HRC\": 40512, \"\\u0120Nicol\": 40513, \"\\u0120Lunch\": 40514, \"\\u0120Foss\": 40515, \"\\u00e2\\u0138\\u0134\": 40516, \"ADRA\": 40517, \"\\u0120OnePlus\": 40518, \"oing\": 40519, \"grounds\": 40520, \"\\u0120incidental\": 40521, \"\\u0120datasets\": 40522, \"689\": 40523, \"\\u0120Clarkson\": 40524, \"\\u0120assembling\": 40525, \"\\u0120Corrections\": 40526, \"\\u0120drinkers\": 40527, \"\\u0120qualifiers\": 40528, \"\\u0120leash\": 40529, \"\\u0120unfounded\": 40530, \"\\u0120Hundred\": 40531, \"\\u0120kickoff\": 40532, \"Ti\": 40533, \"\\u0120reconcil\": 40534, \"\\u0120Grants\": 40535, \"\\u0120Compliance\": 40536, \"\\u0120Dexterity\": 40537, \"\\u01201906\": 40538, \"warn\": 40539, \"Dallas\": 40540, \"Maximum\": 40541, \"nard\": 40542, \"avia\": 40543, \"beaut\": 40544, \"ensitivity\": 40545, \"trace\": 40546, \"\\u0120pioneers\": 40547, \"\\u0120Fract\": 40548, \"\\u00e3\\u0122\\u0131\": 40549, \"\\u0120precept\": 40550, \"\\u0120glossy\": 40551, \"\\u0120IEEE\": 40552, \"Across\": 40553, \"\\u0120680\": 40554, \"Sleep\": 40555, \"cheon\": 40556, \"\\u0120satirical\": 40557, \"\\u0120Minotaur\": 40558, \"\\u0120Claude\": 40559, \"\\u0120r\\u00c3\\u00a9\": 40560, \"apego\": 40561, \"\\u0120carrot\": 40562, \"\\u0120Semin\": 40563, \"inoa\": 40564, \"\\u0120zo\": 40565, \"Independent\": 40566, \"\\u0120diagnoses\": 40567, \"\\u0120Cue\": 40568, \"MAR\": 40569, \"\\u0120rendition\": 40570, \"\\u0120Kik\": 40571, \"\\u0120pathology\": 40572, \"\\u0120selects\": 40573, \"LinkedIn\": 40574, \"\\u0120assay\": 40575, \"\\u0120Dres\": 40576, \"\\u0120textual\": 40577, \"posted\": 40578, \"ITAL\": 40579, \"\\u0120Maul\": 40580, \"Neal\": 40581, \"\\u0120interconnected\": 40582, \"\\u0120erratic\": 40583, \"\\u0120Virus\": 40584, \"\\u0120530\": 40585, \"\\u0120environmentalists\": 40586, \"\\u0120Phelps\": 40587, \"\\u0120engagements\": 40588, \"\\u0120INST\": 40589, \"\\u0120economical\": 40590, \"noxious\": 40591, \"\\u0120gearing\": 40592, \"izzy\": 40593, \"\\u0120favorably\": 40594, \"\\u0120McGill\": 40595, \"Term\": 40596, \"\\u0120hanged\": 40597, \"\\u0120ballpark\": 40598, \"\\u0120Reyes\": 40599, \"\\u0120beware\": 40600, \"\\u0120Psal\": 40601, \"\\u0120Massacre\": 40602, \"qi\": 40603, \"\\u0120inaccessible\": 40604, \"aclysm\": 40605, \"\\u0120fray\": 40606, \"illac\": 40607, \"\\u0120bitterly\": 40608, \"\\u0120Certification\": 40609, \"Michigan\": 40610, \"\\u0120irrespective\": 40611, \"alore\": 40612, \"Empty\": 40613, \"\\u0120endorsements\": 40614, \"\\u0120undet\": 40615, \"fg\": 40616, \"equipped\": 40617, \"\\u0120merciless\": 40618, \"\\u0120Cust\": 40619, \"\\u0120immature\": 40620, \"\\u0120voucher\": 40621, \"\\u0120Blackwell\": 40622, \"\\u00d1\\u0131\": 40623, \"hawk\": 40624, \"disciplinary\": 40625, \"ilee\": 40626, \"\\u0120Makoto\": 40627, \"\\u0120Dude\": 40628, \"\\u00e3\\u0125\\u0129\\u00e3\\u0124\\u00a3\": 40629, \"Years\": 40630, \"\\u0120inver\": 40631, \"\\u0120shaman\": 40632, \"\\u0120Yong\": 40633, \"ipel\": 40634, \"ellen\": 40635, \"\\u0120Cathy\": 40636, \"brids\": 40637, \"\\u0120sarc\": 40638, \"651\": 40639, \"Near\": 40640, \"\\u0120groundwork\": 40641, \"\\u0120amaz\": 40642, \"\\u0120415\": 40643, \"\\u0120Huntington\": 40644, \"hews\": 40645, \"\\u0120Bung\": 40646, \"\\u0120arbitrarily\": 40647, \"\\u0120Wit\": 40648, \"\\u0120Alberto\": 40649, \"\\u0120disqualified\": 40650, \"bestos\": 40651, \"461\": 40652, \"\\u0120pc\": 40653, \"\\u0120284\": 40654, \"robat\": 40655, \"Robin\": 40656, \"\\u0120hugs\": 40657, \"\\u0120Transition\": 40658, \"\\u0120Occasionally\": 40659, \"\\u0120326\": 40660, \"\\u0120Whilst\": 40661, \"\\u0120Ley\": 40662, \"\\u0120spaceship\": 40663, \"csv\": 40664, \"\\u0120unsuccessfully\": 40665, \"\\u0120Au\": 40666, \"leck\": 40667, \"\\u0120Winged\": 40668, \"\\u0120Grizzlies\": 40669, \".\\u00ef\\u00bf\\u00bd\": 40670, \"\\u0120nearer\": 40671, \"\\u0120Sorceress\": 40672, \"\\u0120Indigo\": 40673, \"Else\": 40674, \"840\": 40675, \"letes\": 40676, \"Coach\": 40677, \"\\u0120upbringing\": 40678, \"\\u0120Kes\": 40679, \"\\u0120separatist\": 40680, \"\\u0120racists\": 40681, \"\\u0120chained\": 40682, \"\\u0120abstinence\": 40683, \"learning\": 40684, \"\\u0120reinstated\": 40685, \"\\u0120symmetry\": 40686, \"\\u0120reminders\": 40687, \"\\u0120Chevy\": 40688, \"\\u0120mont\": 40689, \"\\u0120exemplary\": 40690, \"\\u0120TOR\": 40691, \"ZX\": 40692, \"\\u0120qualitative\": 40693, \"\\u0120Stamp\": 40694, \"\\u0120Savannah\": 40695, \"\\u0120Rossi\": 40696, \"\\u0120paed\": 40697, \"\\u0120dispensaries\": 40698, \"\\u0120Walls\": 40699, \"\\u0120Chronic\": 40700, \"\\u0120complimentary\": 40701, \"\\u0120Beirut\": 40702, \"\\u0120+---\": 40703, \"igslist\": 40704, \"\\u0120cryptographic\": 40705, \"masters\": 40706, \"\\u0120Capitals\": 40707, \"\\u0120maximal\": 40708, \"\\u0120entropy\": 40709, \"Points\": 40710, \"\\u0120combatants\": 40711, \"lip\": 40712, \"\\u0120Glob\": 40713, \"\\u0120BMC\": 40714, \"phase\": 40715, \"thank\": 40716, \"HTTP\": 40717, \"\\u0120commuter\": 40718, \"\\u0120\\\\(\\\\\": 40719, \"../\": 40720, \"\\u0120Regener\": 40721, \"\\u0120DOI\": 40722, \"\\u0120Activision\": 40723, \"\\u0120slit\": 40724, \"osal\": 40725, \"REM\": 40726, \"\\u0120chants\": 40727, \"Yu\": 40728, \"Keys\": 40729, \"Brexit\": 40730, \"\\u0120Forced\": 40731, \"Arizona\": 40732, \"\\u0120squadron\": 40733, \"ISO\": 40734, \"\\u0120Malone\": 40735, \"\\u0120338\": 40736, \"\\u0120contrasting\": 40737, \"\\u0120tidal\": 40738, \"\\u0120libel\": 40739, \"\\u0120implanted\": 40740, \"\\u0120uproar\": 40741, \"\\u0120Cater\": 40742, \"\\u0120propositions\": 40743, \"Manchester\": 40744, \"\\u0120Euros\": 40745, \"itamin\": 40746, \"Gil\": 40747, \"\\u0120Elven\": 40748, \"\\u0120Seek\": 40749, \"\\u0120Bai\": 40750, \"\\u0120redevelopment\": 40751, \"\\u0120Towns\": 40752, \"\\u0120Lub\": 40753, \"!\\\",\": 40754, \"alon\": 40755, \"Krist\": 40756, \"\\u0120measurable\": 40757, \"\\u0120imaginable\": 40758, \"\\u0120apostles\": 40759, \"YN\": 40760, \"760\": 40761, \"\\u0120steroid\": 40762, \"\\u0120specificity\": 40763, \"\\u0120Located\": 40764, \"\\u0120Becker\": 40765, \"\\u0120Edu\": 40766, \"\\u0120Dietary\": 40767, \"utsch\": 40768, \"\\u0120Marilyn\": 40769, \"\\u0120blister\": 40770, \"\\u0120MEP\": 40771, \"\\u0120Koz\": 40772, \"\\u0120CMS\": 40773, \"yahoo\": 40774, \"\\u0120Carney\": 40775, \"\\u0120boasting\": 40776, \"\\u0120Caleb\": 40777, \"Byte\": 40778, \"reads\": 40779, \"aden\": 40780, \"Problem\": 40781, \"\\u0120Woodward\": 40782, \"Swe\": 40783, \"Sup\": 40784, \"\\u0120KGB\": 40785, \"Setup\": 40786, \"\\u0120tacit\": 40787, \"\\u0120retribution\": 40788, \"\\u0120dues\": 40789, \"\\u0120M\\u00c3\\u00bc\": 40790, \".?\": 40791, \"\\u00e4\\u00b8\\u0143\": 40792, \"pots\": 40793, \"\\u0120cameo\": 40794, \"\\u0120PAL\": 40795, \"education\": 40796, \"Amy\": 40797, \"likely\": 40798, \"gling\": 40799, \"\\u0120constitutionally\": 40800, \"\\u0120Hamm\": 40801, \"\\u0120Speak\": 40802, \"\\u0120widgets\": 40803, \"brate\": 40804, \"\\u0120crappy\": 40805, \"\\u0120Iter\": 40806, \"\\u0120anticipating\": 40807, \"\\u0120Bout\": 40808, \"Pixel\": 40809, \"\\u0120Yep\": 40810, \"\\u0120Laurie\": 40811, \"\\u0120hut\": 40812, \"\\u0120bulletin\": 40813, \"\\u0120Salvation\": 40814, \"\\u0120chats\": 40815, \"earable\": 40816, \"Honestly\": 40817, \"ALTH\": 40818, \"onsequ\": 40819, \"cult\": 40820, \"iscovery\": 40821, \"ovych\": 40822, \"\\u0120selves\": 40823, \"\\u0120Satoshi\": 40824, \"Sounds\": 40825, \"\\u0120convergence\": 40826, \"\\u0120Rosenberg\": 40827, \"1974\": 40828, \"\\u0120nasal\": 40829, \"\\u0120fullest\": 40830, \"\\u0120ferocious\": 40831, \"xus\": 40832, \"iste\": 40833, \"AMS\": 40834, \"\\u0120lobbied\": 40835, \"\\u0120soothing\": 40836, \"\\u0120Gunn\": 40837, \"today\": 40838, \"024\": 40839, \"\\u0120inspirational\": 40840, \"\\u0120NBN\": 40841, \"pb\": 40842, \"gewater\": 40843, \"orah\": 40844, \"allowed\": 40845, \"\\u0120Coliseum\": 40846, \"\\u0120specializing\": 40847, \"\\u0120insanely\": 40848, \"\\u0120Tape\": 40849, \"delay\": 40850, \"\\u0120tarn\": 40851, \"\\u0120Pound\": 40852, \"\\u0120melanch\": 40853, \"\\u0120deployments\": 40854, \"iland\": 40855, \"\\u0120lessen\": 40856, \"\\u0120furry\": 40857, \"\\u0120UEFA\": 40858, \"\\u0120bloodshed\": 40859, \"\\u0120Meier\": 40860, \"ithering\": 40861, \"\\u0120heirs\": 40862, \"\\u0120Jaw\": 40863, \"axter\": 40864, \"\\u0120Publications\": 40865, \"\\u0120alters\": 40866, \"intention\": 40867, \"\\u0120Winchester\": 40868, \"determination\": 40869, \"\\u0120Lifetime\": 40870, \"thin\": 40871, \"Monster\": 40872, \"780\": 40873, \"\\u0120approximation\": 40874, \"\\u0120supermarkets\": 40875, \"\\u0120Seconds\": 40876, \"oros\": 40877, \"huge\": 40878, \"\\u0120bribe\": 40879, \"\\u0120LIMITED\": 40880, \"uned\": 40881, \"\\u0120misinterpret\": 40882, \"\\u0120Injury\": 40883, \"\\u0120367\": 40884, \"\\u0120thresholds\": 40885, \"\\u0120Carnival\": 40886, \"\\u0120gastrointestinal\": 40887, \"\\u0120guideline\": 40888, \"\\u0120deceived\": 40889, \"features\": 40890, \"\\u0120purportedly\": 40891, \"\\u0120Ronnie\": 40892, \"\\u0120Newt\": 40893, \"\\u0120spacious\": 40894, \"asus\": 40895, \"\\u0120superheroes\": 40896, \"\\u0120Cynthia\": 40897, \"legged\": 40898, \"kamp\": 40899, \"chio\": 40900, \"\\u0120thumbnail\": 40901, \"\\u0120Shirley\": 40902, \"illation\": 40903, \"\\u0120sheds\": 40904, \"\\u0120Zy\": 40905, \"EPA\": 40906, \"\\u0120dams\": 40907, \"\\u0120yawn\": 40908, \"nah\": 40909, \"\\u0120Peggy\": 40910, \"\\u0120Erie\": 40911, \"\\u0120Juventus\": 40912, \"\\u0120Fountain\": 40913, \"rx\": 40914, \"donald\": 40915, \"album\": 40916, \"\\u0120Comprehensive\": 40917, \"\\u0120caching\": 40918, \"\\u0120Uz\": 40919, \"ulnerability\": 40920, \"\\u0120Principle\": 40921, \"\\u0120Jian\": 40922, \"ingers\": 40923, \"casts\": 40924, \"\\u0120Osiris\": 40925, \"chart\": 40926, \"tile\": 40927, \"\\u0120Tiffany\": 40928, \"\\u0120Patton\": 40929, \"\\u0120Whip\": 40930, \"\\u0120oversized\": 40931, \"Je\": 40932, \"\\u0120Cinderella\": 40933, \"\\u0120Borders\": 40934, \"\\u0120Daesh\": 40935, \"Mah\": 40936, \"\\u0120dogma\": 40937, \"\\u0120communists\": 40938, \"vu\": 40939, \"Council\": 40940, \"\\u0120freshwater\": 40941, \"\\u0120wounding\": 40942, \"\\u0120debacle\": 40943, \"\\u0120youngster\": 40944, \"\\u0120threaded\": 40945, \"\\u0120Bots\": 40946, \"\\u0120Savings\": 40947, \"\\u00e3\\u0123\\u0124\": 40948, \"oling\": 40949, \"oho\": 40950, \"\\u0120illumination\": 40951, \"MRI\": 40952, \"\\u0120loosen\": 40953, \"trump\": 40954, \"agency\": 40955, \"urion\": 40956, \"\\u0120momentarily\": 40957, \"\\u0120Chun\": 40958, \"\\u0120Budapest\": 40959, \"\\u0120Alley\": 40960, \"Disk\": 40961, \"\\u0120astonished\": 40962, \"\\u0120Conquer\": 40963, \"\\u0120Accounting\": 40964, \"having\": 40965, \"\\u0120Wein\": 40966, \"\\u0120Alright\": 40967, \"\\u0120revolver\": 40968, \"\\u0120delusion\": 40969, \"\\u0120relics\": 40970, \"\\u0120adherent\": 40971, \"quant\": 40972, \"\\u0120handmade\": 40973, \"orio\": 40974, \"\\u0120combating\": 40975, \"coded\": 40976, \"\\u0120quadru\": 40977, \"reth\": 40978, \"Nik\": 40979, \"\\u0120Tribal\": 40980, \"\\u0120Mysterious\": 40981, \"\\u0120inhal\": 40982, \"\\u0120Winning\": 40983, \"\\u0120Classification\": 40984, \"changed\": 40985, \"\\u0120unab\": 40986, \"\\u0120scorn\": 40987, \"icipated\": 40988, \"wl\": 40989, \"onductor\": 40990, \"\\u0120reinforcing\": 40991, \"\\u0120Childhood\": 40992, \"anova\": 40993, \"\\u0120adventurer\": 40994, \"\\u0120doctoral\": 40995, \"\\u0120Strategies\": 40996, \"\\u0120engulfed\": 40997, \"\\u0120Encounter\": 40998, \"\\u0120lashes\": 40999, \"Critical\": 41000, \"ricular\": 41001, \"\\u0120UTF\": 41002, \"ociation\": 41003, \"checking\": 41004, \"\\u0120Consulting\": 41005, \"Runtime\": 41006, \"period\": 41007, \"\\u0120Asgard\": 41008, \"\\u0120distilled\": 41009, \"\\u0120Pasadena\": 41010, \"\\u0120Dying\": 41011, \"\\u0120COUNTY\": 41012, \"\\u0120granite\": 41013, \"\\u0120smack\": 41014, \"\\u0120parachute\": 41015, \"\\u0120SUR\": 41016, \"Virginia\": 41017, \"\\u0120Furious\": 41018, \"787\": 41019, \"\\u0120Okin\": 41020, \"\\u0120camel\": 41021, \"\\u0120Mbps\": 41022, \"1972\": 41023, \"\\u0120Chao\": 41024, \"\\u0120Cyan\": 41025, \"joice\": 41026, \"efer\": 41027, \"\\u0120Wrap\": 41028, \"\\u0120Debate\": 41029, \"Seg\": 41030, \"\\u0120forearm\": 41031, \"\\u0120Ignore\": 41032, \"\\u0120timestamp\": 41033, \"\\u0120probing\": 41034, \"\\u0120Noon\": 41035, \"\\u0120Grail\": 41036, \"fen\": 41037, \"\\u0120dormant\": 41038, \"\\u0120Firstly\": 41039, \"\\u0120Eighth\": 41040, \"\\u0120HUN\": 41041, \"\\u0120Desire\": 41042, \"oras\": 41043, \"Girls\": 41044, \"\\u0120Desmond\": 41045, \"zar\": 41046, \"amines\": 41047, \"OAD\": 41048, \"execute\": 41049, \"\\u0120boobs\": 41050, \"\\u0120ATL\": 41051, \"_(\": 41052, \"Chelsea\": 41053, \"\\u0120masturbation\": 41054, \"\\u0120CoC\": 41055, \"\\u0120destroyer\": 41056, \"\\u0120Chomsky\": 41057, \"\\u0120scatter\": 41058, \"\\u0120Assets\": 41059, \"796\": 41060, \"\\u0120Cargo\": 41061, \"\\u0120receptive\": 41062, \"\\u0120Scope\": 41063, \"\\u0120marketers\": 41064, \"\\u0120launchers\": 41065, \"\\u0120axle\": 41066, \"\\u0120SEA\": 41067, \"seq\": 41068, \"\\u0120Moff\": 41069, \"finding\": 41070, \"\\u0120Gibbs\": 41071, \"Georgia\": 41072, \"extremely\": 41073, \"NJ\": 41074, \"\\u0120laborers\": 41075, \"stals\": 41076, \"\\u0120mediation\": 41077, \"\\u0120Hedge\": 41078, \"atown\": 41079, \"\\u0120iod\": 41080, \"despite\": 41081, \"vill\": 41082, \"Jane\": 41083, \"existence\": 41084, \"\\u0120coincided\": 41085, \"\\u0120Utilities\": 41086, \"\\u0120Cheap\": 41087, \"\\u0120logistical\": 41088, \"\\u0120culmination\": 41089, \"\\u0120Nicotine\": 41090, \"pak\": 41091, \"Folder\": 41092, \"\\u0120rodents\": 41093, \"stuff\": 41094, \"\\u0120lawfully\": 41095, \"\\u0120reperto\": 41096, \"ioch\": 41097, \"jj\": 41098, \"Dialogue\": 41099, \"HHHH\": 41100, \"liction\": 41101, \"Looks\": 41102, \"\\u0120297\": 41103, \"\\u0120turrets\": 41104, \"\\u0120Abandon\": 41105, \"\\u0120incess\": 41106, \"\\u0120Trafford\": 41107, \"\\u0120curled\": 41108, \"\\u0120preferring\": 41109, \"\\u0120privatization\": 41110, \"\\u0120irresist\": 41111, \"\\u0120Panda\": 41112, \"\\u0120Shake\": 41113, \"\\u0120McGr\": 41114, \"\\u00e3\\u0125\\u0126\": 41115, \"unders\": 41116, \"\\u0120discriminated\": 41117, \"\\u0120bartender\": 41118, \"ILE\": 41119, \"Atlantic\": 41120, \"\\u0120propensity\": 41121, \"\\u0120Wiz\": 41122, \"\\u0120Gim\": 41123, \"conference\": 41124, \"\\u0120reinforces\": 41125, \"Gh\": 41126, \"wagon\": 41127, \"\\u0120eerie\": 41128, \"Fal\": 41129, \"\\u0120hugged\": 41130, \"racist\": 41131, \"RIC\": 41132, \"Fu\": 41133, \"\\u0120filler\": 41134, \"\\u0120Stub\": 41135, \"\\u0120engraved\": 41136, \"\\u0120Wrestle\": 41137, \"\\u0120imaginative\": 41138, \"\\u0120Peer\": 41139, \"\\u0120Factors\": 41140, \"anus\": 41141, \"\\u0120Dracula\": 41142, \"monitor\": 41143, \"\\u0120routers\": 41144, \"ibia\": 41145, \"\\u0120Boolean\": 41146, \"endale\": 41147, \"\\u0120Slaughter\": 41148, \"\\u0120Shack\": 41149, \"RFC\": 41150, \"\\u0120Spielberg\": 41151, \"Sax\": 41152, \"\\u0120PHOTO\": 41153, \"\\u0120Clover\": 41154, \"\\u0120Rae\": 41155, \"Depending\": 41156, \"\\u0120Memor\": 41157, \"aram\": 41158, \"\\u0120pierced\": 41159, \"\\u0120curtains\": 41160, \"vale\": 41161, \"\\u0120Inquisition\": 41162, \"\\u0120Poke\": 41163, \"\\u0120forecasting\": 41164, \"\\u0120complains\": 41165, \"Sense\": 41166, \"\\u0120Hermes\": 41167, \"iscovered\": 41168, \"\\u0120bible\": 41169, \"\\u0120Morph\": 41170, \"\\u0120germ\": 41171, \"785\": 41172, \"DON\": 41173, \"\\u0120congen\": 41174, \"\\u0120crane\": 41175, \"\\u0120DPR\": 41176, \"\\u0120respectfully\": 41177, \"Room\": 41178, \"\\u0120Naw\": 41179, \"\\u0120Dalai\": 41180, \"reason\": 41181, \"\\u0120Angus\": 41182, \"Education\": 41183, \"\\u0120Titanic\": 41184, \"\\u00cb\\u013e\": 41185, \"\\u0120oval\": 41186, \"united\": 41187, \"\\u0120thirds\": 41188, \"\\u0120moistur\": 41189, \"\\u0120CPC\": 41190, \"Miami\": 41191, \"\\u0120tentacles\": 41192, \"\\u0120Polaris\": 41193, \"exc\": 41194, \"exclusive\": 41195, \"\\u0120Prairie\": 41196, \"\\u0120colossal\": 41197, \"\\u0120Blend\": 41198, \"surprisingly\": 41199, \"\\u00c3\\u0143s\": 41200, \"\\u0120indoctr\": 41201, \"\\u0120basal\": 41202, \"\\u0120MPEG\": 41203, \"undo\": 41204, \"Split\": 41205, \"Development\": 41206, \"\\u0120lantern\": 41207, \"1971\": 41208, \"\\u0120provocation\": 41209, \"\\u0120anguish\": 41210, \"\\u0120Bind\": 41211, \"\\u0120Leia\": 41212, \"ducers\": 41213, \"ippy\": 41214, \"conservancy\": 41215, \"\\u0120initialize\": 41216, \"\\u0120Twice\": 41217, \"\\u0120Suk\": 41218, \"\\u0120predic\": 41219, \"\\u0120diploma\": 41220, \"\\u0120sociop\": 41221, \"Ingredients\": 41222, \"\\u0120hammered\": 41223, \"\\u0120Irma\": 41224, \"Qaida\": 41225, \"\\u0120glimps\": 41226, \"\\u0120Bian\": 41227, \"\\u0120stacking\": 41228, \"\\u0120fend\": 41229, \"govtrack\": 41230, \"\\u0120unn\": 41231, \"democratic\": 41232, \"igree\": 41233, \"\\u0120580\": 41234, \"\\u0120294\": 41235, \"\\u0120strawberry\": 41236, \"IDER\": 41237, \"\\u0120cherished\": 41238, \"\\u0120Hots\": 41239, \"\\u0120inferred\": 41240, \"\\u0120808\": 41241, \"\\u0120Socrates\": 41242, \"Oregon\": 41243, \"\\u0120Roses\": 41244, \"\\u0120FOIA\": 41245, \"\\u0120insensitive\": 41246, \"\\u0120408\": 41247, \"Recommend\": 41248, \"\\u0120Shine\": 41249, \"\\u0120painstaking\": 41250, \"UGE\": 41251, \"\\u0120Heller\": 41252, \"\\u0120Enterprises\": 41253, \"IOR\": 41254, \"adj\": 41255, \"NRS\": 41256, \"LG\": 41257, \"\\u0120alienated\": 41258, \"\\u0120acknowledgement\": 41259, \"\\u0120AUD\": 41260, \"\\u0120Reneg\": 41261, \"\\u0120vouchers\": 41262, \"\\u0120960\": 41263, \"\\u0120moot\": 41264, \"\\u0120Dimensions\": 41265, \"\\u0120cabbage\": 41266, \"Bright\": 41267, \"gat\": 41268, \"\\u0120Klu\": 41269, \"\\u0120latent\": 41270, \"\\u0120ze\": 41271, \"\\u0120Meng\": 41272, \"\\u0120disperse\": 41273, \"\\u0120pandemonium\": 41274, \"HQ\": 41275, \"\\u0120virtuous\": 41276, \"\\u0120Locations\": 41277, \"eeper\": 41278, \"provided\": 41279, \"\\u0120seams\": 41280, \"\\u0120WT\": 41281, \"izo\": 41282, \"PROV\": 41283, \"\\u0120titanium\": 41284, \"\\u0120recollection\": 41285, \"\\u0120cran\": 41286, \"\\u0120780\": 41287, \"\\u0120NF\": 41288, \"491\": 41289, \"642\": 41290, \"packing\": 41291, \"598\": 41292, \"texture\": 41293, \"Spider\": 41294, \"freedom\": 41295, \"cipled\": 41296, \"\\u0120TAMADRA\": 41297, \"\\u00e2\\u013b\\u00a6\": 41298, \"authent\": 41299, \"\\u0120WANT\": 41300, \"rified\": 41301, \"\\u0120rites\": 41302, \"\\u0120uterus\": 41303, \"kiss\": 41304, \"\\u0120\\u00e2\\u012b\\u00a4\": 41305, \"\\u0120skillet\": 41306, \"\\u0120disenfranch\": 41307, \"\\u0120Gaal\": 41308, \"Compan\": 41309, \"\\u0120ageing\": 41310, \"guide\": 41311, \"Balt\": 41312, \"\\u0120iterator\": 41313, \"\\u0120discretionary\": 41314, \"tips\": 41315, \"\\u0120primates\": 41316, \"\\u0120Technique\": 41317, \"\\u0120Payments\": 41318, \"azel\": 41319, \"\\u0120ROCK\": 41320, \"stantial\": 41321, \"060\": 41322, \"\\u0120dmg\": 41323, \"\\u0120Jackets\": 41324, \"\\u0120Playoff\": 41325, \"\\u0120nursery\": 41326, \"\\u0120Symb\": 41327, \"arton\": 41328, \"\\u0120annexation\": 41329, \"Colorado\": 41330, \"\\u0120coils\": 41331, \"\\u0120Shoes\": 41332, \"\\u00e2\\u0126\\u00a2:\": 41333, \"\\u0120Roz\": 41334, \"COMPLE\": 41335, \"\\u0120Everest\": 41336, \"\\u0120Triumph\": 41337, \"Joy\": 41338, \"Grid\": 41339, \"\\u00e0\\u00bc\": 41340, \"processor\": 41341, \"\\u0120Prosper\": 41342, \"\\u0120Severus\": 41343, \"\\u0120Selected\": 41344, \"rg\": 41345, \"\\u0120Tayyip\": 41346, \"Stra\": 41347, \"\\u0120skiing\": 41348, \"\\u0120?)\": 41349, \"\\u0120peg\": 41350, \"Tesla\": 41351, \"\\u0120timeframe\": 41352, \"\\u0120mastermind\": 41353, \"\\u0120NB\": 41354, \"scientific\": 41355, \"\\u0120Shit\": 41356, \"generic\": 41357, \"INTER\": 41358, \"NUM\": 41359, \"\\u0120stroll\": 41360, \"\\u0120Enix\": 41361, \"\\u0120MMR\": 41362, \"\\u0120EMS\": 41363, \"movie\": 41364, \"\\u0124\\u00aa\": 41365, \"\\u0120minimizing\": 41366, \"iddling\": 41367, \"\\u0120illegitimate\": 41368, \"\\u0120prototyp\": 41369, \"\\u0120prematurely\": 41370, \"\\u0120manuals\": 41371, \"obbies\": 41372, \"\\u0120Cassidy\": 41373, \"DEC\": 41374, \"desktop\": 41375, \"\\u0120aeros\": 41376, \"\\u0120screenings\": 41377, \"\\u0120debilitating\": 41378, \"\\u0120Grind\": 41379, \"natureconservancy\": 41380, \"\\u0120fades\": 41381, \"termination\": 41382, \"assetsadobe\": 41383, \"Factor\": 41384, \"\\u0120definitively\": 41385, \"Pok\\u00c3\\u00a9\": 41386, \"apult\": 41387, \"\\u0120Lafayette\": 41388, \"Corn\": 41389, \"\\u0120Coral\": 41390, \"\\u0120stagnant\": 41391, \"Tue\": 41392, \"\\u0120dissatisfaction\": 41393, \"Gender\": 41394, \"\\u0120kidneys\": 41395, \"\\u0120Gow\": 41396, \"\\u0120Defeat\": 41397, \"\\u0120Ashton\": 41398, \"\\u0120cartels\": 41399, \"\\u0120foreclosure\": 41400, \"\\u0120Explore\": 41401, \"strength\": 41402, \"otin\": 41403, \"\\u0120veterinarian\": 41404, \"\\u0120fumble\": 41405, \"\\u0120parap\": 41406, \"\\u0120Strait\": 41407, \"rils\": 41408, \"\\u0120prick\": 41409, \"\\u0120Bermuda\": 41410, \"\\u0120Ammunition\": 41411, \"skinned\": 41412, \"\\u0120abound\": 41413, \"\\u0120Braz\": 41414, \"\\u0120sharper\": 41415, \"\\u0120Ascension\": 41416, \"\\u0120978\": 41417, \"\\u0120previews\": 41418, \"\\u0120communion\": 41419, \"\\u0120XY\": 41420, \"\\u0120phony\": 41421, \"\\u0120newcomer\": 41422, \"\\u0120332\": 41423, \".\\\",\\\"\": 41424, \"\\u0120redistribution\": 41425, \"Protect\": 41426, \"\\u0120Sof\": 41427, \"Kal\": 41428, \"\\u0120lipstick\": 41429, \"worst\": 41430, \"\\u0120tangled\": 41431, \"\\u0120retrospective\": 41432, \"integer\": 41433, \"\\u0120volunteering\": 41434, \"\\u01201907\": 41435, \"\\u0120--------------------\": 41436, \"ichen\": 41437, \"\\u0120unveiling\": 41438, \"\\u0120senseless\": 41439, \"\\u0120fisheries\": 41440, \"\\\\-\": 41441, \"\\u0120hinges\": 41442, \"\\u0120calculus\": 41443, \"Myth\": 41444, \"\\u0120undefeated\": 41445, \"\\u0120optimizations\": 41446, \"\\u0120depress\": 41447, \"\\u0120billboard\": 41448, \"\\u0120Yad\": 41449, \"\\u0120Pyramid\": 41450, \"Isn\": 41451, \"Ide\": 41452, \"\\u0120legion\": 41453, \"\\u0120Kramer\": 41454, \"entanyl\": 41455, \"\\u0120penetrating\": 41456, \"\\u0120Hawth\": 41457, \"\\u0120PRODUCT\": 41458, \"\\u0120Gerard\": 41459, \"\\u0120Pact\": 41460, \"\\u0120Including\": 41461, \"\\u0120Elias\": 41462, \"\\u0120Elaine\": 41463, \"visual\": 41464, \"\\u0120humming\": 41465, \"\\u0120condesc\": 41466, \"\\u0120Fasc\": 41467, \"\\u00e4\\u00b8\\u012c\": 41468, \"\\u0120egalitarian\": 41469, \"\\u0120devs\": 41470, \"\\u0120Dahl\": 41471, \"Ops\": 41472, \"DH\": 41473, \"\\u0120Bounce\": 41474, \"idated\": 41475, \"aldo\": 41476, \"\\u0120republican\": 41477, \"\\u0120hamb\": 41478, \"\\u0120Sett\": 41479, \"ographies\": 41480, \"CHAPTER\": 41481, \"\\u0120transsexual\": 41482, \"\\u0120skyrocket\": 41483, \"answer\": 41484, \"\\u0120markup\": 41485, \"\\u00d8\\u00aa\": 41486, \"\\u0120heroine\": 41487, \"Compare\": 41488, \"\\u0120Tav\": 41489, \"Beast\": 41490, \"\\u0120successors\": 41491, \"\\u0120na\\u00c3\\u00afve\": 41492, \"\\u0120Buckley\": 41493, \"stress\": 41494, \"meat\": 41495, \"\\u0120downloadable\": 41496, \"\\u0120indexed\": 41497, \"\\u0120scaff\": 41498, \"\\u0120Lump\": 41499, \"\\u0120Homo\": 41500, \"Studio\": 41501, \"Insp\": 41502, \"\\u0120racked\": 41503, \"farious\": 41504, \"\\u0120Petty\": 41505, \"External\": 41506, \"\\u01201909\": 41507, \"Wars\": 41508, \"commit\": 41509, \"puters\": 41510, \"\\u0120unob\": 41511, \"\\u0120Err\": 41512, \"\\u0120EG\": 41513, \"\\u0120Alam\": 41514, \"\\u0120Siberia\": 41515, \"\\u0120Atmospheric\": 41516, \"ISTER\": 41517, \"\\u0120Satanic\": 41518, \"translation\": 41519, \"\\u0120Loud\": 41520, \"traumatic\": 41521, \"lique\": 41522, \"\\u0120resonate\": 41523, \"\\u0120Welch\": 41524, \"\\u0120sparking\": 41525, \"\\u0120TOM\": 41526, \"tone\": 41527, \"\\u0120outl\": 41528, \"\\u0120handcuffed\": 41529, \"\\u0120Serie\": 41530, \"801\": 41531, \"\\u0120landmarks\": 41532, \"\\u0120Reeves\": 41533, \"\\u0120softened\": 41534, \"\\u0120dazzling\": 41535, \"\\u0120Wanted\": 41536, \"months\": 41537, \"Magikarp\": 41538, \"\\u0120untreated\": 41539, \"\\u0120Bedford\": 41540, \"Mi\": 41541, \"\\u0120Dynamo\": 41542, \"Ore\": 41543, \"795\": 41544, \"\\u0120wrongful\": 41545, \"\\u0120lured\": 41546, \"\\u0120cortisol\": 41547, \"\\u0120vex\": 41548, \"drawn\": 41549, \"ilet\": 41550, \"Downloadha\": 41551, \"\\u0120Faction\": 41552, \"\\u0120labyrinth\": 41553, \"\\u0120hijacked\": 41554, \"waters\": 41555, \"erick\": 41556, \"\\u0120superiors\": 41557, \"\\u0120Rowling\": 41558, \"\\u0120Guinness\": 41559, \"\\u0120td\": 41560, \"992\": 41561, \"\\u0120unearthed\": 41562, \"\\u0120centrif\": 41563, \"\\u0120shameless\": 41564, \"Pod\": 41565, \"\\u0120Fib\": 41566, \"\\u0120icing\": 41567, \"\\u0120predictor\": 41568, \"\\u0120292\": 41569, \"forestation\": 41570, \"construct\": 41571, \"Cand\": 41572, \"@#\": 41573, \"\\u0120agitated\": 41574, \"\\u0120repr\": 41575, \"OVA\": 41576, \"\\u0120knitting\": 41577, \"\\u0120Lima\": 41578, \"\\u0120fodder\": 41579, \"684\": 41580, \"\\u0120Persona\": 41581, \"kl\": 41582, \"701\": 41583, \"\\u0120breakup\": 41584, \"\\u00e1\\u00b8\": 41585, \"\\u0120appalled\": 41586, \"\\u0120antidepressants\": 41587, \"\\u0120Sussex\": 41588, \"Harris\": 41589, \"\\u0120Thermal\": 41590, \"eeee\": 41591, \"Upload\": 41592, \"\\u0120gulf\": 41593, \"\\u0120doorstep\": 41594, \"\\u0120Shank\": 41595, \"LU\": 41596, \"\\u0120MEN\": 41597, \"\\u0120Pond\": 41598, \"sorry\": 41599, \"\\u0120misfortune\": 41600, \"nance\": 41601, \"\\u0120bona\": 41602, \"Mut\": 41603, \"\\u0120degraded\": 41604, \"\\u0120LOG\": 41605, \"\\u0120Ness\": 41606, \"animal\": 41607, \"\\u0120aversion\": 41608, \"undown\": 41609, \"\\u0120supplemented\": 41610, \"\\u0120Cups\": 41611, \"\\u0120504\": 41612, \"\\u0120deprive\": 41613, \"\\u0120Sparkle\": 41614, \"\\u00c5\\u0124\": 41615, \"\\u0120Meditation\": 41616, \"authors\": 41617, \"\\u0120Saban\": 41618, \"\\u0120Naked\": 41619, \"aird\": 41620, \"\\u0120Mandarin\": 41621, \"\\u0120Scriptures\": 41622, \"\\u0120Personnel\": 41623, \"\\u0120Maharashtra\": 41624, \"\\u01201903\": 41625, \"\\u0120Pai\": 41626, \"\\u0120Mirage\": 41627, \"ombat\": 41628, \"Accessory\": 41629, \"\\u0120fragmented\": 41630, \"Together\": 41631, \"\\u0120believable\": 41632, \"\\u0120Gladiator\": 41633, \"aligned\": 41634, \"\\u0120Slug\": 41635, \"MAT\": 41636, \"\\u0120convertible\": 41637, \"\\u0120Bourbon\": 41638, \"ameron\": 41639, \"\\u0120Rehab\": 41640, \"ntax\": 41641, \"\\u0120powdered\": 41642, \"pillar\": 41643, \"\\u0120smoker\": 41644, \"\\u0120Manson\": 41645, \"\\u0120BF\": 41646, \"511\": 41647, \"\\u0120Goodell\": 41648, \"\\u0120DAR\": 41649, \"mud\": 41650, \"gart\": 41651, \"\\u0120obedient\": 41652, \"\\u0120Transmission\": 41653, \"\\u0120Donation\": 41654, \"880\": 41655, \"\\u0120bothering\": 41656, \"Materials\": 41657, \"\\u00e3\\u0124\\u00b1\": 41658, \"destroy\": 41659, \"\\u0120foregoing\": 41660, \"\\u0120anarchism\": 41661, \"\\u0120Kry\": 41662, \"iceps\": 41663, \"\\u0120littered\": 41664, \"\\u0120Schiff\": 41665, \"\\u0120anecdotal\": 41666, \"units\": 41667, \"\\u0120fian\": 41668, \"\\u0120Stim\": 41669, \"\\u0120SOME\": 41670, \"\\u0120Invaders\": 41671, \"\\u0120behavioural\": 41672, \"\\u0120Ventures\": 41673, \"\\u0120sublime\": 41674, \"\\u0120fruition\": 41675, \"\\u0120Penalty\": 41676, \"\\u0120corrosion\": 41677, \"\\u00b6\\u0127\": 41678, \"\\u0120likened\": 41679, \"\\u0120besieged\": 41680, \"weeney\": 41681, \"\\u0120Creep\": 41682, \"\\u0120linemen\": 41683, \"multi\": 41684, \"icably\": 41685, \"udder\": 41686, \"\\u0120vitality\": 41687, \"\\u0120shortfall\": 41688, \"\\u0120Pants\": 41689, \"apist\": 41690, \"Hidden\": 41691, \"\\u0120Drops\": 41692, \"medical\": 41693, \"\\u0120pronunciation\": 41694, \"\\u0120NRL\": 41695, \"\\u0120insightful\": 41696, \"JV\": 41697, \"\\u0120Beard\": 41698, \"\\u0120Chou\": 41699, \"\\u0120charms\": 41700, \"\\u0120bins\": 41701, \"\\u0120ambassadors\": 41702, \"\\u0120Saturdays\": 41703, \"\\u0120inhibitor\": 41704, \"\\u0120Franch\": 41705, \"601\": 41706, \"','\": 41707, \"\\u0120Conor\": 41708, \"artney\": 41709, \"\\u0120Xperia\": 41710, \"grave\": 41711, \"bees\": 41712, \"\\u0120Protestants\": 41713, \"\\u0120soaking\": 41714, \"\\u0120Mandal\": 41715, \"\\u0120phased\": 41716, \"\\u0120660\": 41717, \"\\u0120scams\": 41718, \"\\u0120buzzing\": 41719, \"\\u0120Italians\": 41720, \"\\u0120Lorenzo\": 41721, \"\\u0120JA\": 41722, \"\\u0120hesitated\": 41723, \"\\u0120cliffs\": 41724, \"\\u0120GOT\": 41725, \"inguishable\": 41726, \"\\u0120ko\": 41727, \"\\u0120interruption\": 41728, \"Zip\": 41729, \"Learning\": 41730, \"\\u0120underscores\": 41731, \"\\u0120Blink\": 41732, \"Ku\": 41733, \"579\": 41734, \"\\u0120Autob\": 41735, \"IRE\": 41736, \"\\u0120watering\": 41737, \"\\u0120pastry\": 41738, \"820\": 41739, \"\\u0120visionary\": 41740, \"\\u0120Templar\": 41741, \"awaited\": 41742, \"\\u0120piston\": 41743, \"\\u0120antid\": 41744, \"currently\": 41745, \"\\u0120pard\": 41746, \"\\u0120waging\": 41747, \"\\u0120nobility\": 41748, \"\\u0120Yus\": 41749, \"\\u0120injecting\": 41750, \"faith\": 41751, \"\\u0120PASS\": 41752, \"\\u00e5\\u00ba\": 41753, \"\\u0120retake\": 41754, \"\\u0120PROC\": 41755, \"\\u0120cathedral\": 41756, \"bash\": 41757, \"\\u0120wrestlers\": 41758, \"\\u0120partnering\": 41759, \"\\u0120noses\": 41760, \"\\u0120358\": 41761, \"Transform\": 41762, \"amen\": 41763, \"\\u0120bouts\": 41764, \"\\u0120Ideal\": 41765, \"\\u0120Constantin\": 41766, \"\\u0120sep\": 41767, \"\\u0120Monarch\": 41768, \"atten\": 41769, \"\\u0120Peoples\": 41770, \"modified\": 41771, \"\\u0120moratorium\": 41772, \"\\u0120penchant\": 41773, \"\\u0120offensively\": 41774, \"\\u0120proxies\": 41775, \"okane\": 41776, \"\\u0120Taiwanese\": 41777, \"\\u0120Poo\": 41778, \"\\u0120HOME\": 41779, \"usional\": 41780, \"\\u0120verbs\": 41781, \"\\u0120Oman\": 41782, \"visory\": 41783, \"\\u0120persuasion\": 41784, \"\\u0120multit\": 41785, \"\\u0120scissors\": 41786, \"Gay\": 41787, \"oway\": 41788, \"ophysical\": 41789, \"lus\": 41790, \"gnu\": 41791, \"\\u0120apocalyptic\": 41792, \"\\u0120absurdity\": 41793, \"\\u0120playbook\": 41794, \"\\u0120autobiography\": 41795, \"IUM\": 41796, \"\\u0120sneaking\": 41797, \"\\u0120Simulation\": 41798, \"pps\": 41799, \"ellery\": 41800, \"Planet\": 41801, \"\\u0120rightfully\": 41802, \"\\u0120niece\": 41803, \"\\u0120NEC\": 41804, \"\\u0120IPO\": 41805, \"\\u0120Disclosure\": 41806, \"leanor\": 41807, \"ousy\": 41808, \"STER\": 41809, \"\\u0120282\": 41810, \"Cruz\": 41811, \"Chall\": 41812, \"643\": 41813, \"\\u0120Survive\": 41814, \"\\u0120Fatal\": 41815, \"\\u0120Amid\": 41816, \"apo\": 41817, \"Weapons\": 41818, \"DEN\": 41819, \"770\": 41820, \"\\u0120Greenwald\": 41821, \"\\u0120linen\": 41822, \"alos\": 41823, \"\\u0120pollutants\": 41824, \"\\u0120PCIe\": 41825, \"kat\": 41826, \"\\u0120paw\": 41827, \"\\u0120Kraft\": 41828, \"Chem\": 41829, \"\\u0120Terminator\": 41830, \"\\u0120reincarn\": 41831, \"\\u0120][\": 41832, \"\\u0120Seeds\": 41833, \"\\u0120silhouette\": 41834, \"\\u0120Stores\": 41835, \"\\u0120grooming\": 41836, \"\\u0120Direction\": 41837, \"\\u0120Isabel\": 41838, \"\\u0120Bridges\": 41839, \"\\u00f0\\u0141\\u0133\": 41840, \"EED\": 41841, \"\\u0120Morsi\": 41842, \"\\u0120valves\": 41843, \"\\u0120Ranked\": 41844, \"\\u0120Pharma\": 41845, \"\\u0120Organizations\": 41846, \"\\u0120penetrated\": 41847, \"\\u0120Rodham\": 41848, \"\\u0120Protoss\": 41849, \"\\u0120overest\": 41850, \"\\u0120exasper\": 41851, \"\\u0120TJ\": 41852, \"\\u0120000000\": 41853, \"\\u0120trickle\": 41854, \"\\u0120bourbon\": 41855, \"WHO\": 41856, \"\\u0120wretched\": 41857, \"\\u0120microscopic\": 41858, \"\\u0120checklist\": 41859, \"\\u0120adorned\": 41860, \"Royal\": 41861, \"Administ\": 41862, \"\\u0120Retirement\": 41863, \"\\u0120Highest\": 41864, \"Weather\": 41865, \"ilege\": 41866, \"\\u0120increments\": 41867, \"\\u0120Cosponsors\": 41868, \"\\u0120masse\": 41869, \"\\u0120Sinn\": 41870, \"rf\": 41871, \"\\u0120hordes\": 41872, \"assembly\": 41873, \"754\": 41874, \"\\u0120Natasha\": 41875, \"\\u0120TYPE\": 41876, \"\\u0120GENERAL\": 41877, \"\\u0120arranging\": 41878, \"\\u0120407\": 41879, \"lator\": 41880, \"\\u0120glean\": 41881, \"\\u0120discredited\": 41882, \"\\u0120clinicians\": 41883, \"UNE\": 41884, \"\\u0120achieves\": 41885, \"\\u0120Emerson\": 41886, \"complex\": 41887, \"=[\": 41888, \"\\u0120principally\": 41889, \"\\u0120frail\": 41890, \"picked\": 41891, \"\\u0120thanking\": 41892, \"\\u0120recl\": 41893, \"\\u0120LAST\": 41894, \"\\u0120suppressing\": 41895, \"ilic\": 41896, \"\\u0120antidepressant\": 41897, \"\\u0120Lisbon\": 41898, \"\\u0120thor\": 41899, \"\\u0120spa\": 41900, \"\\u0120kingdoms\": 41901, \"\\u0120Pearce\": 41902, \"emo\": 41903, \"\\u0120plung\": 41904, \"\\u0120divest\": 41905, \"\\u0120********************************\": 41906, \"bis\": 41907, \"ospels\": 41908, \"adr\": 41909, \"Spirit\": 41910, \"halla\": 41911, \"Pink\": 41912, \"endez\": 41913, \"\\u0120resurrected\": 41914, \"escape\": 41915, \"\\u0120Rosenstein\": 41916, \"\\u0120geological\": 41917, \"\\u0120necessities\": 41918, \"\\u0120carniv\": 41919, \"\\u0120Elys\": 41920, \"\\u0120Barney\": 41921, \"\\u0120296\": 41922, \"digy\": 41923, \"STON\": 41924, \"DOWN\": 41925, \"\\u0120milestones\": 41926, \"\\u0120ker\": 41927, \"\\u0120dismantling\": 41928, \"\\u0120reprim\": 41929, \"\\u0120crossings\": 41930, \"1945\": 41931, \"\\u0120patriarchy\": 41932, \"\\u0120blasphemy\": 41933, \"\\u0120359\": 41934, \"metry\": 41935, \"\\u0120Obesity\": 41936, \"\\u0120Differences\": 41937, \"blocking\": 41938, \"\\u00e3\\u0125\\u0137\\u00e3\\u0124\\u00a1\": 41939, \"ichita\": 41940, \"\\u0120Sabha\": 41941, \"phalt\": 41942, \"\\u0120Colo\": 41943, \"uala\": 41944, \"efficients\": 41945, \"\\u0120Medina\": 41946, \"console\": 41947, \"557\": 41948, \"\\u0120Hannibal\": 41949, \"\\u0120Habit\": 41950, \"\\u0120Fever\": 41951, \"\\u0120thence\": 41952, \"\\u0120synagogue\": 41953, \"\\u0120essentials\": 41954, \"\\u0120wink\": 41955, \"\\u0120Trader\": 41956, \"IDA\": 41957, \"\\u0120Spoiler\": 41958, \"\\u0120Icelandic\": 41959, \"\\u0120Hayward\": 41960, \"\\u0120peac\": 41961, \"\\u0120malice\": 41962, \"\\u0120flashback\": 41963, \"\\u0120thw\": 41964, \"\\u0120layoffs\": 41965, \"Liquid\": 41966, \"\\u0120trooper\": 41967, \"\\u0120hinge\": 41968, \"\\u0120Readers\": 41969, \"Phill\": 41970, \"\\u0120Bauer\": 41971, \"Created\": 41972, \"\\u0120audits\": 41973, \"accompan\": 41974, \"\\u0120unsuspecting\": 41975, \"iera\": 41976, \"66666666\": 41977, \"\\u0120broch\": 41978, \"\\u0120apprehended\": 41979, \"\\u0120Malk\": 41980, \"cerning\": 41981, \"\\u0120Codex\": 41982, \"OVER\": 41983, \"Marsh\": 41984, \"\\u0120Deng\": 41985, \"\\u0120Expression\": 41986, \"\\u0120disrespectful\": 41987, \"\\u0120ascending\": 41988, \"tests\": 41989, \"\\u0120Plaintiff\": 41990, \"stery\": 41991, \"\\u0120Alibaba\": 41992, \"dinand\": 41993, \"\\u0120Dempsey\": 41994, \"Applications\": 41995, \"moral\": 41996, \"\\u0120throughput\": 41997, \"\\u0120quarrel\": 41998, \"\\u0120mills\": 41999, \"\\u0120hemor\": 42000, \"\\u0120CASE\": 42001, \"terrorist\": 42002, \"stim\": 42003, \"ifestyle\": 42004, \"rozen\": 42005, \"CEPT\": 42006, \"Ark\": 42007, \"uci\": 42008, \"lectic\": 42009, \"\\u0120irritating\": 42010, \"sheets\": 42011, \"Ay\": 42012, \"\\u0120redeemed\": 42013, \"\\u0120horny\": 42014, \"\\u0120Teach\": 42015, \"\\u0120Sear\": 42016, \"democracy\": 42017, \"465\": 42018, \"\\u0120Restore\": 42019, \"\\u0120standby\": 42020, \"\\u0120Pis\": 42021, \"iffin\": 42022, \"\\u0120sleepy\": 42023, \"\\u0120extrater\": 42024, \"\\u0120compliments\": 42025, \"Frameworks\": 42026, \"\\u0120installs\": 42027, \"\\u0120banging\": 42028, \"surface\": 42029, \"foundland\": 42030, \"\\u0120metaphysical\": 42031, \"\\u0120283\": 42032, \"ouls\": 42033, \"devices\": 42034, \"Args\": 42035, \"\\u0120Sacrifice\": 42036, \"\\u0120McCorm\": 42037, \"eson\": 42038, \"Conservative\": 42039, \"\\u0120Mikhail\": 42040, \"seeing\": 42041, \"isively\": 42042, \"\\u0120Rooms\": 42043, \"\\u0120Generic\": 42044, \"\\u0120enthusiastically\": 42045, \"\\u0120gripped\": 42046, \"\\u0120comedic\": 42047, \"\\u0120Electricity\": 42048, \"\\u0120guerrilla\": 42049, \"\\u0120decoration\": 42050, \"\\u0120Perspective\": 42051, \"\\u0120consultations\": 42052, \"\\u0120unamb\": 42053, \"\\u0120plagiar\": 42054, \"\\u0120magician\": 42055, \"\\u0120erection\": 42056, \"\\u0120Tourism\": 42057, \"oried\": 42058, \"roxy\": 42059, \"1100\": 42060, \"Tam\": 42061, \"\\u012a\\u00e8\": 42062, \"\\u00ce\\u00b3\": 42063, \"\\u00d7\\u00aa\": 42064, \"\\u0120Predators\": 42065, \"Nitrome\": 42066, \"\\u0120telescopes\": 42067, \"projects\": 42068, \"\\u0120unprotected\": 42069, \"\\u0120stocked\": 42070, \"\\u0120Entreprene\": 42071, \"nexpected\": 42072, \"\\u0120wastewater\": 42073, \"Vill\": 42074, \"\\u0120intimately\": 42075, \"\\u0120iCloud\": 42076, \"\\u0120Constable\": 42077, \"\\u0120spoof\": 42078, \"\\u0120nefarious\": 42079, \"\\u0120fins\": 42080, \"\\u0120censor\": 42081, \"\\u0120Modes\": 42082, \"\\u0120Esper\": 42083, \"arbon\": 42084, \"\\u0120intersections\": 42085, \"\\u0120lauded\": 42086, \"\\u0120physi\": 42087, \"\\u0120generously\": 42088, \"\\u0120TheNitrome\": 42089, \"\\u0120TheNitromeFan\": 42090, \"\\u0120arisen\": 42091, \"\\u0120\\u00d9\\u012a\": 42092, \"\\u0120glands\": 42093, \"\\u0120Pavilion\": 42094, \"\\u0120Gupta\": 42095, \"\\u0120uniformly\": 42096, \"\\u0120ramps\": 42097, \"riet\": 42098, \"\\u0120WHEN\": 42099, \"\\u0120Vanessa\": 42100, \"\\u0120routed\": 42101, \"\\u0120limp\": 42102, \"\\u0120CPI\": 42103, \"pter\": 42104, \"intuitive\": 42105, \"\\u0120vaping\": 42106, \"\\u0120experimented\": 42107, \"\\u0120Olympus\": 42108, \"\\u0120Amon\": 42109, \"\\u0120sighting\": 42110, \"\\u0120infiltrate\": 42111, \"\\u0120Gentleman\": 42112, \"\\u0120signings\": 42113, \"\\u0120Meow\": 42114, \"\\u0120Navigation\": 42115, \"checks\": 42116, \"433\": 42117, \"\\u0120elapsed\": 42118, \"\\u0120Bulgarian\": 42119, \"espie\": 42120, \"\\u0120SOM\": 42121, \"during\": 42122, \"\\u0120spills\": 42123, \"anca\": 42124, \"\\u0120Plymouth\": 42125, \"MAL\": 42126, \"\\u0120domestically\": 42127, \"\\u0120Watergate\": 42128, \"\\u0120FAM\": 42129, \"killed\": 42130, \"edited\": 42131, \"\\u0120Yourself\": 42132, \"\\u0120synchronization\": 42133, \"\\u0120Practices\": 42134, \"STEP\": 42135, \"\\u0120genomes\": 42136, \"\\u0120QR\": 42137, \"notice\": 42138, \"\\u0120locating\": 42139, \"zin\": 42140, \"\\u0120329\": 42141, \"alcohol\": 42142, \"\\u0120kitten\": 42143, \"Vo\": 42144, \"\\u0120rinse\": 42145, \"\\u0120grapple\": 42146, \"\\u0120Screw\": 42147, \"\\u0120Dul\": 42148, \"AIR\": 42149, \"\\u0120leasing\": 42150, \"\\u0120Caf\\u00c3\\u00a9\": 42151, \"\\u0120roses\": 42152, \"\\u0120Respect\": 42153, \"\\u0120mislead\": 42154, \"\\u0120perfected\": 42155, \"\\u0120nudity\": 42156, \"\\u0120nonpartisan\": 42157, \"\\u0120Consumption\": 42158, \"Reporting\": 42159, \"\\u0120nuances\": 42160, \"\\u0120deductible\": 42161, \"\\u0120Shots\": 42162, \"\\u0120377\": 42163, \"\\u0120\\u00e6\\u013e\": 42164, \"anooga\": 42165, \"Benef\": 42166, \"\\u0120Bam\": 42167, \"\\u0120Samp\": 42168, \"ifix\": 42169, \"\\u0120galvan\": 42170, \"\\u0120Medals\": 42171, \"radius\": 42172, \"\\u0120nobles\": 42173, \"\\u0120eaves\": 42174, \"igrate\": 42175, \"KT\": 42176, \"\\u0120Harbour\": 42177, \"uers\": 42178, \"\\u0120risked\": 42179, \"req\": 42180, \"\\u0120neurot\": 42181, \"gettable\": 42182, \"aina\": 42183, \"Romney\": 42184, \"\\u0120underpin\": 42185, \"\\u0120loft\": 42186, \"\\u0120Subcommittee\": 42187, \"\\u0120Mongol\": 42188, \"biz\": 42189, \"\\u0120manifests\": 42190, \"assisted\": 42191, \"\\u0120Gaga\": 42192, \"\\u0120synergy\": 42193, \"\\u0120religiously\": 42194, \"\\u0120Pref\": 42195, \"\\u0120Gerry\": 42196, \"TAG\": 42197, \"\\u0120Choi\": 42198, \"466\": 42199, \"behind\": 42200, \"\\u0120Ou\": 42201, \"GoldMagikarp\": 42202, \"\\u0120hemorrh\": 42203, \"River\": 42204, \"\\u0120tendon\": 42205, \"\\u0120injure\": 42206, \"\\u0120Fiona\": 42207, \"\\u0120pag\": 42208, \"\\u0120agitation\": 42209, \"||||\": 42210, \"uran\": 42211, \"\\u0120ESA\": 42212, \"\\u0120esteem\": 42213, \"\\u0120dodging\": 42214, \"\\u0120412\": 42215, \"rss\": 42216, \"\\u0120ceases\": 42217, \"excluding\": 42218, \"\\u0120intakes\": 42219, \"\\u0120inserts\": 42220, \"\\u0120embold\": 42221, \"\\u0120Oral\": 42222, \"upuncture\": 42223, \"411\": 42224, \"\\u0120Unified\": 42225, \"\\u0120Dele\": 42226, \"\\u0120furnace\": 42227, \"\\u0120Coyotes\": 42228, \"\\u0120Brach\": 42229, \"Labor\": 42230, \"\\u0120handshake\": 42231, \"\\u0120bruises\": 42232, \"Grade\": 42233, \"\\u00e9\\u0139\\u013a\": 42234, \"\\u0120Grammy\": 42235, \"ileen\": 42236, \"States\": 42237, \"\\u0120Scandinavian\": 42238, \"\\u0120Kardash\": 42239, \"866\": 42240, \"\\u0120effortlessly\": 42241, \"\\u0120DIRECT\": 42242, \"\\u0120THEN\": 42243, \"\\u0120Mei\": 42244, \"ertation\": 42245, \"1968\": 42246, \"\\u0120groin\": 42247, \"witch\": 42248, \"Requirements\": 42249, \"985\": 42250, \"\\u0120roofs\": 42251, \"\\u0120estates\": 42252, \"\\u0120HF\": 42253, \"\\u0120haha\": 42254, \"\\u0120densely\": 42255, \"\\u0120OCT\": 42256, \"\\u0120plastics\": 42257, \"\\u0120incidentally\": 42258, \"\\u0120Tracks\": 42259, \"\\u0120Taxes\": 42260, \"\\u0120chanted\": 42261, \"\\u0120forceful\": 42262, \"\\u0120Bieber\": 42263, \"\\u0120Kahn\": 42264, \"Kent\": 42265, \"\\u0120Cot\": 42266, \"licts\": 42267, \"Fed\": 42268, \"\\u0120hideous\": 42269, \"\\u0120Verd\": 42270, \"\\u0120Syndicate\": 42271, \"\\u0120Illegal\": 42272, \"Jet\": 42273, \"\\u0120DAV\": 42274, \"reasonable\": 42275, \"crew\": 42276, \"\\u0120fundamentalist\": 42277, \"\\u0120truthful\": 42278, \"\\u0120Jing\": 42279, \"\\u0120lil\": 42280, \"\\u0120downed\": 42281, \"\\u0120enchanted\": 42282, \"\\u0120Policies\": 42283, \"\\u0120McMaster\": 42284, \"\\u0120Hare\": 42285, \"ideshow\": 42286, \"\\u0120params\": 42287, \"encers\": 42288, \"gorithm\": 42289, \"\\u0120allowances\": 42290, \"\\u0120turbulent\": 42291, \"\\u0120complexities\": 42292, \"\\u0120KT\": 42293, \"\\u0120337\": 42294, \"\\u0120Genetic\": 42295, \"FUN\": 42296, \"Doug\": 42297, \"tick\": 42298, \"\\u0120gigs\": 42299, \"umenthal\": 42300, \"\\u0120patriarchal\": 42301, \"\\u0120calc\": 42302, \",...\": 42303, \"\\u0120cout\": 42304, \"\\u0120Guan\": 42305, \"\\u0120pathological\": 42306, \"\\u0120Rivals\": 42307, \"\\u0120underrated\": 42308, \"\\u0120fluorescent\": 42309, \"\\u0120Jiu\": 42310, \"arnaev\": 42311, \"\\u0120Quan\": 42312, \"\\u0120429\": 42313, \"\\u0120\\u00e0\\u00a8\": 42314, \"Mario\": 42315, \"Construct\": 42316, \"\\u0120Citation\": 42317, \"\\u0120Racial\": 42318, \"\\u0120RSA\": 42319, \"\\u0120Fidel\": 42320, \"\\u0120395\": 42321, \"Personally\": 42322, \"Cause\": 42323, \"\\u00c3\\u00bb\": 42324, \"radical\": 42325, \"inen\": 42326, \"\\u0120vehemently\": 42327, \"\\u0120Papa\": 42328, \"\\u0120internship\": 42329, \"\\u0120flakes\": 42330, \"\\u0120Reck\": 42331, \"Luckily\": 42332, \"Bra\": 42333, \"2020\": 42334, \"ravings\": 42335, \"RN\": 42336, \"Wonder\": 42337, \"Seriously\": 42338, \"\\u0120reusable\": 42339, \"\\u0120polluted\": 42340, \"\\u0120Peng\": 42341, \"leigh\": 42342, \"indle\": 42343, \"\\u0120circuitry\": 42344, \"\\u0120Madonna\": 42345, \"\\u0120BART\": 42346, \"Residents\": 42347, \"attribute\": 42348, \"Philadelphia\": 42349, \"Club\": 42350, \"\\u0120planner\": 42351, \"\\u0120frantically\": 42352, \"\\u0120faithfully\": 42353, \"\\u0120Territories\": 42354, \"\\u0120LAT\": 42355, \"\\u0120Andersen\": 42356, \"anu\": 42357, \"\\u0120PARK\": 42358, \"\\u0120Sora\": 42359, \"iage\": 42360, \"\\u0120Playoffs\": 42361, \"\\u0120GCC\": 42362, \"427\": 42363, \"\\u0120abnorm\": 42364, \"\\u0120Lever\": 42365, \"\\u0120disobedience\": 42366, \"Async\": 42367, \"\\u0120Shea\": 42368, \"Vert\": 42369, \"\\u0120skirts\": 42370, \"\\u0120Sawyer\": 42371, \"xp\": 42372, \"\\u0120worsening\": 42373, \"\\u0120scapego\": 42374, \"\\u0120Angle\": 42375, \"othal\": 42376, \"\\u0120trove\": 42377, \"\\u0120Sty\": 42378, \"\\u0120Nguyen\": 42379, \"marine\": 42380, \"ideon\": 42381, \"Depths\": 42382, \"Blog\": 42383, \"\\u0120Illuminati\": 42384, \"\\u0120tracts\": 42385, \"\\u0120organise\": 42386, \"\\u0120ostr\": 42387, \"Fs\": 42388, \"\\u0120leveraging\": 42389, \"\\u0120Daredevil\": 42390, \"asar\": 42391, \"\\u0120lang\": 42392, \"\\u0120extermin\": 42393, \"ursions\": 42394, \"\\u0120Romo\": 42395, \"\\u00e3\\u0124\\u00a4\\u00e3\\u0125\\u012a\": 42396, \"\\u0120contended\": 42397, \"\\u0120encountering\": 42398, \"\\u0120Tablet\": 42399, \"\\u0120Alternate\": 42400, \"skill\": 42401, \"\\u0120sweets\": 42402, \"\\u0120cohesive\": 42403, \"capacity\": 42404, \"\\u0120repud\": 42405, \"\\u0120lizard\": 42406, \"roo\": 42407, \"\\u0120pilgrims\": 42408, \"\\u0120Ruff\": 42409, \"\\u0120Instrument\": 42410, \"\\u0120Logo\": 42411, \"uitous\": 42412, \"EH\": 42413, \"\\u0120salesman\": 42414, \"\\u0120ankles\": 42415, \"Led\": 42416, \"\\u0120Patty\": 42417, \"udos\": 42418, \"Owner\": 42419, \"\\u0120discrepancies\": 42420, \"kj\": 42421, \"MU\": 42422, \"\\u0120unconditional\": 42423, \"DragonMagazine\": 42424, \"iard\": 42425, \"Oak\": 42426, \"\\u0120Conversation\": 42427, \"beer\": 42428, \"\\u0120Osaka\": 42429, \"Delta\": 42430, \"usky\": 42431, \"\\u0120secretion\": 42432, \"\\u0120plaza\": 42433, \"\\u0120ming\": 42434, \"\\u0120depletion\": 42435, \"\\u0120Mous\": 42436, \"\\u0120ITS\": 42437, \"\\u0120Himal\": 42438, \"\\u0120Fleming\": 42439, \"\\u0120cytok\": 42440, \"\\u0120Hick\": 42441, \"\\u0120batters\": 42442, \"\\u0120Intellectual\": 42443, \"675\": 42444, \"\\u00c3\\u00a9r\": 42445, \"ISION\": 42446, \"\\u0120Quentin\": 42447, \"\\u0120Chapters\": 42448, \"ihadi\": 42449, \"\\u0120coaster\": 42450, \"WAYS\": 42451, \"\\u0120Lizard\": 42452, \"\\u0120Yor\": 42453, \"andering\": 42454, \"Skin\": 42455, \"haust\": 42456, \"abby\": 42457, \"\\u0120portraying\": 42458, \"\\u0120wielded\": 42459, \"dash\": 42460, \"\\u0120proponent\": 42461, \"\\u0120ripple\": 42462, \"\\u0120graphene\": 42463, \"\\u0120flyer\": 42464, \"\\u0120recurrent\": 42465, \"\\u0120devils\": 42466, \"\\u0120waterfall\": 42467, \"\\u00e6\\u013a\\u00af\": 42468, \"goo\": 42469, \"TextColor\": 42470, \"\\u0120tampering\": 42471, \"IVES\": 42472, \"TRUMP\": 42473, \"\\u0120Abel\": 42474, \"\\u0120SAL\": 42475, \"\\u0120Hendricks\": 42476, \"\\u0120Lucius\": 42477, \"bots\": 42478, \"\\u01204096\": 42479, \"ISTORY\": 42480, \"Guest\": 42481, \"\\u0120NX\": 42482, \"inant\": 42483, \"Benz\": 42484, \"\\u0120Loaded\": 42485, \"\\u0120Clever\": 42486, \"treatment\": 42487, \"\\u0120tavern\": 42488, \"\\u0120339\": 42489, \"\\u0120TNT\": 42490, \"ificantly\": 42491, \"Temperature\": 42492, \"Fel\": 42493, \"\\u0120underworld\": 42494, \"\\u0120Judges\": 42495, \"\\u0120<+\": 42496, \"\\u0120stump\": 42497, \"\\u0120occupancy\": 42498, \"\\u0120aber\": 42499, \"\\u0120Finder\": 42500, \")\\\",\": 42501, \"\\u0120Nunes\": 42502, \"reset\": 42503, \"inet\": 42504, \"ectomy\": 42505, \"\\u0120wellness\": 42506, \"\\u0120Peb\": 42507, \"quartered\": 42508, \"andan\": 42509, \"\\u0120negatives\": 42510, \"\\u0120Thiel\": 42511, \"\\u0120Clip\": 42512, \"\\u0120LTD\": 42513, \"\\u0120blight\": 42514, \"\\u0120repertoire\": 42515, \"Kyle\": 42516, \"\\u0120quer\": 42517, \"\\u0120Ces\": 42518, \"\\u0120hapl\": 42519, \"989\": 42520, \"\\u0120Thames\": 42521, \"iscopal\": 42522, \"Desk\": 42523, \"ivariate\": 42524, \"\\u0120Excellence\": 42525, \"foundation\": 42526, \"\\u0120\\u00e2\\u0129\": 42527, \"Xi\": 42528, \"\\u0120mysteriously\": 42529, \"estyles\": 42530, \"\\u0120perish\": 42531, \"\\u0120Engels\": 42532, \"\\u0120DEAD\": 42533, \"090\": 42534, \"}}}\": 42535, \"\\u0120Unreal\": 42536, \"\\u0120restless\": 42537, \"IDES\": 42538, \"orthodox\": 42539, \"\\u0120Intermediate\": 42540, \"\\u0120dinners\": 42541, \"\\u0120Trout\": 42542, \"\\u0120Seym\": 42543, \"\\u0120Halls\": 42544, \"ogged\": 42545, \"\\u0120tragedies\": 42546, \"\\u0120didnt\": 42547, \"676\": 42548, \"\\u0120ailments\": 42549, \"\\u0120observable\": 42550, \"\\u0120Vide\": 42551, \"adapt\": 42552, \"\\u0120Dusk\": 42553, \"\\u0120professionalism\": 42554, \"\\u0120Prescott\": 42555, \"\\u0120Indies\": 42556, \"pox\": 42557, \"\\u0120Mehran\": 42558, \"Wide\": 42559, \"\\u0120endemic\": 42560, \"\\u0120Paran\": 42561, \"Bird\": 42562, \"\\u0120pedals\": 42563, \"\\u0120IU\": 42564, \"\\u0120Adamant\": 42565, \"\\u0120Hurt\": 42566, \"\\u0120correlates\": 42567, \"urden\": 42568, \"\\u0120sponsoring\": 42569, \"climate\": 42570, \"\\u0120Universities\": 42571, \"\\u0120Knot\": 42572, \"ennes\": 42573, \"\\u0120Damian\": 42574, \"\\u0120Axel\": 42575, \"Sport\": 42576, \"\\u0120barb\": 42577, \"\\u0120Sno\": 42578, \"shown\": 42579, \"steen\": 42580, \"udence\": 42581, \"\\u0120nonviolent\": 42582, \"\\u0120homophobia\": 42583, \"\\u0120biomass\": 42584, \"\\u0120Detail\": 42585, \"\\u0120srfN\": 42586, \"\\u0120Tune\": 42587, \"accompanied\": 42588, \"IENCE\": 42589, \"Albert\": 42590, \"\\u0120Mongo\": 42591, \"zx\": 42592, \"\\u0120Cerberus\": 42593, \"orbit\": 42594, \"cens\": 42595, \"\\u0120slay\": 42596, \"SHARE\": 42597, \"HY\": 42598, \"\\u0120brawl\": 42599, \"\\u0120Probe\": 42600, \"\\u0120nonexistent\": 42601, \"\\u0120Clarence\": 42602, \"\\u0120Blackburn\": 42603, \"\\u0120portals\": 42604, \"\\u0120Rita\": 42605, \"\\u0120Remain\": 42606, \"\\u0120Levant\": 42607, \"\\u0120tricked\": 42608, \"\\u0120Ferry\": 42609, \"avering\": 42610, \"\\u0120Strawberry\": 42611, \"\\u0120Answers\": 42612, \"\\u0120horrendous\": 42613, \"\\u0120Aman\": 42614, \"Supplement\": 42615, \"\\u0120Toad\": 42616, \"\\u0120peeled\": 42617, \"\\u0120manoeuv\": 42618, \"\\u0120Uzbek\": 42619, \"monds\": 42620, \"\\u0120Hector\": 42621, \"\\u0120402\": 42622, \"pees\": 42623, \"fixes\": 42624, \"\\u0120dj\": 42625, \"\\u0120resumes\": 42626, \"\\u0120accountant\": 42627, \"\\u0120adversity\": 42628, \"\\u0120hampered\": 42629, \"\\u0120Larson\": 42630, \"\\u0120doping\": 42631, \"parts\": 42632, \"Hur\": 42633, \"\\u0120bearded\": 42634, \"\\u0120yr\": 42635, \"\\u0120Plugin\": 42636, \"\\u00e5\\u00a5\\u00b3\": 42637, \"\\u0120/**\": 42638, \"rolley\": 42639, \"\\u0120watershed\": 42640, \"\\u0120Submission\": 42641, \"iflower\": 42642, \"ASC\": 42643, \"\\u0120choir\": 42644, \"\\u0120sculptures\": 42645, \"mA\": 42646, \"increasing\": 42647, \"aii\": 42648, \"\\u0120sneakers\": 42649, \"\\u0120confronts\": 42650, \"\\u0120Elephant\": 42651, \"\\u0120Elixir\": 42652, \"\\u0120recal\": 42653, \"\\u0120TTL\": 42654, \"widget\": 42655, \"\\u0120Wax\": 42656, \"\\u0120Grayson\": 42657, \"\\u0120hairst\": 42658, \"\\u0120humiliated\": 42659, \"\\u0120WARN\": 42660, \"appiness\": 42661, \"\\u0120TTC\": 42662, \"Fuel\": 42663, \"\\u0120polio\": 42664, \"\\u0120complexes\": 42665, \"\\u0120babe\": 42666, \"\\u0120XIV\": 42667, \"PF\": 42668, \").[\": 42669, \"Parts\": 42670, \"\\u0120435\": 42671, \"Meg\": 42672, \"\\u0120Yards\": 42673, \"\\u0120ALP\": 42674, \"\\u0120yells\": 42675, \"\\u0120princes\": 42676, \"\\u0120bullies\": 42677, \"\\u0120Capitalism\": 42678, \"exempt\": 42679, \"FAQ\": 42680, \"\\u0120Sponge\": 42681, \"\\u0120Ala\": 42682, \"\\u0120pleasantly\": 42683, \"\\u0120buf\": 42684, \"\\u0120denote\": 42685, \"\\u0120unpublished\": 42686, \"\\u0120kneeling\": 42687, \"asca\": 42688, \"\\u0120lapse\": 42689, \"alien\": 42690, \"994\": 42691, \"\\u0120referees\": 42692, \"\\u0120Lawyers\": 42693, \"Santa\": 42694, \"\\u0120puzzling\": 42695, \"\\u0120Prometheus\": 42696, \"\\u0120Pharaoh\": 42697, \"\\u0120Delay\": 42698, \"\\u0120facilitates\": 42699, \"\\u0120CES\": 42700, \"\\u0120jewels\": 42701, \"\\u0120booklet\": 42702, \"onding\": 42703, \"\\u0120polarization\": 42704, \"\\u0120Moran\": 42705, \"\\u0120Salad\": 42706, \"\\u0120SOS\": 42707, \"\\u0120Advice\": 42708, \"PHOTOS\": 42709, \"ICAN\": 42710, \"iatures\": 42711, \"express\": 42712, \"\\u0120Wonderland\": 42713, \"\\u0120CODE\": 42714, \"\\u0120CLASS\": 42715, \"975\": 42716, \"\\u0120grep\": 42717, \"\\u0120Diesel\": 42718, \"\\u0120Glac\": 42719, \"!?\\\"\": 42720, \"\\u0120rm\": 42721, \"oine\": 42722, \"discrimination\": 42723, \"\\u0120Nurse\": 42724, \"mallow\": 42725, \"\\u0120vortex\": 42726, \"\\u0120Consortium\": 42727, \"\\u0120largeDownload\": 42728, \"straight\": 42729, \"aughlin\": 42730, \"Grad\": 42731, \"\\u0120publicized\": 42732, \"\\u0120Waves\": 42733, \"\\u0120Redd\": 42734, \"\\u0120festivities\": 42735, \"\\u0120Mane\": 42736, \"arov\": 42737, \"\\u0120fleeting\": 42738, \"\\u0120Drunk\": 42739, \"ugen\": 42740, \"Cele\": 42741, \"\\u0120chromosomes\": 42742, \"\\u0120DOT\": 42743, \"-+-+-+-+\": 42744, \"\\u0120busiest\": 42745, \"\\u0120Beaver\": 42746, \"Syrian\": 42747, \"\\u0120Kyr\": 42748, \"kas\": 42749, \"\\u0120CrossRef\": 42750, \"1950\": 42751, \"7601\": 42752, \"\\u0120repealing\": 42753, \"\\u0120Winners\": 42754, \"\\u0120Macro\": 42755, \"\\u0120DOD\": 42756, \"blance\": 42757, \"Sort\": 42758, \"641\": 42759, \"\\u0120metre\": 42760, \"\\u0120Dirk\": 42761, \"\\u0120goggles\": 42762, \"\\u0120drawbacks\": 42763, \"\\u0120complainant\": 42764, \"\\u0120authorizing\": 42765, \"\\u0120antitrust\": 42766, \"operated\": 42767, \"\\u0120mah\": 42768, \"\\u0120exaggeration\": 42769, \"Amazing\": 42770, \"\\u0120Seraph\": 42771, \"\\u0120haze\": 42772, \"wow\": 42773, \"\\u0120extinguished\": 42774, \"\\u0120canyon\": 42775, \"\\u0120Bosh\": 42776, \"\\u0120vents\": 42777, \"\\u0120scrape\": 42778, \"Correct\": 42779, \"426\": 42780, \"\\u0120avg\": 42781, \"Demand\": 42782, \"\\u0120\\u00e2\\u012a\\u00bc\": 42783, \"\\u0120microbiota\": 42784, \"\\\"}],\\\"\": 42785, \"\\u0120Stev\": 42786, \"Bio\": 42787, \"\\u0120Planes\": 42788, \"\\u0120suggestive\": 42789, \"\\u0120decipher\": 42790, \"\\u0120Refugee\": 42791, \"\\u0120Kejriwal\": 42792, \"\\u0120Greenpeace\": 42793, \"\\u0120declass\": 42794, \"\\u0120Sounders\": 42795, \"\\u0120tho\": 42796, \"\\u0120decrypt\": 42797, \"\\u0120brushing\": 42798, \"\\u0120Janeiro\": 42799, \"ipop\": 42800, \"Si\": 42801, \"877\": 42802, \"\\u0120Geoffrey\": 42803, \"\\u0120cpu\": 42804, \"\\u0120Hazel\": 42805, \"\\u0120viewpoints\": 42806, \"\\u0120crispy\": 42807, \"\\u0120Notification\": 42808, \"\\u0120solder\": 42809, \"\\u0120Modest\": 42810, \"\\u0120Hemisphere\": 42811, \"\\u0120cassette\": 42812, \"includes\": 42813, \"\\u0120identifiers\": 42814, \"\\u0120CALL\": 42815, \"incent\": 42816, \"Todd\": 42817, \"\\u0120Sweep\": 42818, \"\\u0120334\": 42819, \"boss\": 42820, \"\\u0120smir\": 42821, \"ginx\": 42822, \"\\u0120township\": 42823, \"\\u0120grieving\": 42824, \"\\u0120Mosque\": 42825, \"Netflix\": 42826, \"ASED\": 42827, \"\\u0120Millennials\": 42828, \"ocom\": 42829, \"1967\": 42830, \"\\u0120boldly\": 42831, \"sleep\": 42832, \"\\u0120esche\": 42833, \"arijuana\": 42834, \"\\u0120swirl\": 42835, \"\\u0120Penal\": 42836, \"\\u0120negligent\": 42837, \"\\u0120Stephenson\": 42838, \"KER\": 42839, \"\\u0120Zoro\": 42840, \"risis\": 42841, \"\\u0120localization\": 42842, \"\\u0120Seymour\": 42843, \"\\u0120Anglic\": 42844, \"reditation\": 42845, \"protection\": 42846, \"\\u0120Paige\": 42847, \"\\u0120omit\": 42848, \"\\u0120Rousse\": 42849, \"\\u0120Tub\": 42850, \"\\u0120invitations\": 42851, \"tty\": 42852, \"\\u0120moss\": 42853, \"physical\": 42854, \"Credits\": 42855, \"\\u0120anarchy\": 42856, \"\\u0120childcare\": 42857, \"\\u0120lull\": 42858, \"\\u0120Mek\": 42859, \"\\u0120Languages\": 42860, \"latest\": 42861, \"\\u0120Sanford\": 42862, \"\\u0120usability\": 42863, \"\\u0120diffuse\": 42864, \"\\u0120DATA\": 42865, \"\\u0120sprites\": 42866, \"\\u0120Vegeta\": 42867, \"\\u0120Promotion\": 42868, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0124\\u00af\": 42869, \"ricting\": 42870, \"zee\": 42871, \"Turkish\": 42872, \"\\u0120TDs\": 42873, \"proven\": 42874, \"571\": 42875, \"\\u0120smugglers\": 42876, \"70710\": 42877, \"\\u0120reformed\": 42878, \"\\u0120Lois\": 42879, \"\\u0120unfl\": 42880, \"\\u0120WITHOUT\": 42881, \"\\u0120Returning\": 42882, \"annie\": 42883, \"\\u0120Tomas\": 42884, \"Franc\": 42885, \"\\u0120Profit\": 42886, \"\\u0120SERV\": 42887, \"\\u0120Rumble\": 42888, \"ikuman\": 42889, \"esan\": 42890, \"\\u0120testers\": 42891, \"\\u0120gadget\": 42892, \"\\u0120bracelet\": 42893, \"\\u0120FSA\": 42894, \"component\": 42895, \"\\u0120paramedics\": 42896, \"\\u0120jan\": 42897, \"\\u0120Remem\": 42898, \"\\u0120Skinner\": 42899, \"\\u0120lov\": 42900, \"\\u0120Quake\": 42901, \"roma\": 42902, \"\\u0120flask\": 42903, \"Princ\": 42904, \"\\u0120overpower\": 42905, \"\\u0120lodging\": 42906, \"\\u0120KKK\": 42907, \"rette\": 42908, \"\\u0120absorbs\": 42909, \"wrote\": 42910, \"\\u0120,\\\"\": 42911, \"Kings\": 42912, \"\\u0120Hail\": 42913, \"\\u0120Falling\": 42914, \"xtap\": 42915, \"\\u0120Helena\": 42916, \"irens\": 42917, \"Larry\": 42918, \"\\u0120pamphlet\": 42919, \"\\u0120CPR\": 42920, \"Gro\": 42921, \"\\u0120Hiroshima\": 42922, \"\\u0120holistic\": 42923, \"\\\".[\": 42924, \"\\u0120detachment\": 42925, \"\\u0120aspire\": 42926, \"\\u0120complicit\": 42927, \"\\u0120Greenwood\": 42928, \"\\u0120respawn\": 42929, \"\\u0120Stupid\": 42930, \"\\u0120Finished\": 42931, \"fal\": 42932, \"bass\": 42933, \"\\u0120abhor\": 42934, \"\\u0120mockery\": 42935, \"\\u0120Feast\": 42936, \"VIDEO\": 42937, \"\\u0120consec\": 42938, \"\\u0120Hungry\": 42939, \"Pull\": 42940, \"\\u0120Hust\": 42941, \"itance\": 42942, \"?\\u00e3\\u0122\\u012f\": 42943, \")--\": 42944, \"\\u0120Parallel\": 42945, \"conv\": 42946, \"469\": 42947, \"haar\": 42948, \"want\": 42949, \"Paper\": 42950, \"mins\": 42951, \"\\u0120Toro\": 42952, \"\\u0120TRUMP\": 42953, \"\\u0120Rai\": 42954, \"DW\": 42955, \"\\u0120Wicked\": 42956, \"\\u0120Lep\": 42957, \"\\u0120funky\": 42958, \"\\u0120detriment\": 42959, \"iosis\": 42960, \"achev\": 42961, \"\\u0120degrade\": 42962, \"imilation\": 42963, \"\\u0120retard\": 42964, \"\\u0120fragmentation\": 42965, \"\\u0120cowboy\": 42966, \"\\u0120YPG\": 42967, \"\\u0120HAL\": 42968, \"Parents\": 42969, \"\\u0120Sieg\": 42970, \"\\u0120Strauss\": 42971, \"\\u0120Rubber\": 42972, \"\\u00d7\\u0132\": 42973, \"Frag\": 42974, \"\\u0120pt\": 42975, \"\\u0120optionally\": 42976, \"\\u0120ZIP\": 42977, \"\\u0120Transcript\": 42978, \"\\u0120Dwell\": 42979, \"882\": 42980, \"Merc\": 42981, \"\\u0120MOT\": 42982, \"\\u00e3\\u0125\\u00af\\u00e3\\u0125\\u00b3\": 42983, \"\\u0120hunts\": 42984, \"\\u0120executes\": 42985, \"Includes\": 42986, \"\\u0120acidic\": 42987, \"\\u0120Responsibility\": 42988, \"\\u0120Dumb\": 42989, \"wei\": 42990, \"Anderson\": 42991, \"\\u0120Jasper\": 42992, \"ighton\": 42993, \"absolutely\": 42994, \"Adult\": 42995, \"\\u0120plunder\": 42996, \"Morning\": 42997, \"\\u0120Tours\": 42998, \"\\u0120Dane\": 42999, \"\\u00ce\\u00ba\": 43000, \"\\u0120TEST\": 43001, \"\\u0120Gina\": 43002, \"\\u0120canine\": 43003, \"awan\": 43004, \"\\u0120socialists\": 43005, \"\\u0120Soda\": 43006, \"\\u0120impetus\": 43007, \"\\u0120Supplementary\": 43008, \"oliath\": 43009, \"\\u0120Kinnikuman\": 43010, \"mittedly\": 43011, \"seconds\": 43012, \"\\u0120organisers\": 43013, \"\\u0120documentaries\": 43014, \"Variable\": 43015, \"GREEN\": 43016, \"\\u0120resorts\": 43017, \"\\u0120bragging\": 43018, \"\\u0120368\": 43019, \"Artist\": 43020, \"wk\": 43021, \"blers\": 43022, \"Uncommon\": 43023, \"\\u0120Retrieved\": 43024, \"\\u0120hectares\": 43025, \"\\u0120toxin\": 43026, \"rank\": 43027, \"\\u0120faiths\": 43028, \"\\u0120Graphic\": 43029, \"\\u0120vec\": 43030, \"\\u0120LIA\": 43031, \"African\": 43032, \"\\u0120ardent\": 43033, \"endiary\": 43034, \"Lake\": 43035, \"\\u0120DOS\": 43036, \"cientious\": 43037, \"\\u0120Okawaru\": 43038, \"\\u0120Ally\": 43039, \"\\u0120Timeline\": 43040, \"Dash\": 43041, \"\\u0120Ic\": 43042, \"continue\": 43043, \"\\u0120tidy\": 43044, \"\\u0120instinctively\": 43045, \"\\u0120Possibly\": 43046, \"\\u0120Outdoor\": 43047, \"\\u0120Wouldn\": 43048, \"\\u0120lich\": 43049, \"\\u0120Bray\": 43050, \"\\u0120AX\": 43051, \"\\u0120\\u00c3\\u012b\": 43052, \"\\u0120+#\": 43053, \"\\\\'\": 43054, \"Directory\": 43055, \"abiding\": 43056, \"\\u0120feral\": 43057, \"icative\": 43058, \"butt\": 43059, \"\\u0120perverse\": 43060, \"Salt\": 43061, \"\\u0120warped\": 43062, \"\\u0120nineteen\": 43063, \"\\u0120cabinets\": 43064, \"\\u0120srfAttach\": 43065, \"\\u0120Sloan\": 43066, \"\\u0120powering\": 43067, \"regation\": 43068, \"Flight\": 43069, \"severe\": 43070, \"\\u0120stren\": 43071, \"\\u0120cog\": 43072, \"apache\": 43073, \"\\u0120\\u00e2\\u013f\": 43074, \"\\u0120cafeteria\": 43075, \"paces\": 43076, \"\\u0120Grimoire\": 43077, \"utonium\": 43078, \"\\u0120raining\": 43079, \"\\u0120circling\": 43080, \"\\u0120linebackers\": 43081, \"credit\": 43082, \"\\u0120repatri\": 43083, \"\\u0120Camden\": 43084, \"license\": 43085, \"\\u0120lyric\": 43086, \"\\u0120descriptor\": 43087, \"\\u0120valleys\": 43088, \"\\u0120req\": 43089, \"\\u0120backstage\": 43090, \"\\u0120Prohibition\": 43091, \"\\u0120Ket\": 43092, \"Opening\": 43093, \"Sym\": 43094, \"\\u00e6\\u0138\\u00b9\": 43095, \"\\u0120servings\": 43096, \"\\u0120overseen\": 43097, \"\\u0120asteroids\": 43098, \"\\u0120Mods\": 43099, \"\\u0120Springer\": 43100, \"\\u0120Container\": 43101, \"\\u00e8\\u00bb\": 43102, \"\\u0120Mens\": 43103, \"\\u0120multim\": 43104, \"\\u0120firefighter\": 43105, \"pec\": 43106, \"\\u0120chlorine\": 43107, \"\\u00d0\\u00bc\": 43108, \"endi\": 43109, \"\\u0120sparing\": 43110, \"\\u0120polygamy\": 43111, \"\\u0120RN\": 43112, \"\\u0120Pell\": 43113, \"\\u0120tigers\": 43114, \"\\u0120flashy\": 43115, \"\\u0120Madame\": 43116, \"Sword\": 43117, \"\\u0120prefrontal\": 43118, \"\\u0120prerequisite\": 43119, \"uca\": 43120, \"\\u0120wifi\": 43121, \"\\u0120misconception\": 43122, \"\\u0120harshly\": 43123, \"\\u0120Streaming\": 43124, \"otom\": 43125, \"\\u0120Giuliani\": 43126, \"footed\": 43127, \"\\u0120tubing\": 43128, \"individual\": 43129, \"zek\": 43130, \"nuclear\": 43131, \"mol\": 43132, \"\\u0120rightful\": 43133, \"493\": 43134, \"\\u0120specialization\": 43135, \"\\u0120passionately\": 43136, \"\\u0120Velocity\": 43137, \"\\u0120Availability\": 43138, \"Tenn\": 43139, \"\\u0120latch\": 43140, \"\\u0120Somebody\": 43141, \"\\u0120helium\": 43142, \"claw\": 43143, \"\\u0120dipping\": 43144, \"XXX\": 43145, \"\\u0120interpersonal\": 43146, \"710\": 43147, \"\\u0120subter\": 43148, \"\\u0120biologists\": 43149, \"\\u0120Lighting\": 43150, \"\\u0120optic\": 43151, \"\\u0120denim\": 43152, \"endon\": 43153, \"\\u0120Corm\": 43154, \"\\u0120341\": 43155, \"\\u0120Coup\": 43156, \"\\u0120fearless\": 43157, \"\\u0120alot\": 43158, \"\\u0120Clifford\": 43159, \"\\u0120Runtime\": 43160, \"\\u0120Provision\": 43161, \"updated\": 43162, \"leneck\": 43163, \"\\u0120neuron\": 43164, \"\\u0120grading\": 43165, \"\\u0120Ct\": 43166, \"sequence\": 43167, \"inia\": 43168, \"concept\": 43169, \"\\u0120roaring\": 43170, \"rival\": 43171, \"\\u0120Caucasian\": 43172, \"\\u0120monog\": 43173, \"keyes\": 43174, \"\\u0120appellate\": 43175, \"\\u0120liaison\": 43176, \"EStreamFrame\": 43177, \"\\u0120Plum\": 43178, \"!.\": 43179, \"\\u0120spherical\": 43180, \"\\u0120perished\": 43181, \"\\u0120blot\": 43182, \"\\u0120benches\": 43183, \"\\u0120411\": 43184, \"\\u0120pioneered\": 43185, \"\\u0120hurled\": 43186, \"Jennifer\": 43187, \"\\u0120Yosemite\": 43188, \"Chair\": 43189, \"\\u0120reefs\": 43190, \"\\u0120elector\": 43191, \"\\u0120Anthem\": 43192, \"652\": 43193, \"\\u0120uninstall\": 43194, \"\\u0120impede\": 43195, \"\\u0120blinking\": 43196, \"\\u0120goto\": 43197, \"Decre\": 43198, \"Aren\": 43199, \"\\u0120stabilization\": 43200, \"\\u0120Disabled\": 43201, \"\\u0120Yanukovych\": 43202, \"\\u0120outlawed\": 43203, \"\\u0120Ventura\": 43204, \"teness\": 43205, \"\\u0120plantation\": 43206, \"\\u0120yacht\": 43207, \"\\u0120Huawei\": 43208, \"\\u0120solvent\": 43209, \"\\u0120gracious\": 43210, \"\\u0120curiously\": 43211, \"\\u0120capacitor\": 43212, \"\\u0120cx\": 43213, \"\\u0120Reflex\": 43214, \"Phys\": 43215, \"\\u0120Cf\": 43216, \"ptin\": 43217, \"conservative\": 43218, \"\\u0120invocation\": 43219, \"cour\": 43220, \"FN\": 43221, \"\\u0120Newly\": 43222, \"Hour\": 43223, \"Asian\": 43224, \"\\u0120Leading\": 43225, \"\\u0120Aerospace\": 43226, \"Anne\": 43227, \"\\u0120prenatal\": 43228, \"\\u0120deteriorating\": 43229, \"HCR\": 43230, \"\\u0120Normandy\": 43231, \"olini\": 43232, \"\\u0120Ambro\": 43233, \"910\": 43234, \"\\u0120setbacks\": 43235, \"\\u0120TRE\": 43236, \"\\u0120sig\": 43237, \"\\u0120Scourge\": 43238, \"597\": 43239, \"798\": 43240, \"Gameplay\": 43241, \"\\u0120msec\": 43242, \"MX\": 43243, \"\\u0120pricey\": 43244, \"\\u0120LLP\": 43245, \"akeru\": 43246, \"\\u0120overarching\": 43247, \"\\u0120Bale\": 43248, \"\\u0120worldly\": 43249, \"Clark\": 43250, \"\\u0120scenic\": 43251, \"\\u0120disliked\": 43252, \"\\u0120Controlled\": 43253, \"Tickets\": 43254, \"\\u0120EW\": 43255, \"abies\": 43256, \"\\u0120Plenty\": 43257, \"Nonetheless\": 43258, \"\\u0120artisan\": 43259, \"Transfer\": 43260, \"\\u0120Famous\": 43261, \"\\u0120infield\": 43262, \"bley\": 43263, \"\\u0120unresolved\": 43264, \"\\u0120MLA\": 43265, \"\\u00e3\\u0124\\u0124\": 43266, \"Correction\": 43267, \"\\u0120democrat\": 43268, \"\\u0120Moreno\": 43269, \"rocal\": 43270, \"ilings\": 43271, \"\\u0120sailor\": 43272, \"\\u0120rife\": 43273, \"hung\": 43274, \"\\u0120tropes\": 43275, \"\\u0120snatched\": 43276, \"\\u0120LIN\": 43277, \"\\u0120Bib\": 43278, \"ESA\": 43279, \"\\u0120Prev\": 43280, \"\\u0120Camel\": 43281, \"runtime\": 43282, \"\\u0120obnoxious\": 43283, \"437\": 43284, \"\\u0120summers\": 43285, \"\\u0120unexplained\": 43286, \"\\u0120Walters\": 43287, \"caliber\": 43288, \"\\u0120gull\": 43289, \"\\u0120Endurance\": 43290, \"\\u00e4\\u00bd\\u013e\": 43291, \"\\u0120347\": 43292, \"Irish\": 43293, \"\\u0120aerobic\": 43294, \"\\u0120cramped\": 43295, \"\\u0120Honolulu\": 43296, \"\\u00e0\\u00a9\": 43297, \"userc\": 43298, \"ecast\": 43299, \"ACY\": 43300, \"\\u0120Query\": 43301, \"\\u00e3\\u0124\\u00b9\\u00e3\\u0125\\u012a\": 43302, \"Beta\": 43303, \"\\u0120susceptibility\": 43304, \"\\u0120Shiv\": 43305, \"\\u0120Limbaugh\": 43306, \"\\u0120\\u00c3\\u0138\": 43307, \"\\u0120NXT\": 43308, \"\\u0120Muss\": 43309, \"\\u0120Britons\": 43310, \"ESCO\": 43311, \"EGIN\": 43312, \"\\u0120%%\": 43313, \"\\u0120secession\": 43314, \"\\u0120Patron\": 43315, \"\\u0120Lua\": 43316, \"naires\": 43317, \"\\u0120JPMorgan\": 43318, \"usb\": 43319, \"ocyte\": 43320, \"\\u0120councillors\": 43321, \"\\u0120Liang\": 43322, \"farm\": 43323, \"\\u0120nervously\": 43324, \"\\u0120attractiveness\": 43325, \"\\u0120Kov\": 43326, \"jump\": 43327, \"Plot\": 43328, \"\\u0120stains\": 43329, \"\\u0120Statue\": 43330, \"\\u0120Apostles\": 43331, \"heter\": 43332, \"\\u0120SUPPORT\": 43333, \"\\u0120overwhelm\": 43334, \"YES\": 43335, \"\\u0120291\": 43336, \"density\": 43337, \"\\u0120trapping\": 43338, \"Mit\": 43339, \"\\u0120fide\": 43340, \"\\u0120Pamela\": 43341, \"atlantic\": 43342, \"Damn\": 43343, \"\\u0120pts\": 43344, \"OPA\": 43345, \"\\u0120servicing\": 43346, \"\\u0120overflowing\": 43347, \"ulo\": 43348, \"\\u0120Erit\": 43349, \"ticket\": 43350, \"lighting\": 43351, \"\\u0120Hmm\": 43352, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u00ab\": 43353, \"imoto\": 43354, \"\\u0120chuckle\": 43355, \"423\": 43356, \"\\u00e3\\u0123\\u0137\": 43357, \"shape\": 43358, \"\\u0120queues\": 43359, \"\\u0120anchors\": 43360, \"\\u00e3\\u0124\\u00bc\\u00e3\\u0124\\u00a6\\u00e3\\u0124\\u00b9\": 43361, \"Fer\": 43362, \"\\u0120awoke\": 43363, \"\\u0120666\": 43364, \"hands\": 43365, \"\\u0120divergence\": 43366, \"\\u0120505\": 43367, \"Tips\": 43368, \"\\u0120depot\": 43369, \"\\u0120skew\": 43370, \"\\u0120Deliver\": 43371, \"opot\": 43372, \"\\u0120divul\": 43373, \"\\u0120EB\": 43374, \"unsigned\": 43375, \"\\u0120Uni\": 43376, \"Xbox\": 43377, \"\\u0120forks\": 43378, \"\\u0120702\": 43379, \"\\u00e5\\u00af\": 43380, \"\\u0120promoters\": 43381, \"\\u0120Vapor\": 43382, \"\\u0120levied\": 43383, \"slot\": 43384, \"\\u0120pigment\": 43385, \"\\u0120cylinders\": 43386, \"CRE\": 43387, \"\\u0120snatch\": 43388, \"\\u0120perpetually\": 43389, \"\\u0120licking\": 43390, \"\\u0120Feet\": 43391, \"\\u0120Kraken\": 43392, \"\\u0120Holden\": 43393, \"\\u0120CLSID\": 43394, \"mr\": 43395, \"\\u0120projector\": 43396, \"\\u0120denotes\": 43397, \"\\u0120chapel\": 43398, \"\\u0120Torrent\": 43399, \"bler\": 43400, \"Route\": 43401, \"\\u0120Defendant\": 43402, \"\\u0120Publishers\": 43403, \"\\u0120Males\": 43404, \"\\u0120Innov\": 43405, \"\\u0120Agility\": 43406, \"riter\": 43407, \"tymology\": 43408, \"stores\": 43409, \"Lind\": 43410, \"\\u0120folly\": 43411, \"\\u0120Zurich\": 43412, \"Ble\": 43413, \"\\u0120nurture\": 43414, \"\\u0120coastline\": 43415, \"uchin\": 43416, \"Domin\": 43417, \"\\u0120frivol\": 43418, \"\\u0120Consolid\": 43419, \"results\": 43420, \"MJ\": 43421, \"\\u0120phylogen\": 43422, \"\\u0120hauled\": 43423, \"\\u0120Wiley\": 43424, \"\\u0120Jessie\": 43425, \"\\u0120Prepare\": 43426, \"\\u0120Eps\": 43427, \"\\u0120treasurer\": 43428, \"IAS\": 43429, \"\\u0120colonists\": 43430, \"\\u0120inund\": 43431, \"\\u0120WWF\": 43432, \"\\u0120Converted\": 43433, \"6000\": 43434, \"outside\": 43435, \"\\u0120Appearance\": 43436, \"\\u0120Relic\": 43437, \"\\u0120Mister\": 43438, \"saw\": 43439, \"\\u0120resultant\": 43440, \"\\u0120adjective\": 43441, \"\\u0120Laurel\": 43442, \"\\u0120Hindi\": 43443, \"bda\": 43444, \"Peace\": 43445, \"\\u0120rebirth\": 43446, \"\\u0120membranes\": 43447, \"\\u0120forwarding\": 43448, \"\\u0120collided\": 43449, \"\\u0120Carolyn\": 43450, \"Kansas\": 43451, \"599\": 43452, \"\\u0120SolidGoldMagikarp\": 43453, \"Beck\": 43454, \"\\u0120stressing\": 43455, \"\\u0120Goo\": 43456, \"\\u0120Cooperative\": 43457, \"\\u0120fs\": 43458, \"\\u0120Archie\": 43459, \"Liter\": 43460, \"\\u0120Klopp\": 43461, \"Jerry\": 43462, \"\\u0120footwear\": 43463, \"Warren\": 43464, \"\\u0120scree\": 43465, \"hare\": 43466, \"Understanding\": 43467, \"Ped\": 43468, \"\\u0120anthology\": 43469, \"\\u0120Announce\": 43470, \"Mega\": 43471, \"\\u0120fluent\": 43472, \"\\u0120bondage\": 43473, \"\\u0120Discount\": 43474, \"ilial\": 43475, \"Cart\": 43476, \"\\u0120Nightmares\": 43477, \"Sham\": 43478, \"\\u0120Boll\": 43479, \"ussie\": 43480, \"Http\": 43481, \"Atlanta\": 43482, \"\\u0120unrecogn\": 43483, \"\\u0120Bid\": 43484, \"\\u0120undergrad\": 43485, \"\\u0120forgiving\": 43486, \"\\u0120Glover\": 43487, \"AAAAAAAA\": 43488, \"445\": 43489, \"VG\": 43490, \"paio\": 43491, \"killers\": 43492, \"\\u0120responsibly\": 43493, \"\\u0120mobilize\": 43494, \"\\u0120effected\": 43495, \"\\u0120Lumin\": 43496, \"\\u0120kale\": 43497, \"\\u0120infringing\": 43498, \"announced\": 43499, \"\\u0120fitt\": 43500, \"batch\": 43501, \"\\u0120Tackle\": 43502, \"\\u0120Lime\": 43503, \"\\u0120APP\": 43504, \"ukemia\": 43505, \"\\u0120ruby\": 43506, \"\\u0120exoner\": 43507, \"\\u0120Casual\": 43508, \"070\": 43509, \"\\u0120pelvic\": 43510, \"\\u0120automate\": 43511, \"\\u0120Kear\": 43512, \"\\u0120Coastal\": 43513, \"\\u0120creed\": 43514, \"\\u0120boredom\": 43515, \"\\u0120Stun\": 43516, \"riott\": 43517, \"\\u0124\\u0130\": 43518, \"\\u0120regenerate\": 43519, \"\\u0120comedians\": 43520, \"\\u0120OPER\": 43521, \"Spons\": 43522, \"idium\": 43523, \"onis\": 43524, \"Located\": 43525, \"057\": 43526, \"\\u0120suspense\": 43527, \"\\u0120Dating\": 43528, \"Cass\": 43529, \"\\u0120neocons\": 43530, \"\\u0120Shinzo\": 43531, \"\\u0120awoken\": 43532, \"christ\": 43533, \"\\u0120Messages\": 43534, \"attled\": 43535, \"\\u0120Spray\": 43536, \"\\u0120Spice\": 43537, \"CW\": 43538, \"\\u0120shielding\": 43539, \"\\u0120Gaul\": 43540, \"Amid\": 43541, \"\\u0120paramilitary\": 43542, \"\\u0120multif\": 43543, \"\\u0120Tanner\": 43544, \"ilk\": 43545, \"\\u0120goddamn\": 43546, \"gements\": 43547, \"\\u0120befriend\": 43548, \"mobi\": 43549, \"\\u0120388\": 43550, \"folder\": 43551, \"acca\": 43552, \"\\u0120insin\": 43553, \"gap\": 43554, \"Nev\": 43555, \"fifth\": 43556, \"\\u0120psychiatry\": 43557, \"banks\": 43558, \"THIS\": 43559, \"\\u0120harb\": 43560, \"acqu\": 43561, \"\\u0120facade\": 43562, \"\\u0120PowerPoint\": 43563, \"803\": 43564, \"\\u0120bluff\": 43565, \"Shares\": 43566, \"\\u0120favoring\": 43567, \"Elizabeth\": 43568, \"\\u00c3\\u012f\\u00c3\\u012f\": 43569, \"\\u0120ranger\": 43570, \"772\": 43571, \"\\u0120Arche\": 43572, \"hak\": 43573, \"\\u0120Genetics\": 43574, \"\\u0120FEMA\": 43575, \"\\u0120evolves\": 43576, \"\\u0120este\": 43577, \"\\u0120Pets\": 43578, \"\\u0120M\\u00c3\\u00a9\": 43579, \"\\u0120Interesting\": 43580, \"\\u0120Canterbury\": 43581, \"chapter\": 43582, \"\\u0120Starfleet\": 43583, \"Spanish\": 43584, \"\\u0120drawback\": 43585, \"\\u0120Norwich\": 43586, \"970\": 43587, \"north\": 43588, \"aganda\": 43589, \"\\u0120transformative\": 43590, \"ramids\": 43591, \"biology\": 43592, \"aday\": 43593, \"\\u0120propagation\": 43594, \"\\u0120Gamma\": 43595, \"\\u0120Denise\": 43596, \"\\u0120Calculator\": 43597, \"entimes\": 43598, \"\\u0120Bett\": 43599, \"\\u0120appendix\": 43600, \"\\u0120HDD\": 43601, \"AKING\": 43602, \"\\u0120stigmat\": 43603, \"\\u0120holster\": 43604, \"\\u0120ordinarily\": 43605, \"Chance\": 43606, \"\\u0120Contrary\": 43607, \"\\u0120adhesive\": 43608, \"\\u0120gathers\": 43609, \"612\": 43610, \"reau\": 43611, \"onyms\": 43612, \"eways\": 43613, \"\\u0120induces\": 43614, \"\\u0120interchangeable\": 43615, \"sem\": 43616, \"Whit\": 43617, \"\\u0120trance\": 43618, \"\\u0120incorporation\": 43619, \"\\u0120Extras\": 43620, \"Financial\": 43621, \"\\u0120awkwardly\": 43622, \"\\u0120Sturgeon\": 43623, \"\\u0120HY\": 43624, \"Normally\": 43625, \"\\u0120Ending\": 43626, \"\\u0120Assist\": 43627, \"encrypted\": 43628, \"\\u0120subjug\": 43629, \"\\u0120nos\": 43630, \"\\u0120fanatic\": 43631, \"Cub\": 43632, \"CU\": 43633, \"?\\\".\": 43634, \"\\u0120irreversible\": 43635, \"\\u00e5\\u0124\": 43636, \"031\": 43637, \"\\u0120HAR\": 43638, \"spread\": 43639, \"ulia\": 43640, \"=$\": 43641, \"Scope\": 43642, \"Lots\": 43643, \"\\u0120lifestyles\": 43644, \"olon\": 43645, \"\\u0120feds\": 43646, \"\\u0120congratulate\": 43647, \"webkit\": 43648, \"\\u0120indistinguishable\": 43649, \"\\u0120Swing\": 43650, \"\\u0120commandments\": 43651, \"quila\": 43652, \"abella\": 43653, \"methyl\": 43654, \"annabin\": 43655, \"\\u0120overe\": 43656, \"\\u0120lobster\": 43657, \"\\u0120QUEST\": 43658, \"\\u0120CONTIN\": 43659, \"bernatorial\": 43660, \"::::::::\": 43661, \"\\u0120Trave\": 43662, \"\\u0120Samoa\": 43663, \"ANI\": 43664, \"752\": 43665, \"\\u00d0\\u00b4\": 43666, \"usercontent\": 43667, \"\\u0120Moderate\": 43668, \"yeah\": 43669, \"\\u0120Kitt\": 43670, \"\\u0120wee\": 43671, \"\\u0120stuffing\": 43672, \"\\u0120Intervention\": 43673, \"\\u0120Dign\": 43674, \"\\u0120warehouses\": 43675, \"\\u0120Fiji\": 43676, \"\\u0120pellets\": 43677, \"\\u0120takeaway\": 43678, \"\\u0120TABLE\": 43679, \"\\u0120Classical\": 43680, \"collection\": 43681, \"\\u0120landfall\": 43682, \"\\u0120Muscle\": 43683, \"\\u0120settles\": 43684, \"\\u0120ADV\": 43685, \"\\u0120344\": 43686, \"Laura\": 43687, \"\\u0120fared\": 43688, \"\\u0120Partial\": 43689, \"436\": 43690, \"ossibility\": 43691, \"\\u0120Daly\": 43692, \"\\u0120Tarant\": 43693, \"\\u0120Fuji\": 43694, \"aml\": 43695, \"cence\": 43696, \"551\": 43697, \"\\u0120Procedures\": 43698, \"\\u0120OCD\": 43699, \"\\u0120UD\": 43700, \"tin\": 43701, \"QUI\": 43702, \"acho\": 43703, \"438\": 43704, \"\\u0120glitches\": 43705, \"\\u0120enchantment\": 43706, \"\\u0120calculates\": 43707, \"IRO\": 43708, \"\\u0120Hua\": 43709, \"alyses\": 43710, \"\\u0120Lift\": 43711, \"umo\": 43712, \"\\u0120leapt\": 43713, \"\\u0120hypothesized\": 43714, \"\\u0120Gustav\": 43715, \"itans\": 43716, \"VERSION\": 43717, \"\\u00e6\\u0142\": 43718, \"Roger\": 43719, \"\\u0120rand\": 43720, \"\\u0120Adapter\": 43721, \"\\u0120331\": 43722, \"\\u0120Petition\": 43723, \"kies\": 43724, \"Mars\": 43725, \"\\u0120undercut\": 43726, \"zees\": 43727, \"\\u0120Lyons\": 43728, \"\\u0120DHCP\": 43729, \"Missing\": 43730, \"\\u0120retirees\": 43731, \"\\u0120insidious\": 43732, \"eli\": 43733, \">)\": 43734, \".\\u00e3\\u0122\\u012f\": 43735, \"\\u0120finalists\": 43736, \"\\u0120Aure\": 43737, \"\\u0120accuser\": 43738, \"\\u0120wastes\": 43739, \"\\u0120Ys\": 43740, \"\\u0120Lori\": 43741, \"\\u0120constituencies\": 43742, \"\\u0120supper\": 43743, \"\\u0120mayhem\": 43744, \"orange\": 43745, \"\\u0120misplaced\": 43746, \"\\u0120managerial\": 43747, \"\\u0120exce\": 43748, \"\\u0120CLI\": 43749, \"\\u0120primal\": 43750, \"\\u0120Lent\": 43751, \"Crystal\": 43752, \"hover\": 43753, \"\\u0120NTS\": 43754, \"endum\": 43755, \"\\u0120dw\": 43756, \"\\u0120Alc\": 43757, \"nostic\": 43758, \"\\u0120preserves\": 43759, \"\\u0120Tsarnaev\": 43760, \"\\u0120tripled\": 43761, \"relative\": 43762, \"Arcade\": 43763, \"killing\": 43764, \"\\u0120WEEK\": 43765, \"\\u0120Hanna\": 43766, \"Dust\": 43767, \"Completed\": 43768, \"\\u0123\\u00ab\": 43769, \"\\u0120approves\": 43770, \"\\u0120Surf\": 43771, \"\\u0120Lutheran\": 43772, \"venants\": 43773, \"\\u0120robberies\": 43774, \"weights\": 43775, \"software\": 43776, \"atana\": 43777, \"ugal\": 43778, \"\\u0120gravy\": 43779, \"\\u0120Cance\": 43780, \"OLOGY\": 43781, \"lyak\": 43782, \"Tonight\": 43783, \"\\u0120unveil\": 43784, \"\\u01201904\": 43785, \"\\u0120Minion\": 43786, \"entious\": 43787, \"stice\": 43788, \"packages\": 43789, \"\\u0120GEAR\": 43790, \"\\u0120gol\": 43791, \"\\u0120Hutchinson\": 43792, \"\\u0120Profession\": 43793, \"\\u0120GUN\": 43794, \"\\u0120Difference\": 43795, \"\\u0120Tsukuyomi\": 43796, \"\\u0120Lesbian\": 43797, \"670\": 43798, \"\\u0120fugitive\": 43799, \"\\u0120Planetary\": 43800, \"--------------------------------------------------------\": 43801, \"\\u0120accrued\": 43802, \"\\u0120chicks\": 43803, \"\\u0120stopp\": 43804, \"\\u0120blockers\": 43805, \"Cod\": 43806, \"\\u0120commenters\": 43807, \"\\u0120Somewhere\": 43808, \"\\u0120Photographer\": 43809, \"theme\": 43810, \"\\u0120mayoral\": 43811, \"wu\": 43812, \"\\u0120antennas\": 43813, \"\\u0120revamped\": 43814, \"\\u0120Subjects\": 43815, \"it\\u00c3\\u00a9\": 43816, \"imura\": 43817, \"\\u0120entrances\": 43818, \"literally\": 43819, \"\\u0120tenets\": 43820, \"\\u0120OMG\": 43821, \"\\u0120MPH\": 43822, \"\\u0120Donkey\": 43823, \"\\u0120Offense\": 43824, \"\\u0120\\\"+\": 43825, \"Snap\": 43826, \"\\u0120AFB\": 43827, \"\\u0120animate\": 43828, \"\\u0120Sod\": 43829, \"Hispanic\": 43830, \"\\u0120inconsistency\": 43831, \"Db\": 43832, \"FY\": 43833, \"Export\": 43834, \"\\u0120ape\": 43835, \"\\u0120pearl\": 43836, \"ibel\": 43837, \"\\u0120PACs\": 43838, \"\\u0120{\\\\\": 43839, \"\\u0120actu\": 43840, \"\\u0120HSBC\": 43841, \"campus\": 43842, \"\\u0120payoff\": 43843, \"\\u0120deities\": 43844, \"\\u0120Nato\": 43845, \"ouple\": 43846, \"\\u0120censored\": 43847, \"\\u0120Clojure\": 43848, \"\\u0120confounding\": 43849, \"eni\": 43850, \"\\u0120reckon\": 43851, \"ophe\": 43852, \"\\u0120spotting\": 43853, \"\\u0120signifies\": 43854, \"\\u0120propel\": 43855, \"\\u0120festive\": 43856, \"Suggest\": 43857, \"\\u0120pledging\": 43858, \"\\u0120Berman\": 43859, \"\\u0120rebellious\": 43860, \"\\u0120overshadowed\": 43861, \"\\u0120infiltrated\": 43862, \"jobs\": 43863, \"672\": 43864, \"\\u0120scalable\": 43865, \"\\u0120dominion\": 43866, \"\\u0120Newfoundland\": 43867, \"\\u0120Meadow\": 43868, \"\\u0120partitions\": 43869, \"AMI\": 43870, \"\\u0120supplementary\": 43871, \"strument\": 43872, \"\\u0120hairy\": 43873, \"\\u0120perpetuate\": 43874, \"\\u0120nutshell\": 43875, \"\\u0120Potato\": 43876, \"\\u0120Hobbit\": 43877, \"\\u0120curses\": 43878, \"Float\": 43879, \"\\u0120quieter\": 43880, \"\\u0120fueling\": 43881, \"\\u0120capsules\": 43882, \"\\u0120Lust\": 43883, \"\\u0120Haunted\": 43884, \"Executive\": 43885, \"\\u0120childbirth\": 43886, \"Gre\": 43887, \"\\u0120radiant\": 43888, \"\\u00e5\\u0130\": 43889, \"\\u0120malls\": 43890, \"\\u0120inept\": 43891, \"\\u0120Warranty\": 43892, \"\\u0120spectator\": 43893, \"Eh\": 43894, \"thens\": 43895, \"\\u0120culminating\": 43896, \"\\u00e6\\u00a9\": 43897, \"arya\": 43898, \"\\u00e3\\u0124\\u00ae\": 43899, \"ilitarian\": 43900, \"\\u0120ORIG\": 43901, \"\\u0120Spending\": 43902, \"ptives\": 43903, \"\\u0120Siren\": 43904, \"\\u0120Recording\": 43905, \"ayne\": 43906, \"\\u0120vim\": 43907, \"\\u0120sprang\": 43908, \"Tang\": 43909, \"\\u0120MFT\": 43910, \"morning\": 43911, \"\\u0120Weed\": 43912, \"mpeg\": 43913, \"cession\": 43914, \"\\u0120Chung\": 43915, \"730\": 43916, \"warning\": 43917, \"562\": 43918, \"handedly\": 43919, \"Poor\": 43920, \"Politics\": 43921, \":#\": 43922, \"\\u0120pian\": 43923, \"\\u0120feces\": 43924, \"\\u0120Documentation\": 43925, \"\\u0120banished\": 43926, \"\\u0120399\": 43927, \"\\u0120ARC\": 43928, \"\\u0120heinous\": 43929, \"Jake\": 43930, \"\\u0120Amir\": 43931, \"wayne\": 43932, \"vre\": 43933, \"oshenko\": 43934, \"\\u0120notebooks\": 43935, \"\\u0120foundational\": 43936, \"\\u0120marvelous\": 43937, \"ixtape\": 43938, \"\\u0120withdrawals\": 43939, \"\\u0120horde\": 43940, \"\\u0120Dhabi\": 43941, \"isable\": 43942, \"\\u0120KD\": 43943, \"\\u0120contagious\": 43944, \"\\u0120Dip\": 43945, \"\\u0120Arrows\": 43946, \"\\u0120pronouns\": 43947, \"\\u0120morphine\": 43948, \"\\u0120BUS\": 43949, \"682\": 43950, \"\\u0120kosher\": 43951, \"finished\": 43952, \"\\u0120Instruments\": 43953, \"\\u0120fused\": 43954, \"yden\": 43955, \"\\u0120Salmon\": 43956, \"Fab\": 43957, \"affected\": 43958, \"KEN\": 43959, \"CENT\": 43960, \"Domain\": 43961, \"\\u0120pokemon\": 43962, \"\\u0120Drinking\": 43963, \"Growing\": 43964, \"\\u0120Investigative\": 43965, \"\\u0120Aether\": 43966, \"emi\": 43967, \"\\u0120tabloid\": 43968, \"\\u0120repro\": 43969, \"\\u0120Notwithstanding\": 43970, \"\\u0120Berserker\": 43971, \"\\u0120dramas\": 43972, \"\\u0120clich\\u00c3\\u00a9\": 43973, \"\\u0120bung\": 43974, \"\\u0120URI\": 43975, \"\\u0120Dos\": 43976, \"044\": 43977, \"\\u0120pastors\": 43978, \"\\u0120ls\": 43979, \"\\u0120acrylic\": 43980, \"aunts\": 43981, \"Edward\": 43982, \"\\u0120majorities\": 43983, \"Bang\": 43984, \"\\u0120fielding\": 43985, \"\\u0120Replacement\": 43986, \"\\u0120Alchemy\": 43987, \"ppard\": 43988, \"\\u0120Romeo\": 43989, \"\\u0120Sanct\": 43990, \"\\u0120Lavrov\": 43991, \"ibble\": 43992, \"Instruct\": 43993, \"\\u0120impractical\": 43994, \"\\u0120Playboy\": 43995, \"cephal\": 43996, \"\\u0120swaps\": 43997, \"\\u0120kan\": 43998, \"\\u0120Theo\": 43999, \"\\u0120illustrating\": 44000, \"\\u0120dismantled\": 44001, \"\\u0120Transgender\": 44002, \"\\u0120Guth\": 44003, \"UGH\": 44004, \"\\u0120triumphant\": 44005, \"\\u0120encompass\": 44006, \"\\u0120bookmark\": 44007, \"uddin\": 44008, \"jer\": 44009, \"\\u0120predicate\": 44010, \"ESH\": 44011, \"\\u0120whence\": 44012, \"\\u0120ABE\": 44013, \"\\u0120nonprofits\": 44014, \"Sequ\": 44015, \"\\u0120diabetic\": 44016, \"\\u0120pend\": 44017, \"\\u0120heartfelt\": 44018, \"shi\": 44019, \"\\u0120interacts\": 44020, \"\\u0120Telecom\": 44021, \"\\u0120bombardment\": 44022, \"depending\": 44023, \"\\u0120Lowry\": 44024, \"\\u0120Admission\": 44025, \"\\u0120Blooming\": 44026, \"ustration\": 44027, \"enegger\": 44028, \"Brew\": 44029, \"\\u0120molten\": 44030, \"\\u0120Nerd\": 44031, \"PIN\": 44032, \"\\u00e2\\u0138\\u0122\": 44033, \"avement\": 44034, \"\\u0120toured\": 44035, \"\\u0120coefficients\": 44036, \"\\u0120Trayvon\": 44037, \"ansson\": 44038, \"\\u0120sandy\": 44039, \"told\": 44040, \"flows\": 44041, \"\\u0120populous\": 44042, \"\\u0120Tinder\": 44043, \"\\u0120Bliss\": 44044, \"Rachel\": 44045, \"Minimum\": 44046, \"\\u0120contestant\": 44047, \"\\u0120Reduce\": 44048, \"\\u0120Morse\": 44049, \"\\u0120Grassley\": 44050, \"\\u0120Clicker\": 44051, \"\\u0120expr\": 44052, \"\\u0120sincerity\": 44053, \"\\u0120marqu\": 44054, \"\\u0120elicit\": 44055, \"\\u0120Proposition\": 44056, \"\\u0120Demonic\": 44057, \"\\u0120tacos\": 44058, \"Greek\": 44059, \"\\u0120postwar\": 44060, \"\\u0120insofar\": 44061, \"\\u0120Pork\": 44062, \"\\u0120352\": 44063, \"doctoral\": 44064, \"walking\": 44065, \"\\u0120midterm\": 44066, \"\\u0120Sammy\": 44067, \"sighted\": 44068, \"\\u0120TRANS\": 44069, \"ici\": 44070, \"ALD\": 44071, \"\\u0120USL\": 44072, \"\\u0120FISA\": 44073, \"\\u0120Ampl\": 44074, \"\\u0120Alexandra\": 44075, \"inelli\": 44076, \"Train\": 44077, \"\\u0120signify\": 44078, \"\\u0120Versus\": 44079, \"\\u0120obfusc\": 44080, \"\\u0120kh\": 44081, \"\\u0120aggro\": 44082, \"\\u0120Renault\": 44083, \"\\u0120348\": 44084, \"518\": 44085, \"oxicity\": 44086, \"022\": 44087, \"\\u0120Twist\": 44088, \"\\u0120goofy\": 44089, \"Dynamic\": 44090, \"\\u0120briefings\": 44091, \"might\": 44092, \"899\": 44093, \"\\u0120derogatory\": 44094, \"Tro\": 44095, \"\\u0120forging\": 44096, \"\\u0120Koran\": 44097, \"\\u0120Married\": 44098, \"\\u0120Bucs\": 44099, \"\\u0120palate\": 44100, \"\\u0120Conversion\": 44101, \"mable\": 44102, \"413\": 44103, \"\\u0120(_\": 44104, \"\\u0120siph\": 44105, \"\\u0120NEO\": 44106, \"college\": 44107, \"\\u0120marginally\": 44108, \"\\u0120flirt\": 44109, \"\\u0120Traps\": 44110, \"\\u0120Pace\": 44111, \"\\u00e9\\u00bb\\u0134\": 44112, \"\\u0120goaltender\": 44113, \"\\u0120forbids\": 44114, \"\\u0120clerks\": 44115, \"\\u0120Tant\": 44116, \"\\u0120Robbins\": 44117, \"\\u0120Printing\": 44118, \"\\u0120premiered\": 44119, \"\\u0120magnification\": 44120, \"\\u0120TG\": 44121, \"\\u0120Rouse\": 44122, \"\\u0120Mock\": 44123, \"odynamics\": 44124, \"\\u0120preclude\": 44125, \"ismo\": 44126, \"\\u0120Pulitzer\": 44127, \"\\u0120avalanche\": 44128, \"\\u0120Kodi\": 44129, \"ribune\": 44130, \"\\u0120Lena\": 44131, \"Electric\": 44132, \"\\u0120refinery\": 44133, \"\\u0120endowed\": 44134, \"\\u0120counselors\": 44135, \"\\u0120dolphin\": 44136, \"\\u0120Mith\": 44137, \"\\u0120armoured\": 44138, \"hibited\": 44139, \"Begin\": 44140, \"\\u0120PW\": 44141, \"Oil\": 44142, \"\\u0120Vor\": 44143, \"\\u0120Sharif\": 44144, \"\\u0120Frazier\": 44145, \"estate\": 44146, \"\\u0120jams\": 44147, \"Proxy\": 44148, \"\\u0120bandits\": 44149, \"\\u0120Presbyterian\": 44150, \"\\u0120Premiere\": 44151, \"tiny\": 44152, \"\\u0120Cruel\": 44153, \"Testing\": 44154, \"\\u0120homer\": 44155, \"\\u0120VERS\": 44156, \"\\u0120Prol\": 44157, \"\\u0120Deposit\": 44158, \"\\u0120Coffin\": 44159, \"\\u0120seminars\": 44160, \"\\u0120sql\": 44161, \"\\u0120Defendants\": 44162, \"Alternatively\": 44163, \"\\u0120Rats\": 44164, \"\\u00e7\\u00ab\": 44165, \"ethyst\": 44166, \"'>\": 44167, \"\\u0120issuer\": 44168, \"589\": 44169, \"\\u0120chaired\": 44170, \"\\u0120Accessories\": 44171, \"manent\": 44172, \"\\u0120marrow\": 44173, \"\\u0120Primordial\": 44174, \"CN\": 44175, \"\\u0120limitless\": 44176, \"\\u0120Carnage\": 44177, \"\\u0120undrafted\": 44178, \"qv\": 44179, \"INESS\": 44180, \"onew\": 44181, \"\\u0120cohesion\": 44182, \"987\": 44183, \"\\u0120necks\": 44184, \"\\u0120footballer\": 44185, \"\\u0120GER\": 44186, \"\\u0120detectable\": 44187, \"\\u0120Supporting\": 44188, \"\\u0120CSV\": 44189, \"ocally\": 44190, \"kHz\": 44191, \"\\u0120unde\": 44192, \"\\u0120shone\": 44193, \"\\u0120budding\": 44194, \"trak\": 44195, \"Standing\": 44196, \"\\u0120Starcraft\": 44197, \"\\u0120Kemp\": 44198, \"Bench\": 44199, \"\\u0120thwarted\": 44200, \"\\u0120Grounds\": 44201, \"athi\": 44202, \"Lisa\": 44203, \"Dialog\": 44204, \"\\u0120SX\": 44205, \"Vision\": 44206, \"\\u0120ingenious\": 44207, \"\\u00d9\\u0132\": 44208, \"\\u0120fostering\": 44209, \"\\u0120Za\": 44210, \"\\u0120Ingram\": 44211, \"\\u0120\\\"@\": 44212, \"Naturally\": 44213, \"616\": 44214, \"035\": 44215, \"\\u0120FAC\": 44216, \"Hmm\": 44217, \"554\": 44218, \"\\u0120accelerator\": 44219, \"\\u0120Vend\": 44220, \"\\u0120sunscreen\": 44221, \"\\u0120tuberculosis\": 44222, \"raviolet\": 44223, \"\\u0120Functional\": 44224, \"\\u0120Errors\": 44225, \"edar\": 44226, \"1966\": 44227, \"\\u0120Spectre\": 44228, \"\\u0120Recipes\": 44229, \"885\": 44230, \"\\u0120Mankind\": 44231, \"Liverpool\": 44232, \"\\u0120|--\": 44233, \"\\u0120substitutes\": 44234, \"\\u0120XT\": 44235, \"wired\": 44236, \"\\u0120inco\": 44237, \"\\u0120Afgh\": 44238, \"Eva\": 44239, \"icc\": 44240, \"Song\": 44241, \"Knight\": 44242, \"\\u0120diligently\": 44243, \"\\u0120Broadcast\": 44244, \"Aid\": 44245, \"\\u0120afar\": 44246, \"\\u0120HMS\": 44247, \"atonin\": 44248, \"\\u0120Grateful\": 44249, \"\\u0120fireplace\": 44250, \"\\u0120Omni\": 44251, \"euro\": 44252, \"\\u0120FRE\": 44253, \"\\u0120Shib\": 44254, \"\\u0120Digest\": 44255, \"toggle\": 44256, \"\\u0120headsets\": 44257, \"\\u0120diffusion\": 44258, \"\\u0120Squirrel\": 44259, \"\\u0120FN\": 44260, \"\\u0120darkened\": 44261, \"outher\": 44262, \"\\u0120sleeps\": 44263, \"\\u0120Xer\": 44264, \"guns\": 44265, \"\\u0120setups\": 44266, \"\\u0120parsed\": 44267, \"\\u0120mammoth\": 44268, \"\\u0120Curious\": 44269, \"gob\": 44270, \"\\u0120Fitzpatrick\": 44271, \"\\u0120Emil\": 44272, \"imov\": 44273, \".............\": 44274, \"\\u0120Benny\": 44275, \"Secondly\": 44276, \"\\u0120hearty\": 44277, \"\\u0120conson\": 44278, \"stained\": 44279, \"\\u0120galactic\": 44280, \"clave\": 44281, \"\\u0120plummeted\": 44282, \"\\u0120pests\": 44283, \"\\u0120swat\": 44284, \"\\u0120referrals\": 44285, \"\\u0120Lionel\": 44286, \"holy\": 44287, \"\\u0120underdog\": 44288, \"\\u0120Slater\": 44289, \"\\u0120Provide\": 44290, \"\\u0120Amar\": 44291, \"ressor\": 44292, \"\\u00e5\\u012e\": 44293, \"onga\": 44294, \"\\u0120timid\": 44295, \"\\u0120piety\": 44296, \"\\u0120Dek\": 44297, \"\\u0120surging\": 44298, \"azo\": 44299, \"\\u0120610\": 44300, \"\\u0120desks\": 44301, \"\\u0120Spokane\": 44302, \"\\u0120Anfield\": 44303, \"\\u0120warships\": 44304, \"\\u0120Cobra\": 44305, \"\\u0120arming\": 44306, \"clusively\": 44307, \"\\u0120Badge\": 44308, \"agascar\": 44309, \"\\u0120PRESS\": 44310, \"\\u0120McKenzie\": 44311, \"\\u0120Ferdinand\": 44312, \"burning\": 44313, \"Afee\": 44314, \"\\u0120tyrann\": 44315, \"\\u0120Iw\": 44316, \"\\u0120Boone\": 44317, \"1007\": 44318, \"\\u0120Rept\": 44319, \"\\u010a\\u00c2\\u0142\": 44320, \"\\u0120caravan\": 44321, \"\\u0120Dill\": 44322, \"\\u0120Bundesliga\": 44323, \"Chuck\": 44324, \"\\u0120healer\": 44325, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u0128\": 44326, \"\\u0120Hobby\": 44327, \"\\u0120negate\": 44328, \"\\u0120critiques\": 44329, \"sectional\": 44330, \"mopolitan\": 44331, \"\\u0120dx\": 44332, \"\\u0120outsourcing\": 44333, \"\\u0120Cipher\": 44334, \"tap\": 44335, \"Sharp\": 44336, \"\\u0120upbeat\": 44337, \"\\u0120hangar\": 44338, \"\\u0120cruising\": 44339, \"\\u0120Niagara\": 44340, \"\\u0120342\": 44341, \"illus\": 44342, \"\\u0120Sv\": 44343, \"\\u0120subtitles\": 44344, \"\\u0120squared\": 44345, \"\\u0120bookstore\": 44346, \"\\u0120revolutionaries\": 44347, \"\\u0120Carlton\": 44348, \"abal\": 44349, \"Utah\": 44350, \"\\u0120despise\": 44351, \"\\u0120UM\": 44352, \"consider\": 44353, \"aido\": 44354, \"\\u0120carts\": 44355, \"\\u0120Turtles\": 44356, \"Training\": 44357, \"\\u0120honorary\": 44358, \"\\u00c2\\u00a2\": 44359, \"\\u0120triangles\": 44360, \"422\": 44361, \"\\u0120reprinted\": 44362, \"\\u0120graceful\": 44363, \"\\u0120Mongolia\": 44364, \"\\u0120disruptions\": 44365, \"\\u0120Boh\": 44366, \"\\u0120349\": 44367, \"\\u0120drains\": 44368, \"\\u0120consulate\": 44369, \"\\u0120bends\": 44370, \"\\u0120mafia\": 44371, \"uron\": 44372, \"\\u0120Fulton\": 44373, \"misc\": 44374, \"\\u0120renal\": 44375, \"\\u0120inaction\": 44376, \"cking\": 44377, \"\\u0120photons\": 44378, \"\\u0120bruised\": 44379, \"\\u0120Codes\": 44380, \"ogi\": 44381, \"\\u0120nests\": 44382, \"\\u0120Lovely\": 44383, \"\\u0120Libre\": 44384, \"\\u0120Daryl\": 44385, \"\\u0120###\": 44386, \"Sys\": 44387, \".,\\\"\": 44388, \"\\u0120freezes\": 44389, \"establishment\": 44390, \"andowski\": 44391, \"\\u0120cumbers\": 44392, \"\\u0120Starg\": 44393, \"\\u0120Bombs\": 44394, \"\\u0120legions\": 44395, \"\\u0120handwriting\": 44396, \"\\u0120grun\": 44397, \"\\u0120Cah\": 44398, \"sequent\": 44399, \"\\u0120moth\": 44400, \"\\u0120MSM\": 44401, \"Insert\": 44402, \"Fif\": 44403, \"\\u0120motel\": 44404, \"\\u0120dexter\": 44405, \"\\u0120Bild\": 44406, \"heartedly\": 44407, \"\\u0120prope\": 44408, \"\\u0120Texture\": 44409, \"\\u0120Junction\": 44410, \"ynthesis\": 44411, \"ocard\": 44412, \"\\u0120Vera\": 44413, \"\\u0120Barth\": 44414, \"\\u0120\\u00ce\\u00bcg\": 44415, \"\\u0120lashed\": 44416, \"\\u0120351\": 44417, \"\\u0120Zamb\": 44418, \"\\u0120Staples\": 44419, \"\\u0120Cortex\": 44420, \"\\u0120Corker\": 44421, \"\\u0120continuum\": 44422, \"\\u0120WRITE\": 44423, \"unta\": 44424, \"ridor\": 44425, \"\\u0120deems\": 44426, \"033\": 44427, \"\\u0120GOLD\": 44428, \"pas\": 44429, \"\\u0120repressive\": 44430, \"\\u00e3\\u0125\\u0128\\u00e3\\u0124\\u00a3\": 44431, \"\\u0120baffled\": 44432, \"Scar\": 44433, \"\\u0120crave\": 44434, \"\\u0120______\": 44435, \"\\u0120entrepreneurship\": 44436, \"\\u0120Directorate\": 44437, \"\\u0120'[\": 44438, \"\\u0120vines\": 44439, \"\\u0120ascended\": 44440, \"\\u0120GROUP\": 44441, \"\\u0120Goodbye\": 44442, \"\\u0120dogged\": 44443, \"\\u00e3\\u0125\\u00b4\\u00e3\\u0124\\u00a1\": 44444, \"Manufact\": 44445, \"\\u0120unimaginable\": 44446, \"riots\": 44447, \"ierrez\": 44448, \"\\u0120relativity\": 44449, \"\\u0120Crafting\": 44450, \"raught\": 44451, \"uden\": 44452, \"cookie\": 44453, \"\\u0120assassins\": 44454, \"\\u0120dissatisfied\": 44455, \"acci\": 44456, \"\\u0120conduit\": 44457, \"Spread\": 44458, \"\\u0120Rican\": 44459, \"nice\": 44460, \"izzle\": 44461, \"\\u0120scares\": 44462, \"\\u0120WHY\": 44463, \"phans\": 44464, \"535\": 44465, \"\\u0120protracted\": 44466, \"\\u0120Kristen\": 44467, \"536\": 44468, \"\\u0120Scrib\": 44469, \"\\u0120Neh\": 44470, \"\\u0120twenties\": 44471, \"\\u0120predicament\": 44472, \"\\u0120handcuffs\": 44473, \"\\u0120fruitful\": 44474, \"\\u0120UL\": 44475, \"\\u0120Ludwig\": 44476, \"\\u0120attest\": 44477, \"\\u0120Breaker\": 44478, \"\\u0120biologically\": 44479, \"\\u0120Dealer\": 44480, \"\\u0120renovations\": 44481, \"fw\": 44482, \"essen\": 44483, \"Alice\": 44484, \"\\u0120Henri\": 44485, \"\\u0120unilaterally\": 44486, \"\\u0120Sidd\": 44487, \"hai\": 44488, \"\\u0120Stretch\": 44489, \"Sales\": 44490, \"\\u0120cumbersome\": 44491, \"\\u0120Javier\": 44492, \"\\u0120trendy\": 44493, \"\\u0120rotting\": 44494, \"\\u0120Challenges\": 44495, \"\\u0120scraps\": 44496, \"\\u0120facets\": 44497, \"\\u0120Veronica\": 44498, \"\\u0120Verge\": 44499, \"\\u0120Sana\": 44500, \"Alien\": 44501, \"\\u0120Rih\": 44502, \"\\u0120radial\": 44503, \"ectar\": 44504, \"\\u0120630\": 44505, \"cli\": 44506, \"Marie\": 44507, \"\\u0120wildfire\": 44508, \"\\u0120Cato\": 44509, \"hander\": 44510, \"\\u0120waitress\": 44511, \"\\u0120chops\": 44512, \"\\u0120SECTION\": 44513, \"\\u0120bluntly\": 44514, \"\\u0120Catalog\": 44515, \"nian\": 44516, \"study\": 44517, \"\\u0120patrolling\": 44518, \"\\u0120Tenth\": 44519, \"nexus\": 44520, \"\\u0120NON\": 44521, \"opsy\": 44522, \"\\u0120scathing\": 44523, \"sie\": 44524, \"\\u0120deteriorated\": 44525, \"VB\": 44526, \"Nazis\": 44527, \"\\u0120depictions\": 44528, \"\\u0120authenticated\": 44529, \"\\u0120Conce\": 44530, \"krit\": 44531, \"\\u0120promulg\": 44532, \"\\u0120LONG\": 44533, \"UFC\": 44534, \"\\u0120Visitors\": 44535, \"\\u0120Recall\": 44536, \"\\u0120rehabilit\": 44537, \"\\u0120SLI\": 44538, \"\\u0120glacier\": 44539, \"\\u0120Bite\": 44540, \"\\u0120503\": 44541, \"\\u0120vomit\": 44542, \"\\u0120fermented\": 44543, \"\\u0120Khalid\": 44544, \"\\u0120graded\": 44545, \"\\u0120Magicka\": 44546, \"\\u0120Ichigo\": 44547, \"powerful\": 44548, \"icators\": 44549, \"753\": 44550, \"\\u0120shrew\": 44551, \"\\u0120356\": 44552, \"\\u0120legalizing\": 44553, \"\\u0120allotted\": 44554, \"\\u0120Archdemon\": 44555, \"ithing\": 44556, \"iggurat\": 44557, \"VOL\": 44558, \"Leod\": 44559, \"\\u0120oily\": 44560, \"\\u0120inducing\": 44561, \"\\u0120amygdala\": 44562, \"\\u0120admins\": 44563, \"\\u0120Acquisition\": 44564, \"CAN\": 44565, \"\\u0120schematic\": 44566, \"\\u0120moan\": 44567, \"\\u0120Cameroon\": 44568, \"\\u0120tink\": 44569, \"\\u0120merry\": 44570, \"\\u0120butterflies\": 44571, \"\\u0120Goff\": 44572, \"\\u0120workspace\": 44573, \"\\u0120Corona\": 44574, \"\\u0120javascript\": 44575, \"\\u0120Dolphin\": 44576, \"\\u0120Cantor\": 44577, \"464\": 44578, \"toe\": 44579, \"APS\": 44580, \"\\u0120Aging\": 44581, \"\\u0120padded\": 44582, \"\\u0120Zheng\": 44583, \"\\u0120Held\": 44584, \"\\u0120estranged\": 44585, \"\\u0120770\": 44586, \".}\": 44587, \"\\u0120Dunham\": 44588, \"\\u0120smokes\": 44589, \"\\u0120capitals\": 44590, \"undai\": 44591, \"Shin\": 44592, \"\\u0120Founding\": 44593, \"\\u0120entitle\": 44594, \"\\u0120centerpiece\": 44595, \"Discover\": 44596, \"\\u0120thereto\": 44597, \"alert\": 44598, \"\\u0120Nou\": 44599, \"\\u0120Analyst\": 44600, \"lc\": 44601, \"FH\": 44602, \"FIELD\": 44603, \"\\u0120POV\": 44604, \"gray\": 44605, \"\\u0120arcs\": 44606, \"\\u0120HOT\": 44607, \"\\u0120rs\": 44608, \"\\u0120obligatory\": 44609, \"\\u0120Architects\": 44610, \"\\u0120Sven\": 44611, \"\\u0120FEC\": 44612, \"0200\": 44613, \"Christmas\": 44614, \"\\u0120Albania\": 44615, \"ratom\": 44616, \"587\": 44617, \"\\u0120hardships\": 44618, \"\\u0120autos\": 44619, \"\\u0120Charges\": 44620, \"\\u0120apes\": 44621, \"\\u0120376\": 44622, \"wallet\": 44623, \"\\u0120intoxication\": 44624, \"\\u0120goblin\": 44625, \"\\u0120570\": 44626, \"++++++++++++++++\": 44627, \"\\u0120Yelp\": 44628, \"\\u0120Magnetic\": 44629, \"\\u0120Briggs\": 44630, \"Rail\": 44631, \"\\u0120spawns\": 44632, \"\\u0120Wiggins\": 44633, \"\\u0120showcased\": 44634, \"\\u0120resorted\": 44635, \"uben\": 44636, \"\\u0120whipping\": 44637, \"\\u0120imitate\": 44638, \"\\u0120digestion\": 44639, \"\\u0120USPS\": 44640, \"\\u0120Gest\": 44641, \"\\u0120yea\": 44642, \"\\u0120Tight\": 44643, \"indal\": 44644, \"icas\": 44645, \"`.\": 44646, \"CAST\": 44647, \"'';\": 44648, \"\\u0120Fet\": 44649, \"opathic\": 44650, \"Invalid\": 44651, \"\\u0120regretted\": 44652, \"\\u0120broccoli\": 44653, \"\\u0120Scores\": 44654, \"eve\": 44655, \"\\u0120postings\": 44656, \"\\u0120accumulating\": 44657, \"\\u0120needless\": 44658, \"elfth\": 44659, \"\\u0120mayors\": 44660, \"\\u0120scrib\": 44661, \"\\u0120anecdotes\": 44662, \"\\u0120botched\": 44663, \"\\u0120Ribbon\": 44664, \"\\u0120Constantine\": 44665, \"iuses\": 44666, \"esses\": 44667, \"\\u0120devise\": 44668, \"Compared\": 44669, \"\\u0120pudding\": 44670, \"\\u0120garg\": 44671, \"\\u0120evoke\": 44672, \"797\": 44673, \"\\u0120detox\": 44674, \"909\": 44675, \"\\u0120Pieces\": 44676, \"\\u0120McCartney\": 44677, \"\\u0120metast\": 44678, \"\\u0120Krypt\": 44679, \"POR\": 44680, \"\\u0120tending\": 44681, \"\\u0120Merchants\": 44682, \"Proof\": 44683, \"\\u0120Varg\": 44684, \"\\u0120Portable\": 44685, \"\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u0128\\u00e3\\u0124\\u00a3\": 44686, \"Brain\": 44687, \"2500\": 44688, \"\\u0120foliage\": 44689, \"\\u00d8\\u00b9\": 44690, \"\\u0120mentors\": 44691, \"\\u0120Aires\": 44692, \"\\u0120minimalist\": 44693, \"\\u0120ingested\": 44694, \"\\u0120Trojan\": 44695, \"\\u0120Qian\": 44696, \"involved\": 44697, \"027\": 44698, \"\\u0120eroded\": 44699, \"RAFT\": 44700, \"\\u0120blurry\": 44701, \"Mob\": 44702, \"\\u0120buffet\": 44703, \"\\u0120Fnatic\": 44704, \"aea\": 44705, \"KNOWN\": 44706, \"\\u0120Init\": 44707, \"safety\": 44708, \"enum\": 44709, \"ACTION\": 44710, \"\\u0120Crusher\": 44711, \"\\u0120Dates\": 44712, \"\\u0120................\": 44713, \"calling\": 44714, \"akov\": 44715, \"\\u0120ventured\": 44716, \"\\u0120555\": 44717, \"auga\": 44718, \"Hart\": 44719, \"\\u0120Aero\": 44720, \"MAC\": 44721, \"\\u0120thinly\": 44722, \"\\u0120arra\": 44723, \"STATE\": 44724, \"ilde\": 44725, \"\\u0120Jacqu\": 44726, \"\\u0120Females\": 44727, \"\\u0120theorem\": 44728, \"\\u0120346\": 44729, \"\\u0120smartest\": 44730, \"\\u0120PUBLIC\": 44731, \"\\u0120Kron\": 44732, \"\\u0120Bits\": 44733, \"\\u0120Vessel\": 44734, \"\\u0120Telephone\": 44735, \"\\u0120decap\": 44736, \"\\u0120adjunct\": 44737, \"\\u0120SEN\": 44738, \"merga\": 44739, \"\\u0120redacted\": 44740, \"\\u0120prehistoric\": 44741, \"\\u0120explanatory\": 44742, \"\\u0120Runs\": 44743, \"\\u0120Uttar\": 44744, \"\\u0120Manny\": 44745, \"\\u0120AUTHOR\": 44746, \"\\u0120Unleashed\": 44747, \"\\u0120Bowling\": 44748, \"beans\": 44749, \"793\": 44750, \"\\u0120universes\": 44751, \"\\u0120sensit\": 44752, \"\\u0120Kung\": 44753, \"repeat\": 44754, \"ctrl\": 44755, \"\\u0120paced\": 44756, \"\\u0120fuller\": 44757, \"Clock\": 44758, \"\\u0120recomb\": 44759, \"\\u0120Faul\": 44760, \"\\u0120Bunker\": 44761, \"\\u0120pooled\": 44762, \"\\u0120ana\": 44763, \"\\u0120Mouth\": 44764, \"LLOW\": 44765, \"humane\": 44766, \"\\u0120bulldo\": 44767, \"\\u0120Michaels\": 44768, \"fam\": 44769, \"\\u0120wrecked\": 44770, \"\\u0120portrays\": 44771, \"\\u0120Whale\": 44772, \"\\u0120Hes\": 44773, \"\\u0120guesses\": 44774, \"\\u0120Browse\": 44775, \"\\u0120LAPD\": 44776, \"\\u0120consequential\": 44777, \"\\u0120Innocent\": 44778, \"\\u0120DRAG\": 44779, \"\\u0120transgress\": 44780, \"\\u0120Oaks\": 44781, \"\\u0120trivia\": 44782, \"\\u0120Reson\": 44783, \"\\u0120ADS\": 44784, \"--+\": 44785, \"\\u0120Toll\": 44786, \"\\u0120grasping\": 44787, \"\\u0120THEM\": 44788, \"\\u0120Tags\": 44789, \"\\u0120Conclusion\": 44790, \"\\u0120practicable\": 44791, \"\\u0120hoop\": 44792, \"\\u0120unintentionally\": 44793, \"\\u0120ignite\": 44794, \"\\u0120Mov\": 44795, \"urized\": 44796, \"lehem\": 44797, \"Termin\": 44798, \"\\u0120colourful\": 44799, \"\\u0120Linear\": 44800, \"\\u0120Ellie\": 44801, \"Gy\": 44802, \"\\u0120manpower\": 44803, \"\\u0120js\": 44804, \"\\u0120emoji\": 44805, \"\\u0120SHARES\": 44806, \"_.\": 44807, \"00007\": 44808, \"\\u0120sophistication\": 44809, \"\\u0120underscore\": 44810, \"\\u0120practise\": 44811, \"\\u0120blob\": 44812, \"opens\": 44813, \"Ukraine\": 44814, \"Keeping\": 44815, \"YC\": 44816, \"JR\": 44817, \"ultimate\": 44818, \"Claim\": 44819, \"\\u0120automobiles\": 44820, \"993\": 44821, \"steel\": 44822, \"\\u0120parting\": 44823, \"\\u0120Lank\": 44824, \"...?\": 44825, \"\\u0120385\": 44826, \"\\u0120remembrance\": 44827, \"\\u0120eased\": 44828, \"\\u0120covari\": 44829, \"\\u0120Sind\": 44830, \"Effective\": 44831, \"\\u0120dissemination\": 44832, \"\\u0120Moose\": 44833, \"\\u0120Clapper\": 44834, \"brates\": 44835, \"Apply\": 44836, \"\\u0120invis\": 44837, \"\\u0120worsened\": 44838, \"\\u00e2\\u0122\\u0136-\": 44839, \"\\u0120legislator\": 44840, \"\\u0120Lol\": 44841, \"\\u0120Rowe\": 44842, \"\\u0120dealership\": 44843, \"umar\": 44844, \"idences\": 44845, \"\\u0120investigates\": 44846, \"\\u0120cascade\": 44847, \"\\u0120bidder\": 44848, \"\\u0120BEN\": 44849, \"Ironically\": 44850, \"\\u0120presiding\": 44851, \"\\u0120ding\": 44852, \"\\u0120contradicted\": 44853, \"\\u0120shuts\": 44854, \"\\u0120FIX\": 44855, \"\\u0120366\": 44856, \"District\": 44857, \"\\u0120sinful\": 44858, \"\\u0120Charisma\": 44859, \"oops\": 44860, \"\\u0120totality\": 44861, \"\\u0120restitution\": 44862, \"\\u0120Optimus\": 44863, \"\\u0120Dah\": 44864, \"\\u0120clueless\": 44865, \"urned\": 44866, \"\\u0120nutrit\": 44867, \"\\u0120landowners\": 44868, \"\\u0120flushed\": 44869, \"\\u0120broaden\": 44870, \"mie\": 44871, \"\\u0120println\": 44872, \"\\u0120nig\": 44873, \"\\u0120Corpus\": 44874, \"Jen\": 44875, \"\\u0120proto\": 44876, \"\\u0120Wikimedia\": 44877, \"\\u0120Palo\": 44878, \"COR\": 44879, \"\\u0120storylines\": 44880, \"\\u0120evangelicals\": 44881, \"\\u0120Darrell\": 44882, \"\\u0120rotor\": 44883, \"\\u0120HW\": 44884, \"skilled\": 44885, \"eryl\": 44886, \"\\u0120begg\": 44887, \"\\u0120Blumenthal\": 44888, \"\\u0120weaving\": 44889, \"\\u0120downwards\": 44890, \"\\u0120Jacket\": 44891, \"\\u0120ANGEL\": 44892, \"Technology\": 44893, \"\\u0120esoteric\": 44894, \"aldehyde\": 44895, \"\\u0120furiously\": 44896, \"\\u0120foreigner\": 44897, \"Weak\": 44898, \"CHO\": 44899, \"\\u0120Hound\": 44900, \"Experience\": 44901, \"\\u0120Playstation\": 44902, \"\\u0120MIA\": 44903, \"\\u0120Ung\": 44904, \"cloth\": 44905, \"agall\": 44906, \"\\u0120calming\": 44907, \"izens\": 44908, \"Struct\": 44909, \"\\u0120Witches\": 44910, \"\\u0120Celebration\": 44911, \"\\u0120..............\": 44912, \"ptroller\": 44913, \"\\u0120TCU\": 44914, \"\\u0120bunny\": 44915, \"\\u00e3\\u0125\\u012f\": 44916, \"utorial\": 44917, \"\\u0120upscale\": 44918, \"\\u0120Sta\": 44919, \"\\u0120Colossus\": 44920, \"\\u0120chloride\": 44921, \"\\u0120Zac\": 44922, \"\\u0120Reasons\": 44923, \"\\u0120Brookings\": 44924, \"\\u0120WHITE\": 44925, \"][/\": 44926, \"\\u0120Lose\": 44927, \"905\": 44928, \"\\u0120underside\": 44929, \"ernels\": 44930, \"\\u0120vape\": 44931, \"dozen\": 44932, \"uppet\": 44933, \"\\u0120STOP\": 44934, \"matical\": 44935, \"\\u0120Statements\": 44936, \"heddar\": 44937, \"PAC\": 44938, \"Customer\": 44939, \"\\u0120memos\": 44940, \"\\u0120PJ\": 44941, \"endars\": 44942, \"\\u0120Limits\": 44943, \"laugh\": 44944, \"\\u0120stabilized\": 44945, \"\\u0120ALEC\": 44946, \"YA\": 44947, \"Upgrade\": 44948, \"alam\": 44949, \"\\u0120techno\": 44950, \"\\u0120anew\": 44951, \"foreseen\": 44952, \"\\u0120collegiate\": 44953, \"\\u0120Pyro\": 44954, \"\\u0120Dism\": 44955, \"\\u0120frontline\": 44956, \"\\u0120ammonia\": 44957, \"IU\": 44958, \"Quite\": 44959, \"Johnny\": 44960, \"assin\": 44961, \"GOP\": 44962, \"\\u0120Styles\": 44963, \"\\u0120Sovereign\": 44964, \"acterial\": 44965, \"549\": 44966, \"\\u0120RIP\": 44967, \"\\u0120Lists\": 44968, \"\\u0120364\": 44969, \"\\u0120Recep\": 44970, \"socket\": 44971, \"\\u0120Byrd\": 44972, \"\\u0120Candle\": 44973, \"Ancient\": 44974, \"\\u0120appellant\": 44975, \"enforcement\": 44976, \"acea\": 44977, \"anski\": 44978, \"\\u0120olds\": 44979, \"886\": 44980, \"\\u0120slurs\": 44981, \"\\u0120empires\": 44982, \"\\u0120buckle\": 44983, \"\\u0120alienation\": 44984, \"\\u0120Aberdeen\": 44985, \"\\u0120unicorn\": 44986, \"\\u0120overriding\": 44987, \"\\u0120LX\": 44988, \"ppa\": 44989, \"\\u0120despised\": 44990, \"\\u0120Bugs\": 44991, \"\\u0120BST\": 44992, \"Southern\": 44993, \"533\": 44994, \"\\u0120hallmark\": 44995, \"\\u0120Poster\": 44996, \"\\u0120stemmed\": 44997, \"\\u0120principals\": 44998, \"\\u0120TECH\": 44999, \"\\u0120Sandwich\": 45000, \"Italy\": 45001, \"\\u0120cheesy\": 45002, \"\\u0120SetTextColor\": 45003, \"\\u0120Protective\": 45004, \"\\u0120Cohn\": 45005, \"JO\": 45006, \"aptop\": 45007, \"Reason\": 45008, \"Leader\": 45009, \"\\u0120Understand\": 45010, \"\\u0120Fridays\": 45011, \"\\u0120Continuous\": 45012, \"\\u0120clipping\": 45013, \"\\u0120Rye\": 45014, \"\\u0120berth\": 45015, \"timer\": 45016, \"annis\": 45017, \"react\": 45018, \"\\u0120buffalo\": 45019, \"\\u0120Paras\": 45020, \"\\u0120655\": 45021, \"\\u0120presided\": 45022, \"\\u0120Sunrise\": 45023, \"\\u0120vets\": 45024, \"\\u0120cloves\": 45025, \"\\u0120McCull\": 45026, \"Strength\": 45027, \"GAN\": 45028, \"\\u0120illiter\": 45029, \"\\u0120Pricing\": 45030, \"l\\u00c3\\u00a9\": 45031, \"\\u0120resistor\": 45032, \"\\u0120brun\": 45033, \"\\u0120Suffolk\": 45034, \"\\u00d1\\u012d\": 45035, \"\\u0120Liver\": 45036, \"Released\": 45037, \"\\u0120whats\": 45038, \"860\": 45039, \"\\u0120Measures\": 45040, \"\\u0120denouncing\": 45041, \"\\u0120Ryzen\": 45042, \"\\u0120souven\": 45043, \"\\u0120caregivers\": 45044, \"chini\": 45045, \"\\u0120Scarlett\": 45046, \"\\u0120trough\": 45047, \"Congratulations\": 45048, \"\\u0120taxis\": 45049, \"\\u0120Tradition\": 45050, \"jit\": 45051, \"\\u0120tabletop\": 45052, \"\\u0120hitherto\": 45053, \"\\u0120disinformation\": 45054, \"offensive\": 45055, \"hra\": 45056, \"\\u0120DISTRICT\": 45057, \"\\u0120complicate\": 45058, \"chenko\": 45059, \"\\u0120Reconstruction\": 45060, \"\\u0120palpable\": 45061, \"\\u0120ausp\": 45062, \"\\u0120428\": 45063, \"\\u0120showcases\": 45064, \"\\u0120Publication\": 45065, \"knowledge\": 45066, \"innon\": 45067, \"419\": 45068, \"\\u0120retrieval\": 45069, \"anders\": 45070, \"\\u0120refute\": 45071, \"\\u0120inquired\": 45072, \"gur\": 45073, \"\\u0120negativity\": 45074, \"\\u0120conserve\": 45075, \"\\u0120afterlife\": 45076, \"\\u0120presupp\": 45077, \"\\u0120Gillespie\": 45078, \"\\u0120mt\": 45079, \"\\u0120DN\": 45080, \"Tap\": 45081, \"\\u0120perpend\": 45082, \"\\u0120Smy\": 45083, \"doesn\": 45084, \"\\u0120spilling\": 45085, \"\\u0120hypers\": 45086, \"Kate\": 45087, \"\\u00c2\\u00ae,\": 45088, \"kept\": 45089, \"\\u0120Powered\": 45090, \"\\u0120ja\": 45091, \"\\u0120Klux\": 45092, \"arde\": 45093, \"aban\": 45094, \"\\u0120444\": 45095, \"\\u0120flattened\": 45096, \"\\u0120Improvements\": 45097, \"urga\": 45098, \"\\u0120Kund\": 45099, \"\\u0120inscribed\": 45100, \"\\u0120facult\": 45101, \"\\u0120unprepared\": 45102, \"\\u0120Consumers\": 45103, \"\\u0120satisfies\": 45104, \"\\u0120pulmonary\": 45105, \"\\u0120infiltration\": 45106, \"\\u0120externally\": 45107, \"\\u0120congratulations\": 45108, \"aghan\": 45109, \"\\u0120airliner\": 45110, \"\\u0120flung\": 45111, \"\\u0120flyers\": 45112, \"GD\": 45113, \"\\u0120snippets\": 45114, \"\\u0120recursive\": 45115, \"\\u0120mastering\": 45116, \"Lex\": 45117, \"\\u0120overtly\": 45118, \"vg\": 45119, \"\\u0120luckily\": 45120, \"\\u0120encro\": 45121, \"\\u0120Lancet\": 45122, \"\\u0120Abyssal\": 45123, \"functional\": 45124, \"\\u0120sow\": 45125, \"\\u0120squid\": 45126, \"\\u0120narration\": 45127, \"\\u0120naughty\": 45128, \"\\u0120Honour\": 45129, \"\\u0120Spartans\": 45130, \"\\u0120shatter\": 45131, \"\\u0120Tacoma\": 45132, \"\\u0120Calories\": 45133, \"\\u0120Races\": 45134, \"Submit\": 45135, \"\\u0120purposefully\": 45136, \"wav\": 45137, \"\\u0120Yok\": 45138, \"Fest\": 45139, \"\\u0120Gerr\": 45140, \"Metro\": 45141, \"\\u0120itiner\": 45142, \"famous\": 45143, \"\\u0120\\\"{\": 45144, \"inline\": 45145, \"washer\": 45146, \"Issue\": 45147, \"\\u0120CLIENT\": 45148, \"ozo\": 45149, \"Versions\": 45150, \"725\": 45151, \"\\u0120Glock\": 45152, \"\\u0120shielded\": 45153, \"\\u0120PCR\": 45154, \"ENCY\": 45155, \"\\u0120Weld\": 45156, \"\\u0120Simpl\": 45157, \"\\u0120redirected\": 45158, \"\\u0120Kham\": 45159, \"\\u0120(>\": 45160, \"\\u0120labou\": 45161, \"\\u0120diapers\": 45162, \"ssl\": 45163, \"\\u0120cellar\": 45164, \"organisms\": 45165, \"oresc\": 45166, \"\\u0120Berks\": 45167, \"didn\": 45168, \"Shipping\": 45169, \"Chest\": 45170, \"\\u0120undone\": 45171, \"\\u0120millionaire\": 45172, \"\\u0120cords\": 45173, \"\\u0120Younger\": 45174, \"appropriately\": 45175, \"\\u0120sequels\": 45176, \"uve\": 45177, \"anticipated\": 45178, \"\\u0120lewd\": 45179, \"\\u0120Shirt\": 45180, \"\\u0120Dmitry\": 45181, \"Veter\": 45182, \"\\u0120slaying\": 45183, \"\\u0120Yar\": 45184, \"\\u0120complication\": 45185, \"Iowa\": 45186, \"\\u0120Erica\": 45187, \"\\u0120BLM\": 45188, \"girlfriend\": 45189, \"bodied\": 45190, \"626\": 45191, \"1963\": 45192, \"\\u0120intermediary\": 45193, \"\\u0120consolation\": 45194, \"Mask\": 45195, \"\\u0120Siem\": 45196, \"owan\": 45197, \"Beginning\": 45198, \"\\u0120fixme\": 45199, \"\\u0120culminated\": 45200, \"\\u0120conduc\": 45201, \"\\u0120Volunteer\": 45202, \"\\u0120positional\": 45203, \"\\u0120greets\": 45204, \"\\u0120Definitions\": 45205, \"\\u0120thinker\": 45206, \"\\u0120ingenuity\": 45207, \"\\u0120freshmen\": 45208, \"\\u0120Moments\": 45209, \"\\u0120357\": 45210, \"ateurs\": 45211, \"\\u0120FedEx\": 45212, \"sg\": 45213, \"694\": 45214, \"\\u0120dwindling\": 45215, \"\\u0120BOX\": 45216, \"selage\": 45217, \"\\u0120tmp\": 45218, \"\\u0120sten\": 45219, \"\\u0120Sut\": 45220, \"\\u0120neighbourhoods\": 45221, \"\\u0120classmate\": 45222, \"fledged\": 45223, \"\\u0120leftists\": 45224, \"\\u0120climates\": 45225, \"ATHER\": 45226, \"\\u0120Scythe\": 45227, \"uliffe\": 45228, \"\\u0120sag\": 45229, \"\\u0120hopped\": 45230, \"\\u0120Ft\": 45231, \"\\u0120Eck\": 45232, \"\\u0120CK\": 45233, \"\\u0120Doomsday\": 45234, \"kids\": 45235, \"\\u0120gasped\": 45236, \"\\u0120moniker\": 45237, \"\\u0120Lod\": 45238, \"\\u0120CFL\": 45239, \"tions\": 45240, \"rums\": 45241, \"folios\": 45242, \"\\u0120md\": 45243, \"\\u0120uncanny\": 45244, \"\\u0120transports\": 45245, \"\\u0120Labrador\": 45246, \"\\u0120railways\": 45247, \"\\u0120appliance\": 45248, \"\\u0120CTRL\": 45249, \"\\u00e6\\u0122\": 45250, \"Population\": 45251, \"\\u0120Confederacy\": 45252, \"\\u0120unbearable\": 45253, \"\\u0120dorsal\": 45254, \"\\u0120Inform\": 45255, \"opted\": 45256, \"\\u0120KILL\": 45257, \"Marx\": 45258, \"\\u0120hypocritical\": 45259, \"qus\": 45260, \"\\u0120Numerous\": 45261, \"\\u0120Georgian\": 45262, \"\\u0120Ambrose\": 45263, \"\\u0120Loch\": 45264, \"\\u0120gubernatorial\": 45265, \"\\u0120Xeon\": 45266, \"\\u0120Supports\": 45267, \"enser\": 45268, \"eely\": 45269, \"\\u0120Avenger\": 45270, \"1965\": 45271, \"Army\": 45272, \"\\u0120juxtap\": 45273, \"\\u0120chopping\": 45274, \"\\u0120Splash\": 45275, \"\\u0120Sustainable\": 45276, \"\\u0120Finch\": 45277, \"\\u01201861\": 45278, \"ictive\": 45279, \"atmeal\": 45280, \"\\u0120Gohan\": 45281, \"\\u0120lightsaber\": 45282, \"\\u0120GPA\": 45283, \"ugu\": 45284, \"\\u0120REPL\": 45285, \"variable\": 45286, \"\\u0120herpes\": 45287, \"\\u0120deserts\": 45288, \"aciously\": 45289, \"\\u0120situational\": 45290, \"weekly\": 45291, \"obl\": 45292, \"\\u0120textile\": 45293, \"\\u0120Cornwall\": 45294, \"\\u0120contraceptives\": 45295, \"\\u0120Ake\": 45296, \"]-\": 45297, \"\\u00e4\\u00b9\\u012d\": 45298, \":,\": 45299, \"\\u0120Wem\": 45300, \"\\u0120Bihar\": 45301, \"\\u0120'.\": 45302, \"\\u0120bere\": 45303, \"\\u0120analogue\": 45304, \"\\u0120Cookies\": 45305, \"\\u0120takeoff\": 45306, \"Wheel\": 45307, \"\\u0120majestic\": 45308, \"\\u0120commuting\": 45309, \"023\": 45310, \"\\u0120Corpse\": 45311, \"assment\": 45312, \"mini\": 45313, \"\\u0120gorilla\": 45314, \"\\u0120Alas\": 45315, \"eree\": 45316, \"\\u0120acquaintances\": 45317, \"\\u0120Advantage\": 45318, \"\\u0120spiritually\": 45319, \"\\u0120eyed\": 45320, \"pmwiki\": 45321, \"\\u0120Ender\": 45322, \"\\u0120translucent\": 45323, \"\\u0120nighttime\": 45324, \"\\u0120IMAGES\": 45325, \"545\": 45326, \"\\u0120Kamp\": 45327, \"\\u0120Freak\": 45328, \"\\u0120ig\": 45329, \"Portland\": 45330, \"432\": 45331, \"\\u0120Mata\": 45332, \"\\u0120marines\": 45333, \"\\u0120hors\": 45334, \"aterasu\": 45335, \"\\u0120Attribution\": 45336, \"\\u0120---------\": 45337, \"\\u0120kins\": 45338, \"\\u0120BELOW\": 45339, \"+++\": 45340, \"\\u0120reeling\": 45341, \"oled\": 45342, \"\\u0120clutter\": 45343, \"\\u0120Relative\": 45344, \"\\u0120427\": 45345, \"BUS\": 45346, \"\\u0120avert\": 45347, \"\\u0120Cheong\": 45348, \"\\u0120Able\": 45349, \"\\u0120Pryor\": 45350, \"Developer\": 45351, \"\\u0120encyclopedia\": 45352, \"\\u0120USAF\": 45353, \"\\u0120Garry\": 45354, \"Spain\": 45355, \"Blocks\": 45356, \"\\u0120exposition\": 45357, \"\\u0120GamerGate\": 45358, \"WOR\": 45359, \"\\u0120stockpile\": 45360, \"\\u0120clothed\": 45361, \"\\u0120Tone\": 45362, \"\\u0120Rue\": 45363, \"tumblr\": 45364, \"\\u0120treacherous\": 45365, \"\\u0120frying\": 45366, \"\\u00d1\\u012e\": 45367, \"\\u0120Sph\": 45368, \"\\u0120restraints\": 45369, \"\\u0120embodies\": 45370, \"\\u0120Ges\": 45371, \"Safety\": 45372, \"\\u0120negotiators\": 45373, \"mining\": 45374, \"\\u0120Appalachian\": 45375, \"LOS\": 45376, \"\\u0120Jenna\": 45377, \"\\u0120passers\": 45378, \"\\u00e7\\u012d\": 45379, \"snap\": 45380, \"\\u0120shorten\": 45381, \"creator\": 45382, \"\\u0120innumerable\": 45383, \"utherland\": 45384, \"674\": 45385, \"\\u0120WOM\": 45386, \"\\u0120Ascend\": 45387, \"\\u0120Armory\": 45388, \"\\u0120Transaction\": 45389, \"Kick\": 45390, \"\\u0120suitcase\": 45391, \"dayName\": 45392, \"\\u0120wasteful\": 45393, \"marriage\": 45394, \"\\u0120McCabe\": 45395, \"itech\": 45396, \"\\u0120Oss\": 45397, \"Closure\": 45398, \"\\u0120Treasurer\": 45399, \"\\u0120indecent\": 45400, \"\\u0120Dull\": 45401, \"\\u0120residences\": 45402, \"1959\": 45403, \"\\u0120Settlement\": 45404, \"Hamilton\": 45405, \"\\u0120selfies\": 45406, \"\\u0120Ranking\": 45407, \"\\u0120Barkley\": 45408, \"\\u0120Bore\": 45409, \"\\u0120WCS\": 45410, \"\\u0120Maritime\": 45411, \"\\u0120Huh\": 45412, \"\\u0120Forestry\": 45413, \"\\u0120cultivating\": 45414, \"\\u0120Ballard\": 45415, \"\\u0120garrison\": 45416, \"\\u0120SDL\": 45417, \"930\": 45418, \"\\u0120nascent\": 45419, \"\\u0120irresistible\": 45420, \"\\u0120awfully\": 45421, \"\\\\/\\\\/\": 45422, \"\\u0120equate\": 45423, \"\\u0120anthropology\": 45424, \"\\u0120Sylvia\": 45425, \"\\u0120intestine\": 45426, \"\\u0120innocuous\": 45427, \"cessive\": 45428, \"agra\": 45429, \"\\u0120Metroid\": 45430, \"Grant\": 45431, \"855\": 45432, \"\\u0123\\u0138\": 45433, \"\\u0120\\\"_\": 45434, \"\\u00e3\\u0125\\u0125\\u00e3\\u0125\\u012b\": 45435, \"\\u0120appraisal\": 45436, \"\\u0120Freddy\": 45437, \"046\": 45438, \"\\u0120406\": 45439, \"\\u01201830\": 45440, \"\\u0120docking\": 45441, \"Static\": 45442, \"\\u0120pont\": 45443, \"\\u0120Voltage\": 45444, \"\\u0120Stead\": 45445, \"\\u0120Mortgage\": 45446, \"\\u0120Jonah\": 45447, \"YL\": 45448, \"CLASSIFIED\": 45449, \"\\u0120asbestos\": 45450, \"nikov\": 45451, \"\\u0120collagen\": 45452, \"\\u0120Orbital\": 45453, \"Pocket\": 45454, \"799\": 45455, \"\\u0120hybrids\": 45456, \"inches\": 45457, \"\\u0120invoice\": 45458, \"undy\": 45459, \"\\u0120inequalities\": 45460, \"Trend\": 45461, \"washed\": 45462, \"BALL\": 45463, \"\\u0120lucid\": 45464, \"\\u0120Commentary\": 45465, \"\\u0120witty\": 45466, \"Brandon\": 45467, \"\\u0120bruising\": 45468, \"\\u0120620\": 45469, \"escent\": 45470, \"boxing\": 45471, \"POL\": 45472, \"\\u0120378\": 45473, \"Rect\": 45474, \"\\u0120licences\": 45475, \"\\u0120McGee\": 45476, \"pressed\": 45477, \"Danny\": 45478, \"\\u0120jammed\": 45479, \"ordinate\": 45480, \"\\u0120leth\": 45481, \"\\u0120distinguishes\": 45482, \"\\u0120Yamaha\": 45483, \"ILS\": 45484, \"\\u0120Hume\": 45485, \"\\u0120Categories\": 45486, \"Roberts\": 45487, \"Chart\": 45488, \"\\u0120beetle\": 45489, \"\\u0120Graveyard\": 45490, \"\\u0120($)\": 45491, \"o\\u00c4\\u0141\": 45492, \"\\u0120twilight\": 45493, \"arella\": 45494, \"\\u00e1\\u00bd\": 45495, \"\\u0120booths\": 45496, \"\\u0120HHS\": 45497, \"\\u0120Feldman\": 45498, \"\\u0120excavation\": 45499, \"\\u0120philosophies\": 45500, \"atography\": 45501, \"\\u0120Garage\": 45502, \"technology\": 45503, \"\\u0120unforgettable\": 45504, \"\\u0120verifying\": 45505, \"\\u0120subordinates\": 45506, \"Els\": 45507, \"\\u0120neb\": 45508, \"Gaming\": 45509, \"ENA\": 45510, \"\\u0120Achievement\": 45511, \"itters\": 45512, \"\\u0120Gabe\": 45513, \"\\u0120dumps\": 45514, \"forcer\": 45515, \"\\u0120poignant\": 45516, \"\\u0120MBA\": 45517, \"\\u0120Heidi\": 45518, \"imei\": 45519, \"\\u0120mages\": 45520, \"\\u0120liberate\": 45521, \"\\u0120circumcised\": 45522, \"\\u0120Mermaid\": 45523, \"\\u0120Matth\": 45524, \"together\": 45525, \"\\u0120Wichita\": 45526, \"\\u0120storefront\": 45527, \"\\u0120Adin\": 45528, \"VII\": 45529, \"Fourth\": 45530, \"\\u0120explorers\": 45531, \"WER\": 45532, \"Notable\": 45533, \"Brook\": 45534, \"mens\": 45535, \"Faith\": 45536, \"---------\": 45537, \"\\u0120Jou\": 45538, \"\\u00ac\\u00bc\": 45539, \"\\u0120pineapple\": 45540, \"\\u0120amalg\": 45541, \"eln\": 45542, \"arkable\": 45543, \"\\u0120\\u00e3\\u0124\\u00b5\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u0128\\u00e3\\u0124\\u00a3\": 45544, \"\\u0120\\u00e3\\u0124\\u00b5\\u00e3\\u0125\\u00bc\\u00e3\\u0125\\u0128\\u00e3\\u0124\\u00a3\\u00e3\\u0125\\u00af\\u00e3\\u0125\\u00b3\": 45545, \"\\u0120ovarian\": 45546, \"\\u0120Echoes\": 45547, \"\\u0120haircut\": 45548, \"\\u0120pav\": 45549, \"\\u0120chilled\": 45550, \"anasia\": 45551, \"\\u0120styled\": 45552, \"\\u0120dab\": 45553, \"niper\": 45554, \"\\u0120ministerial\": 45555, \"\\u0120DUP\": 45556, \"Tan\": 45557, \"\\u0120sulph\": 45558, \"\\u0120Deter\": 45559, \"\\u0120Bohem\": 45560, \"odan\": 45561, \"\\u0120educator\": 45562, \"\\u00e2\\u0135\\u013a\": 45563, \"spir\": 45564, \"Chicken\": 45565, \"\\u0120Eleanor\": 45566, \"\\u0120qui\": 45567, \"\\u0120heaviest\": 45568, \"\\u0120grasped\": 45569, \"URA\": 45570, \"\\u0120crooked\": 45571, \"Jessica\": 45572, \"problem\": 45573, \"\\u0120predetermined\": 45574, \"\\u0120maniac\": 45575, \"\\u0120breaths\": 45576, \"\\u0120Lauderdale\": 45577, \"\\u0120hobbies\": 45578, \"yz\": 45579, \"Crime\": 45580, \"\\u0120charisma\": 45581, \"dL\": 45582, \"\\u0120leaping\": 45583, \"\\u0120kittens\": 45584, \"Angelo\": 45585, \"\\u0120JACK\": 45586, \"\\u0120Suzanne\": 45587, \"\\u0120halting\": 45588, \"ENTION\": 45589, \"\\u0120swallowing\": 45590, \"\\u0120Earthquake\": 45591, \"\\u0120eighteenth\": 45592, \"\\u0120NIC\": 45593, \"\\u0120INF\": 45594, \"\\u0120Conscious\": 45595, \"\\u0120particulars\": 45596, \"circle\": 45597, \"740\": 45598, \"\\u0120benevolent\": 45599, \"\\u0120747\": 45600, \"\\u0120490\": 45601, \"\\u0120rundown\": 45602, \"\\u0120Valerie\": 45603, \"\\u0120BUR\": 45604, \"\\u0120civilisation\": 45605, \"\\u0120Schn\": 45606, \"WB\": 45607, \"otide\": 45608, \"international\": 45609, \"\\u0120john\": 45610, \"\\u01201902\": 45611, \"\\u0120peanuts\": 45612, \"\\u0120flavored\": 45613, \"kus\": 45614, \"\\u0120roared\": 45615, \"\\u0120cutoff\": 45616, \"\\u00e9\\u00a3\": 45617, \"\\u0120ornament\": 45618, \"\\u0120architectures\": 45619, \"\\u0120369\": 45620, \"olor\": 45621, \"\\u0120Wilde\": 45622, \"\\u0120CRC\": 45623, \"\\u0120Adjusted\": 45624, \"\\u0120provoking\": 45625, \"landish\": 45626, \"\\u0120rationality\": 45627, \"\\u0120justifies\": 45628, \"\\u0120dispel\": 45629, \"\\u0120americ\": 45630, \"\\u0120Poles\": 45631, \"\\u00d8\\u00a9\": 45632, \"\\u0120envis\": 45633, \"\\u0120Doodle\": 45634, \"\\u00e4\\u00bd\\u00bf\": 45635, \"igsaw\": 45636, \"auldron\": 45637, \"Technical\": 45638, \"Teen\": 45639, \"uphem\": 45640, \"\\u0120Xiang\": 45641, \"\\u0120detractors\": 45642, \"\\u0120Zi\": 45643, \"\\u0120Journalists\": 45644, \"\\u0120conducive\": 45645, \"\\u0120Volunteers\": 45646, \"\\u0120sd\": 45647, \"Knowing\": 45648, \"\\u0120transmissions\": 45649, \"\\u0120PLAN\": 45650, \"\\u0120LIB\": 45651, \"\\u0120alluded\": 45652, \"\\u0120obe\": 45653, \"\\u0120dope\": 45654, \"\\u0120Goldstein\": 45655, \"\\u0120wavelengths\": 45656, \"\\u0120Destination\": 45657, \"nda\": 45658, \"ugi\": 45659, \"\\u0120attentive\": 45660, \"\\u0120Lean\": 45661, \"raltar\": 45662, \"\\u0120mang\": 45663, \"mbuds\": 45664, \"akings\": 45665, \"bender\": 45666, \"\\u0120accol\": 45667, \"\\u0120crawled\": 45668, \"NOW\": 45669, \"Minnesota\": 45670, \"\\u0120flourished\": 45671, \"\\u0120Zup\": 45672, \"\\u0120Supervisor\": 45673, \"\\u0120Olivier\": 45674, \"Excellent\": 45675, \"\\u0120widen\": 45676, \"Done\": 45677, \"\\u0120wig\": 45678, \"\\u0120misconceptions\": 45679, \"Corp\": 45680, \"Wan\": 45681, \"\\u0120venerable\": 45682, \"\\u0120Notably\": 45683, \"\\u0120Klingon\": 45684, \"animate\": 45685, \"Boost\": 45686, \"\\u0120SAY\": 45687, \"missing\": 45688, \"ibliography\": 45689, \"melon\": 45690, \"\\u0120payday\": 45691, \"\\u00d8\\u00b3\": 45692, \"bole\": 45693, \"\\u0120veiled\": 45694, \"\\u0120Alphabet\": 45695, \"Italian\": 45696, \"\\u0120everlasting\": 45697, \"\\u0120RIS\": 45698, \"\\u0120Cree\": 45699, \"rompt\": 45700, \"\\u0120hating\": 45701, \"\\u0120grinning\": 45702, \"\\u0120geographically\": 45703, \"OSH\": 45704, \"\\u0120weeping\": 45705, \"\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\\u0120\\u00c2\\u0142\": 45706, \"\\u0120impecc\": 45707, \"Letter\": 45708, \"\\u0120bloated\": 45709, \"PLA\": 45710, \"\\u0120Fein\": 45711, \"\\u0120persever\": 45712, \"Thunder\": 45713, \"\\u0120aur\": 45714, \"\\u0120RL\": 45715, \"\\u0120pitfalls\": 45716, \"\\u00e2\\u0138\\u00ba\": 45717, \"\\u0120predominant\": 45718, \"\\u0120525\": 45719, \"718\": 45720, \"APE\": 45721, \"714\": 45722, \"\\u0120farmland\": 45723, \"\\u0120Qiao\": 45724, \"\\u0120violet\": 45725, \"\\u0120Bahamas\": 45726, \"\\u0120inflicting\": 45727, \"\\u0120Efficiency\": 45728, \"\\u0120homebrew\": 45729, \"\\u0120undertook\": 45730, \"\\u0120curly\": 45731, \"\\u0120Harding\": 45732, \"mania\": 45733, \"596\": 45734, \"\\u0120tempered\": 45735, \"\\u0120harrowing\": 45736, \"\\u0120Pledge\": 45737, \"\\u0120Frankenstein\": 45738, \"\\u00e8\\u00aa\": 45739, \"Motion\": 45740, \"\\u0120predictably\": 45741, \"\\u0120Explosion\": 45742, \"ocusing\": 45743, \"erd\": 45744, \"colo\": 45745, \"FFER\": 45746, \"\\u0120backfield\": 45747, \"\\u0120VIDE\": 45748, \"uebl\": 45749, \"Narr\": 45750, \"\\u0120Argument\": 45751, \"\\u0120genomic\": 45752, \"\\u0120boutique\": 45753, \"\\u0120batted\": 45754, \"\\u0120Binary\": 45755, \"\\u0120gamb\": 45756, \"\\u0120Rhythm\": 45757, \"673\": 45758, \"\\u0120afloat\": 45759, \"\\u0120Olympia\": 45760, \"YING\": 45761, \"\\u0120endif\": 45762, \"isin\": 45763, \"\\u0120winters\": 45764, \"\\u0120scattering\": 45765, \"Iv\": 45766, \"Distance\": 45767, \"\\u0120tru\": 45768, \"\\u0120Comfort\": 45769, \"\\u0120nexus\": 45770, \"\\u0120airflow\": 45771, \"\\u0120Byzantine\": 45772, \"payers\": 45773, \"coni\": 45774, \"\\u0120Betsy\": 45775, \"Deal\": 45776, \"\\u0120Nug\": 45777, \"\\u0120Continent\": 45778, \"redibly\": 45779, \"\\u0120optimizing\": 45780, \"albeit\": 45781, \"\\u0120ecstatic\": 45782, \"\\u0120Proto\": 45783, \"\\u00e7\\u00b7\": 45784, \"ivot\": 45785, \"\\u00e2\\u0138\\u0126\": 45786, \"emp\": 45787, \"rounder\": 45788, \"\\u0120clout\": 45789, \"\\u0120IST\": 45790, \"663\": 45791, \"\\u0120Dollars\": 45792, \"\\u0120DAC\": 45793, \"\\u0120subscribed\": 45794, \"\\u0120rehearsal\": 45795, \"\\u0120amps\": 45796, \"\\u0120Shang\": 45797, \"esm\": 45798, \"\\u0120sprinkle\": 45799, \"\\u0120assailant\": 45800, \"\\u0120Oo\": 45801, \"\\u0120Coinbase\": 45802, \"Tact\": 45803, \"\\u0120retina\": 45804, \"\\u0120nuns\": 45805, \"RON\": 45806, \"atto\": 45807, \"\\u0120jug\": 45808, \"\\u0120SVG\": 45809, \"\\u0120bikini\": 45810, \"\\u0120FILE\": 45811, \"\\u0120Founders\": 45812, \"eport\": 45813, \"\\u0120KP\": 45814, \"\\u0120restores\": 45815, \"\\u0120Thick\": 45816, \"\\u0120ashore\": 45817, \"\\u0120approvals\": 45818, \"Render\": 45819, \"MAG\": 45820, \"Graham\": 45821, \"\\u0120Cortana\": 45822, \"\\u00e3\\u0125\\u00b3\\u00e3\\u0124\\u00b8\": 45823, \"ssh\": 45824, \"orians\": 45825, \"arsity\": 45826, \"\\u0120Inspired\": 45827, \"upper\": 45828, \"\\u0120signalling\": 45829, \"\\u0120rebuke\": 45830, \"\\u0120flares\": 45831, \"\\u0120downtime\": 45832, \"Studies\": 45833, \"\\u0120stagnation\": 45834, \"\\u0120Sequence\": 45835, \"\\u0120grunt\": 45836, \"\\u0120assures\": 45837, \"\\u0120PLA\": 45838, \"592\": 45839, \"\\u0120intraven\": 45840, \"depend\": 45841, \"Susan\": 45842, \"\\u0120Manziel\": 45843, \"Mania\": 45844, \"Contract\": 45845, \"\\u0120slams\": 45846, \"\\u0120cultured\": 45847, \"\\u0120creditor\": 45848, \"LIST\": 45849, \"\\u0120HUM\": 45850, \"\\u0120Chattanooga\": 45851, \"served\": 45852, \"\\u0120cloaked\": 45853, \"\\u0120FTP\": 45854, \"powder\": 45855, \"\\u0120Stella\": 45856, \"uctive\": 45857, \"\\u0120cheaply\": 45858, \"\\u0120MUCH\": 45859, \"\\u0120Galileo\": 45860, \"\\u0120suites\": 45861, \"speech\": 45862, \"\\u0120deliberations\": 45863, \"\\u0120Chips\": 45864, \"\\u00ab\\u013a\": 45865, \"Balance\": 45866, \"\\u0120Wynne\": 45867, \"\\u0120Akron\": 45868, \"Asset\": 45869, \"\\u0120honoured\": 45870, \"\\u0120edged\": 45871, \"Likewise\": 45872, \"animous\": 45873, \"\\u0120Wage\": 45874, \"\\u0120Ezek\": 45875, \"advertisement\": 45876, \"\\u0120RTX\": 45877, \"\\u0120MAD\": 45878, \"\\u0120migrating\": 45879, \"\\u0120SQU\": 45880, \"\\u0120475\": 45881, \"Edited\": 45882, \"\\u0120shorthand\": 45883, \"\\u0120Basics\": 45884, \"\\u0120crotch\": 45885, \"\\u0120EVEN\": 45886, \"\\u0120vm\": 45887, \"efficiency\": 45888, \"\\u0120calves\": 45889, \"\\u0120Frie\": 45890, \"\\u0120Brilliant\": 45891, \"\\u0120strikers\": 45892, \"\\u0120repentance\": 45893, \"\\u0120arteries\": 45894, \"rl\": 45895, \"Bed\": 45896, \"hap\": 45897, \"\\u0120cryptography\": 45898, \"\\u0120Sabres\": 45899, \"\\u0120414\": 45900, \"viks\": 45901, \"ihara\": 45902, \"apses\": 45903, \"Talking\": 45904, \"\\u0120intertwined\": 45905, \"\\u0120docks\": 45906, \"\\u0120allele\": 45907, \"\\u0120Artifact\": 45908, \"\\u0120HIM\": 45909, \"torn\": 45910, \"\\u00e7\\u0137\": 45911, \"\\u0120opacity\": 45912, \"\\u0120Ely\": 45913, \"osuke\": 45914, \"\\u0120nipple\": 45915, \"\\u0120handwritten\": 45916, \"\\u0120VK\": 45917, \"\\u0120Chamberlain\": 45918, \"\\u0120Laos\": 45919, \"igraph\": 45920, \"grow\": 45921, \"\\u0120trillions\": 45922, \"\\u0120descendant\": 45923, \"\\u0120Sailor\": 45924, \"asuring\": 45925, \"\\u0120ceilings\": 45926, \"\\u0120Warehouse\": 45927, \"flying\": 45928, \"\\u0120Glow\": 45929, \"\\u0120nont\": 45930, \"\\u0120miscarriage\": 45931, \"\\u0120rigs\": 45932, \"\\u0120ministries\": 45933, \"\\u0120elaborated\": 45934, \"\\u0120delusional\": 45935, \"\\u0120Humane\": 45936, \"\\u0120379\": 45937, \"nets\": 45938, \"\\u0120blackout\": 45939, \"adders\": 45940, \"\\u0120np\": 45941, \"\\u0120Tire\": 45942, \"rosc\": 45943, \"\\u0120subdiv\": 45944, \"\\u0120linkage\": 45945, \"\\u0120chronological\": 45946, \"\\u0120HERO\": 45947, \"\\u0120resettlement\": 45948, \"\\u0120Vinyl\": 45949, \"\\u0120pastoral\": 45950, \"\\u0120Mobil\": 45951, \"\\u0120Barbar\": 45952, \"Cooldown\": 45953, \"\\u0120Fritz\": 45954, \"criminal\": 45955, \"repe\": 45956, \"\\u0120bellig\": 45957, \"\\u0120Breed\": 45958, \"\\u0120418\": 45959, \"\\u0120semblance\": 45960, \"ijk\": 45961, \"\\u0120curtail\": 45962, \"\\u0120clinch\": 45963, \"contained\": 45964, \"\\u0120Prompt\": 45965, \"aston\": 45966, \"\\u0120wi\": 45967, \"\\u0120pursuits\": 45968, \"515\": 45969, \"\\u0120Gloss\": 45970, \"\\u0120flips\": 45971, \"\\u0120coupons\": 45972, \"\\u0120cloning\": 45973, \"\\u0120Likely\": 45974, \"Removed\": 45975, \"\\u0120Quartz\": 45976, \"rices\": 45977, \"\\u0120Spears\": 45978, \"\\u0120pious\": 45979, \"\\u0120depreciation\": 45980, \"\\u0120Dare\": 45981, \"ounces\": 45982, \"amaz\": 45983, \"Ont\": 45984, \"\\u0120pinnacle\": 45985, \"docker\": 45986, \"026\": 45987, \"\\u0120Wyr\": 45988, \"\\u0120Proper\": 45989, \"\\u00cb\\u012a\": 45990, \"nil\": 45991, \"Bytes\": 45992, \"\\u0120seeker\": 45993, \"trial\": 45994, \"\\u0120unfolds\": 45995, \"\\u0120Marse\": 45996, \"\\u0120extravagant\": 45997, \"\\u0120Survivors\": 45998, \"REDACTED\": 45999, \"\\u0120Speedway\": 46000, \"\\u0120Craigslist\": 46001, \"submit\": 46002, \"\\u0120Generations\": 46003, \"\\u0120upholding\": 46004, \"\\u0120bloodstream\": 46005, \"\\u0120Missions\": 46006, \"\\u0120Lawn\": 46007, \"\\u0120limbo\": 46008, \"enei\": 46009, \"Huh\": 46010, \"\\u0120Wildcats\": 46011, \"prep\": 46012, \"\\u0120Markus\": 46013, \"\\u0120Forbidden\": 46014, \"ritic\": 46015, \"INO\": 46016, \"\\u0120exhibiting\": 46017, \"requent\": 46018, \"chuk\": 46019, \"\\u0120habitual\": 46020, \"\\u0120Compatibility\": 46021, \"Drag\": 46022, \"RIPT\": 46023, \"ujah\": 46024, \"GROUND\": 46025, \"\\u0120delinquent\": 46026, \"\\u0120burner\": 46027, \"\\u0120contemporaries\": 46028, \"\\u0120gimmick\": 46029, \"loads\": 46030, \"\\u0120nozzle\": 46031, \"podcast\": 46032, \"\\u0120Wak\": 46033, \"\\u0120Staten\": 46034, \"\\u0120Kuh\": 46035, \"\\u00e3\\u0123\\u0135\": 46036, \"interrupted\": 46037, \"\\u0120invincible\": 46038, \"\\u0120Burnett\": 46039, \"cigarette\": 46040, \"\\u0120Pebble\": 46041, \"\\u0120Temporary\": 46042, \"\\u0120Marino\": 46043, \"582\": 46044, \"\\u0120wasteland\": 46045, \"idently\": 46046, \"Tx\": 46047, \"\\u0120rite\": 46048, \"\\u0120Panasonic\": 46049, \"\\u0120Middles\": 46050, \"\\u0120Horton\": 46051, \"aeus\": 46052, \"\\u0120curing\": 46053, \"\\u0120mats\": 46054, \"\\u0120adjourn\": 46055, \"\\u0120fearsome\": 46056, \"pez\": 46057, \"boats\": 46058, \"\\u0120propell\": 46059, \"\\u0120conflicted\": 46060, \"\\u0120Anger\": 46061, \"\\u0120insurgent\": 46062, \"Karl\": 46063, \"\\u0120coales\": 46064, \"\\u0120southwestern\": 46065, \"\\u0120dissu\": 46066, \"\\u0120Overt\": 46067, \"************\": 46068, \"\\u0120boxed\": 46069, \"\\u0120Brune\": 46070, \"aaa\": 46071, \"\\u0120gardening\": 46072, \"\\u0120Engel\": 46073, \"tracks\": 46074, \"\\u0120purified\": 46075, \"\\u0120placeholder\": 46076, \"\\u0120Likes\": 46077, \"\\u0120dan\": 46078, \"Gab\": 46079, \"\\u0120ect\": 46080, \"\\u0120Faw\": 46081, \"\\u0120Eliot\": 46082, \"\\u0120',\": 46083, \"otropic\": 46084, \"\\u0120Ruin\": 46085, \"hedon\": 46086, \"\\u0120caul\": 46087, \"\\u0120aft\": 46088, \"\\u0120Cadillac\": 46089, \"gha\": 46090, \"assian\": 46091, \"udeb\": 46092, \"\\u0120Tick\": 46093, \"\\u0120adjusts\": 46094, \"ARGET\": 46095, \"537\": 46096, \"ische\": 46097, \"anty\": 46098, \"\\u0120Friedrich\": 46099, \"\\u0120Blizz\": 46100, \"\\u0120AOL\": 46101, \"Campaign\": 46102, \"\\u0120mammal\": 46103, \"\\u0120Veil\": 46104, \"\\u0120Kev\": 46105, \"\\u0120Maurit\": 46106, \"\\u0120Damien\": 46107, \"Nation\": 46108, \"Eastern\": 46109, \"\\u0120{:\": 46110, \"\\u0120=================================\": 46111, \"\\u0120stereotypical\": 46112, \"\\u0120attic\": 46113, \"\\u0120Cyborg\": 46114, \"require\": 46115, \"\\u0120awarding\": 46116, \"\\u0120Papua\": 46117, \"btn\": 46118, \"bent\": 46119, \"Boo\": 46120, \"\\u0120(=\": 46121, \"\\u0120Xander\": 46122, \"\\u0120Somerset\": 46123, \"\\u0120catchy\": 46124, \"\\u0120certify\": 46125, \"STRUCT\": 46126, \"\\u0120ital\": 46127, \"\\u0120tides\": 46128, \"\\u0120Brands\": 46129, \"Gray\": 46130, \"competitive\": 46131, \"\\u0120curator\": 46132, \"\\u0120DG\": 46133, \"ominium\": 46134, \"\\u0120GMOs\": 46135, \"ciating\": 46136, \"\\u0120Carmen\": 46137, \"oward\": 46138, \"Baltimore\": 46139, \"\\u0120rgb\": 46140, \"Cu\": 46141, \"\\u0120wipes\": 46142, \"spell\": 46143, \"ITNESS\": 46144, \"\\u0120summarizes\": 46145, \"\\u0120Revis\": 46146, \"\\u0120whistleblowers\": 46147, \"\\u0120Breach\": 46148, \"\\u0120crochet\": 46149, \"kos\": 46150, \"ewski\": 46151, \"\\u0120repet\": 46152, \"\\u0120crimson\": 46153, \"\\u0120Karachi\": 46154, \"readable\": 46155, \"dimension\": 46156, \"\\u0120Igor\": 46157, \"ilded\": 46158, \"\\u0120Zed\": 46159, \"\\u0120Keane\": 46160, \"\\u0120Cosmetic\": 46161, \"DEP\": 46162, \"\\u0120retreating\": 46163, \"\\u0120UA\": 46164, \"ensical\": 46165, \"\\u0120dusk\": 46166, \"\\u0120Dickens\": 46167, \"\\u0120arenas\": 46168, \"\\u0120Passage\": 46169, \"levels\": 46170, \"\\u0120curv\": 46171, \"Pope\": 46172, \"\\u0120chores\": 46173, \"\\u0120Elise\": 46174, \"\\u0120Compass\": 46175, \"bub\": 46176, \"\\u0120mammalian\": 46177, \"\\u0120Sanskrit\": 46178, \"\\u0120ANC\": 46179, \"\\u0120Crack\": 46180, \"Qual\": 46181, \"Laun\": 46182, \"ampunk\": 46183, \"\\u0120learners\": 46184, \"\\u0120glamorous\": 46185, \"\\u0120furthe\": 46186, \"ermott\": 46187, \"cand\": 46188, \"Generic\": 46189, \"\\u0120narrated\": 46190, \"\\u0120disorderly\": 46191, \"\\u0120Transactions\": 46192, \"\\u0120Detention\": 46193, \"\\u0120Roku\": 46194, \"\\u00c4\\u012f\": 46195, \"\\u0120understatement\": 46196, \"\\u0120Saur\": 46197, \"\\u0120Rodrigo\": 46198, \"\\u0120ASAP\": 46199, \"Sin\": 46200, \"\\u0120rejoice\": 46201, \"Methods\": 46202, \"\\u0120electrode\": 46203, \"\\u0120worshipped\": 46204, \"\\u0120idi\": 46205, \"\\u0120Physicians\": 46206, \"\\u0120popup\": 46207, \"\\u0120deft\": 46208, \"\\u0120Removal\": 46209, \"\\u0120Buenos\": 46210, \"verbs\": 46211, \"\\u0120funk\": 46212, \"usha\": 46213, \"riction\": 46214, \"orea\": 46215, \"\\u0120Bangalore\": 46216, \"\\u0120Kenobi\": 46217, \"zzi\": 46218, \"\\u0120normative\": 46219, \"\\u0120goblins\": 46220, \"\\u0120cafes\": 46221, \"\\u0120UNCLASSIFIED\": 46222, \"\\u0120Fired\": 46223, \"SIGN\": 46224, \"\\u0120sclerosis\": 46225, \"\\u0120Voter\": 46226, \"\\u0120Sonny\": 46227, \"\\u0120Extend\": 46228, \"\\u0120EVs\": 46229, \"Arsenal\": 46230, \"\\u0120psi\": 46231, \"\\u0120widest\": 46232, \"\\u0120Tus\": 46233, \"\\u0120looms\": 46234, \"\\u0120justifying\": 46235, \"\\u0120Granger\": 46236, \"\\u00e8\\u00af\": 46237, \"Refer\": 46238, \"583\": 46239, \"\\u0120flourishing\": 46240, \"abre\": 46241, \"\\u0120rave\": 46242, \"\\u0120Contra\": 46243, \"\\u01201898\": 46244, \"Adds\": 46245, \"\\u0120ful\": 46246, \"\\u0120Cooke\": 46247, \"someone\": 46248, \"=#\": 46249, \"671\": 46250, \"\\u0120yak\": 46251, \"\\u0120arte\": 46252, \"\\u0120Miscellaneous\": 46253, \"\\u0120Detection\": 46254, \"\\u0120Clancy\": 46255, \"\\u00e2\\u0123\": 46256, \"assies\": 46257, \"\\u0120valiant\": 46258, \"\\u0120Feminist\": 46259, \"corruption\": 46260, \"Vel\": 46261, \"Pear\": 46262, \"\\u0120succinct\": 46263, \"\\u0120quickest\": 46264, \"kw\": 46265, \"\\u0120spitting\": 46266, \"\\u0120Libraries\": 46267, \"\\u00e5\\u0127\\u012b\": 46268, \"antz\": 46269, \"Dad\": 46270, \"\\u0120Specifications\": 46271, \"rupulous\": 46272, \"andr\": 46273, \"RESULTS\": 46274, \"\\u0120snowball\": 46275, \"\\u0120predis\": 46276, \"\\u0120Baxter\": 46277, \"\\u0120Nursing\": 46278, \"\\u0120Chaff\": 46279, \"swe\": 46280, \"\\u0120outage\": 46281, \"\\u0120nesting\": 46282, \"\\u0120notoriety\": 46283, \"trigger\": 46284, \"onite\": 46285, \"jon\": 46286, \"\\u0120fou\": 46287, \"ooked\": 46288, \"\\u0120Celebrity\": 46289, \"reality\": 46290, \"\\u0120fatig\": 46291, \"\\u0120hugging\": 46292, \"\\u0120bothers\": 46293, \"\\u0120Panzer\": 46294, \"\\u0120Chandra\": 46295, \"figured\": 46296, \"\\u0120volts\": 46297, \"\\u0120Clouds\": 46298, \"\\u0120feeble\": 46299, \"\\u0120Curve\": 46300, \"\\u0120Asus\": 46301, \"786\": 46302, \"absor\": 46303, \"\\u0120VICE\": 46304, \"\\u0120Hess\": 46305, \"\\u0120manufactures\": 46306, \"\\u0120grizz\": 46307, \"\\u0120Powerful\": 46308, \"acid\": 46309, \"\\u0120subsections\": 46310, \"\\u0120Krugman\": 46311, \"\\u0120Alps\": 46312, \"isu\": 46313, \"\\u0120sequest\": 46314, \"\\u0120Ultron\": 46315, \"\\u0120Tinker\": 46316, \"\\u0120Goose\": 46317, \"\\u0120mismatch\": 46318, \"Attorney\": 46319, \"\\u0120morphology\": 46320, \"\\u0120Sixers\": 46321, \"uttered\": 46322, \"\\u0120ELECT\": 46323, \"gran\": 46324, \"Russell\": 46325, \"\\u0120GSL\": 46326, \"\\u0120fortnight\": 46327, \"\\u0120.)\": 46328, \"\\u0120apostle\": 46329, \"prone\": 46330, \"elist\": 46331, \"Untitled\": 46332, \"\\u0120Implementation\": 46333, \"istors\": 46334, \"\\u0120tanker\": 46335, \"\\u0120plush\": 46336, \"\\u0120attendants\": 46337, \"\\u0120Tik\": 46338, \"\\u0120Greenwich\": 46339, \"\\u0120Yon\": 46340, \"\\u0120SPL\": 46341, \"cells\": 46342, \"untled\": 46343, \"Solution\": 46344, \"\\u0120Qu\\u00c3\\u00a9\": 46345, \"\\u0120vacated\": 46346, \"\\u0120uptick\": 46347, \"\\u0120Meridian\": 46348, \"\\u00e6\\u0125\": 46349, \"\\u0120Drill\": 46350, \"925\": 46351, \"584\": 46352, \"\\u0120renovated\": 46353, \"\\u0120Kubrick\": 46354, \"zyk\": 46355, \"\\u0120lousy\": 46356, \"ppel\": 46357, \"ohydrate\": 46358, \"\\u0120Izzy\": 46359, \"lesiastical\": 46360, \"CCC\": 46361, \"\\u0120Ajax\": 46362, \"\\u0120adapters\": 46363, \"\\u0120Petraeus\": 46364, \"\\u0120affirmation\": 46365, \"\\u0120STOR\": 46366, \"lems\": 46367, \"adoes\": 46368, \"\\u0120Constantinople\": 46369, \"\\u0120ponies\": 46370, \"\\u0120lighthouse\": 46371, \"\\u0120adherents\": 46372, \"\\u0120Brees\": 46373, \"omorphic\": 46374, \"Fighting\": 46375, \"\\u0120plaster\": 46376, \"\\u0120PVC\": 46377, \"\\u0120Obst\": 46378, \"\\u0120dearly\": 46379, \"\\u0120Tooth\": 46380, \"ickson\": 46381, \"\\u0120shaming\": 46382, \"Plex\": 46383, \"Agg\": 46384, \"\\u0120\\u00e2\\u0122\\u00a6\\\"\": 46385, \"\\u0120subreddits\": 46386, \"\\u0120pigeon\": 46387, \"\\u0120Residential\": 46388, \"\\u0120Passing\": 46389, \"\\u0120lum\": 46390, \"\\u0120Pension\": 46391, \"\\u0120pessimistic\": 46392, \"\\u0120432\": 46393, \"zinski\": 46394, \"cade\": 46395, \"075\": 46396, \"\\u0120apologised\": 46397, \"iyah\": 46398, \"Putting\": 46399, \"\\u0120gloomy\": 46400, \"\\u0120Lyme\": 46401, \"=-=-=-=-=-=-=-=-\": 46402, \"\\u0120Tome\": 46403, \"\\u0120Psychiatric\": 46404, \"\\u0120HIT\": 46405, \"cms\": 46406, \"apolog\": 46407, \"\\u0120breaker\": 46408, \"\\u0120deepen\": 46409, \"\\u0120theorist\": 46410, \"\\u0120Highlands\": 46411, \"\\u0120baker\": 46412, \"\\u0120staples\": 46413, \"\\u0120interfered\": 46414, \"\\u0120Abortion\": 46415, \"joined\": 46416, \"chu\": 46417, \"\\u0120formulate\": 46418, \"\\u0120vaccinations\": 46419, \"\\u0120banter\": 46420, \"pheus\": 46421, \"\\u0120outfielder\": 46422, \"\\u0120Meter\": 46423, \"\\u0120#####\": 46424, \"\\u01201895\": 46425, \"\\u0120narrowing\": 46426, \"\\u0120STORY\": 46427, \"fp\": 46428, \"\\u0120CST\": 46429, \"ignore\": 46430, \"\\u0120proclaiming\": 46431, \"\\u0120RU\": 46432, \"\\u0120BALL\": 46433, \"yna\": 46434, \"653\": 46435, \"\\u0120posit\": 46436, \"PRE\": 46437, \"594\": 46438, \"\\u0120Registrar\": 46439, \"\\u0120Pilgrim\": 46440, \"icio\": 46441, \"\\u0120prett\": 46442, \"\\u0120lifeless\": 46443, \"\\u0120___\": 46444, \"Neigh\": 46445, \"\\u0120Churches\": 46446, \"orno\": 46447, \"\\u0120orcs\": 46448, \"\\u0120kindred\": 46449, \"\\u0120Audit\": 46450, \"\\u0120millennial\": 46451, \"\\u0120Persia\": 46452, \"gravity\": 46453, \"\\u0120Disability\": 46454, \"\\u0120DARK\": 46455, \"Ws\": 46456, \"odon\": 46457, \"\\u0120granddaughter\": 46458, \"\\u0120Brooke\": 46459, \"\\u0120ADA\": 46460, \"ERA\": 46461, \"\\u0120pickups\": 46462, \"\\u0120Wilkinson\": 46463, \"\\u0120Shards\": 46464, \"\\u0120NK\": 46465, \"\\u0120expel\": 46466, \"\\u0120Kislyak\": 46467, \"\\u0120jargon\": 46468, \"\\u0120polarized\": 46469, \"iane\": 46470, \"Publisher\": 46471, \"\\u0120rebutt\": 46472, \"\\u0120apprehension\": 46473, \"\\u0120Kessler\": 46474, \"\\u0120prism\": 46475, \"FUL\": 46476, \"1964\": 46477, \"\\u0120Loll\": 46478, \"\\u00e4\\u00bf\": 46479, \"lethal\": 46480, \"\\u00c5\\u0141\": 46481, \"\\u0120ghetto\": 46482, \"\\u0120boulder\": 46483, \"\\u0120Slowly\": 46484, \"\\u0120Oscars\": 46485, \"\\u0120Instruction\": 46486, \"\\u0120Ultr\": 46487, \"\\u0120Moe\": 46488, \"Nich\": 46489, \"\\u0120PATH\": 46490, \"(*\": 46491, \"\\u0120RELEASE\": 46492, \"uning\": 46493, \"rouse\": 46494, \"eneg\": 46495, \"\\u0120reimb\": 46496, \"\\u0120Detected\": 46497, \"DoS\": 46498, \"\\u0120sterling\": 46499, \"\\u0120aggregation\": 46500, \"\\u0120Lonely\": 46501, \"\\u0120Attend\": 46502, \"higher\": 46503, \"\\u0120airstrike\": 46504, \"kson\": 46505, \"SELECT\": 46506, \"\\u0120deflation\": 46507, \"\\u0120Herrera\": 46508, \"Cole\": 46509, \"ritch\": 46510, \"\\u0120advisable\": 46511, \"Fax\": 46512, \"\\u0120workaround\": 46513, \"\\u0120pid\": 46514, \"mortem\": 46515, \"ersen\": 46516, \"\\u0120typo\": 46517, \"\\u0120alum\": 46518, \"782\": 46519, \"\\u0120Jamal\": 46520, \"scripts\": 46521, \"\\u0120captives\": 46522, \"\\u0120Presence\": 46523, \"\\u0120Lieberman\": 46524, \"angelo\": 46525, \"\\u0120alcoholism\": 46526, \"assi\": 46527, \"\\u0120recite\": 46528, \"\\u0120gaping\": 46529, \"\\u0120baskets\": 46530, \"\\u0120Gou\": 46531, \"Browser\": 46532, \"neau\": 46533, \"\\u0120corrective\": 46534, \"unda\": 46535, \"scoring\": 46536, \"\\u0120XD\": 46537, \"\\u0120filament\": 46538, \"\\u0120deepening\": 46539, \"\\u0120Stainless\": 46540, \"Integer\": 46541, \"\\u0120buggy\": 46542, \"\\u0120tenancy\": 46543, \"\\u0120Mubarak\": 46544, \"\\u0120tuple\": 46545, \"\\u0120Droid\": 46546, \"\\u0120Sitting\": 46547, \"\\u0120forfeit\": 46548, \"\\u0120Rasmussen\": 46549, \"ixties\": 46550, \"esi\": 46551, \"\\u0120Kimmel\": 46552, \"\\u0120meticulously\": 46553, \"\\u0120apopt\": 46554, \"\\u0120Seller\": 46555, \"088\": 46556, \"ecake\": 46557, \"hematically\": 46558, \"TN\": 46559, \"\\u0120mindless\": 46560, \"\\u0120digs\": 46561, \"\\u0120Accord\": 46562, \"onsense\": 46563, \"eming\": 46564, \"brace\": 46565, \"\\u0120eBook\": 46566, \"\\u0120Distribut\": 46567, \"\\u0120Investments\": 46568, \"wt\": 46569, \"]),\": 46570, \"behavior\": 46571, \"563\": 46572, \"\\u0120blinding\": 46573, \"\\u0120Protesters\": 46574, \"topia\": 46575, \"\\u0120reborn\": 46576, \"\\u0120Kelvin\": 46577, \"\\u0120Dover\": 46578, \"\\u0120Dairy\": 46579, \"\\u0120Outs\": 46580, \"\\u0120[/\": 46581, \"\\u00cf\\u0122\": 46582, \"bp\": 46583, \"\\u0120Vanity\": 46584, \"\\u0120Recap\": 46585, \"\\u0120HOUSE\": 46586, \"\\u0120FACE\": 46587, \"\\u0120422\": 46588, \"692\": 46589, \"\\u0120Antioch\": 46590, \"cooked\": 46591, \"\\u0120collide\": 46592, \"\\u0120apr\": 46593, \"\\u0120sleeper\": 46594, \"\\u0120Jarvis\": 46595, \"\\u0120alternatively\": 46596, \"\\u0120Leaves\": 46597, \"\\u0120Maw\": 46598, \"\\u0120antiquity\": 46599, \"\\u0120Adinida\": 46600, \"\\u0120abuser\": 46601, \"Pok\\u00c3\\u00a9mon\": 46602, \"\\u0120assorted\": 46603, \"\\u0120Revision\": 46604, \"\\u0120Piano\": 46605, \"\\u0120Gideon\": 46606, \"Ocean\": 46607, \"\\u0120salon\": 46608, \"\\u0120bustling\": 46609, \"ognitive\": 46610, \"\\u0120Rahman\": 46611, \"\\u0120waiter\": 46612, \"\\u0120presets\": 46613, \"\\u0120Osh\": 46614, \"\\u0120GHC\": 46615, \"operator\": 46616, \"\\u0120reptiles\": 46617, \"\\u0120413\": 46618, \"\\u0120Garr\": 46619, \"\\u0120Chak\": 46620, \"\\u0120hashes\": 46621, \"\\u0120failings\": 46622, \"\\u0120folklore\": 46623, \"\\u0120abl\": 46624, \"\\u0120Cena\": 46625, \"\\u0120MacArthur\": 46626, \"\\u0120COURT\": 46627, \"\\u0120periphery\": 46628, \"appers\": 46629, \"\\u0120reckoned\": 46630, \"\\u0120Influ\": 46631, \"\\u0120CET\": 46632, \"\\u0120372\": 46633, \"\\u0120Definitive\": 46634, \"assault\": 46635, \"421\": 46636, \"\\u0120reservoirs\": 46637, \"\\u0120dives\": 46638, \"\\u0120Coil\": 46639, \"DAQ\": 46640, \"\\u0120vividly\": 46641, \"\\u0120RJ\": 46642, \"\\u0120Bellev\": 46643, \"\\u0120eclectic\": 46644, \"\\u0120Showdown\": 46645, \"\\u0120KM\": 46646, \"iped\": 46647, \"reetings\": 46648, \"\\u0120Asuka\": 46649, \"Liberal\": 46650, \"\\u0120\\u00cf\\u0126\": 46651, \"\\u0120bystanders\": 46652, \"\\u0120Goodwin\": 46653, \"ukong\": 46654, \"Sit\": 46655, \"\\u0120Trem\": 46656, \"\\u0120criminally\": 46657, \"\\u0120Circus\": 46658, \"chrome\": 46659, \"887\": 46660, \"\\u0120nanop\": 46661, \"\\u0120Obi\": 46662, \"\\u0120LOW\": 46663, \"ogh\": 46664, \"\\u0120Authors\": 46665, \"obyl\": 46666, \"Urban\": 46667, \"\\u0120ti\": 46668, \"\\u0120Weir\": 46669, \"trap\": 46670, \"agy\": 46671, \"\\u0120parentheses\": 46672, \"\\u0120outnumbered\": 46673, \"\\u0120counterproductive\": 46674, \"\\u0120Tobias\": 46675, \"ubis\": 46676, \"Parser\": 46677, \"STAR\": 46678, \"\\u0120synaptic\": 46679, \"\\u0120Gears\": 46680, \"\\u0120hiber\": 46681, \"\\u0120debunked\": 46682, \"\\u0120exalted\": 46683, \"awatts\": 46684, \"HOU\": 46685, \"Church\": 46686, \"\\u0120Pixie\": 46687, \"\\u0120Uri\": 46688, \"\\u0120Formation\": 46689, \"\\u0120Prediction\": 46690, \"CEO\": 46691, \"\\u0120thrott\": 46692, \"\\u0120Britann\": 46693, \"\\u0120Madagascar\": 46694, \"\\u00eb\\u012d\": 46695, \"\\u0120billboards\": 46696, \"\\u0120RPGs\": 46697, \"\\u0120Bees\": 46698, \"completely\": 46699, \"FIL\": 46700, \"\\u0120doesnt\": 46701, \"\\u0120Greenberg\": 46702, \"reys\": 46703, \"\\u0120sling\": 46704, \"\\u0120emptied\": 46705, \"\\u0120Pixar\": 46706, \"\\u0120Dharma\": 46707, \"luck\": 46708, \"inguished\": 46709, \"\\u0120endot\": 46710, \"\\u0120babys\": 46711, \"059\": 46712, \"chest\": 46713, \"rats\": 46714, \"\\u0120ridden\": 46715, \"\\u0120beetles\": 46716, \"\\u0120illuminating\": 46717, \"\\u0120fictitious\": 46718, \"\\u0120Provincial\": 46719, \"\\u0120768\": 46720, \"\\u0120shepherd\": 46721, \"\\u0120Render\": 46722, \"\\u01201896\": 46723, \"Crew\": 46724, \"\\u0120molded\": 46725, \"\\u0120Xiaomi\": 46726, \"\\u0120Spiral\": 46727, \"\\u0120delim\": 46728, \"\\u0120organising\": 46729, \"\\u0120hoops\": 46730, \"\\u0120Bei\": 46731, \"zhen\": 46732, \"\\u0120fuckin\": 46733, \"\\u0120decad\": 46734, \"\\u0120unbiased\": 46735, \"ammy\": 46736, \"swing\": 46737, \"\\u0120smuggled\": 46738, \"\\u0120kios\": 46739, \"\\u0120PERSON\": 46740, \"\\u0120Inquisitor\": 46741, \"\\u0120snowy\": 46742, \"\\u0120scraping\": 46743, \"\\u0120Burgess\": 46744, \"Ptr\": 46745, \"agame\": 46746, \"RW\": 46747, \"\\u0120droid\": 46748, \"\\u0120Lys\": 46749, \"\\u0120Cassandra\": 46750, \"Jacob\": 46751, \"\\u0120354\": 46752, \"\\u0120pasture\": 46753, \"\\u0120franc\": 46754, \"\\u0120Scotch\": 46755, \"\\u0120Ends\": 46756, \"\\u0120IGF\": 46757, \"definition\": 46758, \"\\u0120hysterical\": 46759, \"\\u0120Browne\": 46760, \"771\": 46761, \"\\u0120mobilization\": 46762, \"\\u00e6\\u0137\": 46763, \"iqueness\": 46764, \"Thor\": 46765, \"\\u0120spearheaded\": 46766, \"\\u0120embroiled\": 46767, \"\\u0120conjecture\": 46768, \"judicial\": 46769, \"Choice\": 46770, \"\\u0120paperback\": 46771, \"Pir\": 46772, \"\\u0120recovers\": 46773, \"\\u0120Surge\": 46774, \"\\u0120Shogun\": 46775, \"\\u0120Pediatrics\": 46776, \"\\u00e3\\u0123\\u0142\": 46777, \"\\u0120sweeps\": 46778, \"\\u0120Laboratories\": 46779, \"\\u0120Packs\": 46780, \"alus\": 46781, \"addin\": 46782, \"\\u0120headlights\": 46783, \"gra\": 46784, \"Evidence\": 46785, \"COLOR\": 46786, \"Admin\": 46787, \"\\u012c\\u00b1\": 46788, \"\\u0120concoct\": 46789, \"sufficient\": 46790, \"\\u0120unmarked\": 46791, \"\\u0120richness\": 46792, \"\\u0120dissertation\": 46793, \"\\u0120seasoning\": 46794, \"\\u0120gib\": 46795, \"\\u0120Mages\": 46796, \"unctions\": 46797, \"\\u0120Nid\": 46798, \"cheat\": 46799, \"\\u0120TMZ\": 46800, \"citizens\": 46801, \"\\u0120Catholicism\": 46802, \"nb\": 46803, \"\\u0120disembark\": 46804, \"\\u0120PROGRAM\": 46805, \"aques\": 46806, \"Tyler\": 46807, \"Org\": 46808, \"\\u0120Slay\": 46809, \"\\u0120Nero\": 46810, \"\\u0120Townsend\": 46811, \"INTON\": 46812, \"tele\": 46813, \"\\u0120mesmer\": 46814, \"901\": 46815, \"\\u0120fireball\": 46816, \"evidence\": 46817, \"affiliated\": 46818, \"\\u0120Frenchman\": 46819, \"\\u0120Augusta\": 46820, \"021\": 46821, \"\\u0120sled\": 46822, \"\\u0120reused\": 46823, \"\\u0120Immunity\": 46824, \"\\u0120wrestle\": 46825, \"assembled\": 46826, \"Maria\": 46827, \"\\u0120gunshots\": 46828, \"\\u0120Barbie\": 46829, \"\\u0120cannabinoids\": 46830, \"\\u0120Toast\": 46831, \"\\u0120Kinder\": 46832, \"IRD\": 46833, \"\\u0120rejuven\": 46834, \"\\u0120gore\": 46835, \"\\u0120rupture\": 46836, \"\\u0120breaching\": 46837, \"\\u0120Cartoon\": 46838, \"\\u0120455\": 46839, \"\\u0120Paleo\": 46840, \"614\": 46841, \"\\u0120spears\": 46842, \"\\u0120Ames\": 46843, \"abus\": 46844, \"Madison\": 46845, \"GROUP\": 46846, \"\\u0120aborted\": 46847, \"yah\": 46848, \"\\u0120felon\": 46849, \"\\u0120causation\": 46850, \"\\u0120prepaid\": 46851, \"\\u0120pitted\": 46852, \"oplan\": 46853, \"\\u0120Shelley\": 46854, \"\\u0120Russo\": 46855, \"\\u0120Pagan\": 46856, \"\\u0120willfully\": 46857, \"\\u0120Canaver\": 46858, \"undrum\": 46859, \"\\u0120Salary\": 46860, \"\\u0120Arpaio\": 46861, \"reader\": 46862, \"\\u0120Rational\": 46863, \"\\u0120Overse\": 46864, \"\\u0120Causes\": 46865, \"\\u0120*.\": 46866, \"\\u0120wob\": 46867, \"Keith\": 46868, \"\\u0120Consent\": 46869, \"manac\": 46870, \"773\": 46871, \"623\": 46872, \"\\u0120fateful\": 46873, \"etimes\": 46874, \"\\u0120spirited\": 46875, \"\\u0120Dys\": 46876, \"\\u0120hegemony\": 46877, \"\\u0120boycot\": 46878, \"\\u0120Enrique\": 46879, \"emouth\": 46880, \"\\u0120timelines\": 46881, \"\\u0120Sahara\": 46882, \"\\u0120Relax\": 46883, \"\\u0120Quincy\": 46884, \"\\u0120Lessons\": 46885, \"\\u0120EQU\": 46886, \"SEA\": 46887, \"NK\": 46888, \"\\u0120Costco\": 46889, \"Increase\": 46890, \"\\u0120motivating\": 46891, \"\\u0120Chong\": 46892, \"amaru\": 46893, \"\\u0120Divide\": 46894, \"\\u0120pedigree\": 46895, \"\\u0120Tasmania\": 46896, \"\\u0120Prelude\": 46897, \"Las\": 46898, \"940\": 46899, \"574\": 46900, \"\\u0120chau\": 46901, \"\\u0120Spiegel\": 46902, \"unic\": 46903, \"-->\": 46904, \"\\u0120Philips\": 46905, \"\\u0120Kafka\": 46906, \"\\u0120upheaval\": 46907, \"\\u0120sentimental\": 46908, \"\\u0120sax\": 46909, \"\\u0120Akira\": 46910, \"serial\": 46911, \"Matrix\": 46912, \"\\u0120electing\": 46913, \"\\u0120commenter\": 46914, \"\\u0120Nebula\": 46915, \"plets\": 46916, \"\\u0120Nadu\": 46917, \"\\u0120Adren\": 46918, \"\\u0120enshr\": 46919, \"\\u0120RAND\": 46920, \"financial\": 46921, \"\\u0120Clyde\": 46922, \"utherford\": 46923, \"\\u0120signage\": 46924, \"\\u0120deline\": 46925, \"\\u0120phosphate\": 46926, \"roversial\": 46927, \"fascist\": 46928, \"\\u0120Vall\": 46929, \"\\u0120Bethlehem\": 46930, \"\\u0120fors\": 46931, \"\\u0120english\": 46932, \"Solid\": 46933, \"Nature\": 46934, \"\\u0120va\": 46935, \"\\u0120Guests\": 46936, \"\\u0120tantal\": 46937, \"\\u0120autoimmune\": 46938, \";;;;;;;;;;;;\": 46939, \"\\u0120Totally\": 46940, \"\\u0120Ov\": 46941, \"\\u0120defences\": 46942, \"\\u0120Coconut\": 46943, \"\\u0120tranquil\": 46944, \"\\u0120ploy\": 46945, \"\\u0120flavours\": 46946, \"\\u0120Flask\": 46947, \"\\u00e3\\u0124\\u00a8\\u00e3\\u0125\\u00ab\": 46948, \"\\u0120Weston\": 46949, \"\\u0120Volvo\": 46950, \"870\": 46951, \"\\u0120microphones\": 46952, \"verbal\": 46953, \"RPG\": 46954, \"\\u0120iii\": 46955, \";}\": 46956, \"028\": 46957, \"\\u0120headlined\": 46958, \"\\u0120primed\": 46959, \"\\u0120hoard\": 46960, \"\\u0120Shad\": 46961, \"\\u0120ENTER\": 46962, \"\\u0120triangular\": 46963, \"\\u0120capit\": 46964, \"lik\": 46965, \"\\u0120Ancients\": 46966, \"\\u0120lash\": 46967, \"\\u0120convol\": 46968, \"\\u0120colonel\": 46969, \"enemy\": 46970, \"Gra\": 46971, \"\\u0120pubs\": 46972, \"utters\": 46973, \"\\u0120assigns\": 46974, \"\\u0120Penet\": 46975, \"\\u0120Monstrous\": 46976, \"\\u0120Bowen\": 46977, \"ilver\": 46978, \"Haunted\": 46979, \"\\u0120Ding\": 46980, \"started\": 46981, \"plin\": 46982, \"\\u0120contaminants\": 46983, \"\\u0120DOE\": 46984, \"ffen\": 46985, \"\\u0120Technician\": 46986, \"Ry\": 46987, \"\\u0120robbers\": 46988, \"\\u0120hotline\": 46989, \"\\u0120Guardiola\": 46990, \"\\u0120Kaufman\": 46991, \"rower\": 46992, \"\\u0120Dresden\": 46993, \"\\u0120Alpine\": 46994, \"Elf\": 46995, \"\\u0120fmt\": 46996, \"\\u0120Sard\": 46997, \"urses\": 46998, \"gpu\": 46999, \"Unix\": 47000, \"\\u0120unequivocally\": 47001, \"\\u0120Citizenship\": 47002, \"quad\": 47003, \"mire\": 47004, \"\\u0120Sweeney\": 47005, \"Battery\": 47006, \"615\": 47007, \"\\u0120pancakes\": 47008, \"\\u0120oats\": 47009, \"Maps\": 47010, \"\\u0120Contrast\": 47011, \"mbudsman\": 47012, \"\\u0120EPS\": 47013, \"\\u0120subcommittee\": 47014, \"\\u0120sourcing\": 47015, \"\\u0120sizing\": 47016, \"\\u0120Buffer\": 47017, \"\\u0120Mandatory\": 47018, \"\\u0120moderates\": 47019, \"\\u0120Patterns\": 47020, \"\\u0120Chocobo\": 47021, \"\\u0120Zan\": 47022, \"\\u0120STATES\": 47023, \"\\u0120Judging\": 47024, \"\\u0120Inher\": 47025, \"*:\": 47026, \"\\u0120bil\": 47027, \"\\u0120Yen\": 47028, \"\\u0120exhilar\": 47029, \"ollower\": 47030, \"zers\": 47031, \"\\u0120snug\": 47032, \"maximum\": 47033, \"\\u0120despicable\": 47034, \"\\u0120PACK\": 47035, \"\\u0120Annex\": 47036, \"\\u0120sarcastic\": 47037, \"\\u0120latex\": 47038, \"\\u0120tamp\": 47039, \"\\u0120Sao\": 47040, \"bah\": 47041, \"\\u0120Reverend\": 47042, \"\\u0120Chinatown\": 47043, \"\\u0120AUT\": 47044, \"documented\": 47045, \"\\u0120GABA\": 47046, \"\\u0120Canaan\": 47047, \"\\u0120\\u00d9\\u0127\": 47048, \"\\u0120governs\": 47049, \"prev\": 47050, \"Esc\": 47051, \"\\u0120Estimates\": 47052, \"OSP\": 47053, \"\\u0120endeavour\": 47054, \"\\u0120Closing\": 47055, \"ometime\": 47056, \"everyone\": 47057, \"\\u0120worsen\": 47058, \"\\u0120scanners\": 47059, \"\\u0120deviations\": 47060, \"\\u0120Robotics\": 47061, \"\\u0120Compton\": 47062, \"\\u0120sorcerer\": 47063, \"\\u0120endogenous\": 47064, \"\\u0120emulation\": 47065, \"\\u0120Piercing\": 47066, \"\\u0120Aph\": 47067, \"\\u0120Socket\": 47068, \"\\u0120bould\": 47069, \"\\u0120OU\": 47070, \"\\u0120Borderlands\": 47071, \"\\u01201863\": 47072, \"Gordon\": 47073, \"\\u0120WTO\": 47074, \"\\u0120restricts\": 47075, \"\\u0120mosaic\": 47076, \"\\u0120melodies\": 47077, \"\\u00e7\\u0126\": 47078, \"Tar\": 47079, \"\\u0120disson\": 47080, \"\\u0120Provides\": 47081, \"\\u0120......\": 47082, \"bek\": 47083, \"FIX\": 47084, \"\\u0120broom\": 47085, \"anship\": 47086, \"Doctors\": 47087, \"\\u0120nerds\": 47088, \"\\u0120Regions\": 47089, \"naissance\": 47090, \"\\u0120mete\": 47091, \"\\u0120crept\": 47092, \"plings\": 47093, \"\\u0120girlfriends\": 47094, \"knit\": 47095, \"igent\": 47096, \"owe\": 47097, \"\\u0120ushered\": 47098, \"\\u0120Baz\": 47099, \"Mobil\": 47100, \"434\": 47101, \"\\u0120Presents\": 47102, \"origin\": 47103, \"\\u0120insomnia\": 47104, \"\\u0120Aux\": 47105, \"439\": 47106, \"\\u0120Chili\": 47107, \"irsch\": 47108, \"GAME\": 47109, \"\\u0120gestation\": 47110, \"algia\": 47111, \"romising\": 47112, \"$,\": 47113, \"crow\": 47114, \"\\u0120Inspection\": 47115, \"atomic\": 47116, \"Relations\": 47117, \"JOHN\": 47118, \"roman\": 47119, \"\\u0120Clockwork\": 47120, \"\\u0120Bakr\": 47121, \"mone\": 47122, \"MET\": 47123, \"\\u0120thirsty\": 47124, \"\\u0120bc\": 47125, \"\\u0120faculties\": 47126, \"Rum\": 47127, \"\\u0120nuance\": 47128, \"\\u0120Darius\": 47129, \"pleting\": 47130, \"fters\": 47131, \"etchup\": 47132, \"Registration\": 47133, \"\\u0120KE\": 47134, \"Rah\": 47135, \"\\u0120preferential\": 47136, \"\\u0120Lash\": 47137, \"\\u0120HH\": 47138, \"Valid\": 47139, \"\\u0120NAV\": 47140, \"\\u0120starve\": 47141, \"\\u0120Gong\": 47142, \"zynski\": 47143, \"\\u0120Actress\": 47144, \"\\u0120wik\": 47145, \"\\u0120unaccompanied\": 47146, \"lvl\": 47147, \"Bride\": 47148, \"ADS\": 47149, \"\\u0120Commando\": 47150, \"\\u0120Vaughn\": 47151, \"Wallet\": 47152, \"\\u0120hopping\": 47153, \"\\u0120Vie\": 47154, \"\\u0120caveats\": 47155, \"\\u0120alas\": 47156, \"ifled\": 47157, \"abuse\": 47158, \"661\": 47159, \"\\u0120ibn\": 47160, \"\\u0120gul\": 47161, \"\\u0120robbing\": 47162, \"til\": 47163, \"ILA\": 47164, \"\\u0120mitigating\": 47165, \"\\u0120aptly\": 47166, \"\\u0120tyrant\": 47167, \"\\u0120midday\": 47168, \"\\u0120Gilmore\": 47169, \"\\u0120Decker\": 47170, \"\\u0120\\u00c2\\u00a7\\u00c2\\u00a7\": 47171, \"partial\": 47172, \"Exactly\": 47173, \"\\u0120phenotype\": 47174, \"\\u0120[+]\": 47175, \"\\u0120Plex\": 47176, \"\\u0120Ips\": 47177, \"versions\": 47178, \"\\u0120ebook\": 47179, \"\\u0120chic\": 47180, \"gross\": 47181, \"\\\":\\\"\\\"},{\\\"\": 47182, \"\\u0120Surprisingly\": 47183, \"Morgan\": 47184, \"\\u0120residues\": 47185, \"\\u0120Confederation\": 47186, \"infeld\": 47187, \"\\u0120lyr\": 47188, \"moderate\": 47189, \"\\u0120perpendicular\": 47190, \"VK\": 47191, \"\\u0120synchronized\": 47192, \"\\u0120refreshed\": 47193, \"\\u0120adore\": 47194, \"\\u0120Torment\": 47195, \"olina\": 47196, \"\\u01202600\": 47197, \"ItemTracker\": 47198, \"\\u0120pies\": 47199, \"\\u0120FAT\": 47200, \"\\u0120RHP\": 47201, \"048\": 47202, \"\\u0120RESP\": 47203, \"\\u0120BJ\": 47204, \"allows\": 47205, \"Pand\": 47206, \"\\u0120unwelcome\": 47207, \"\\u0120Voc\": 47208, \"\\u0120Bastard\": 47209, \"\\u0120OW\": 47210, \"\\u0120LAR\": 47211, \"\\u0120Healer\": 47212, \"Environmental\": 47213, \"\\u0120Kenyan\": 47214, \"\\u0120Trance\": 47215, \"\\u0120Pats\": 47216, \"\\u0120aliases\": 47217, \"\\u0120Garfield\": 47218, \"\\u0120campaigner\": 47219, \"\\u0120advancements\": 47220, \"\\u0120Okinawa\": 47221, \"\\u0120Coh\": 47222, \"owsky\": 47223, \"\\u0120starved\": 47224, \"\\u0120sizeable\": 47225, \"\\u0120:-)\": 47226, \"\\u0120mRNA\": 47227, \"\\u0120suspensions\": 47228, \"istar\": 47229, \"Scotland\": 47230, \"Prin\": 47231, \"------------------------------------------------\": 47232, \"\\u0120502\": 47233, \"\\u0120teaspoons\": 47234, \"\\u01201050\": 47235, \"\\u0120coercive\": 47236, \"\\u0120Masonic\": 47237, \"edded\": 47238, \"\\u0120Passenger\": 47239, \"\\u0120latt\": 47240, \"\\u0120braces\": 47241, \"\\u0120Steal\": 47242, \"\\u0120NYT\": 47243, \"\\u0120Kats\": 47244, \"\\u0120Celest\": 47245, \"aez\": 47246, \"Tu\": 47247, \"\\u0120Coulter\": 47248, \"\\u00f0\\u0141\\u013a\": 47249, \"Flickr\": 47250, \"\\u0120Wilmington\": 47251, \"iths\": 47252, \"++;\": 47253, \"\\u0120vending\": 47254, \"\\u0120negro\": 47255, \"\\u0120Phi\": 47256, \"\\u0120Yellowstone\": 47257, \"Callback\": 47258, \"\\u0120shampoo\": 47259, \"\\u0120Shades\": 47260, \"wat\": 47261, \"\\u0120superhuman\": 47262, \"\\u0120ridiculed\": 47263, \"\\u0120holiest\": 47264, \"ombo\": 47265, \"\\u0120interns\": 47266, \"\\u0120hone\": 47267, \"\\u0120Paragu\": 47268, \"URI\": 47269, \"\\u0120dangling\": 47270, \"\\u00e3\\u0124\\u00bb\": 47271, \"sov\": 47272, \"ictional\": 47273, \"availability\": 47274, \"\\u0120revocation\": 47275, \"\\u0120dow\": 47276, \"inic\": 47277, \"\\u0120THEIR\": 47278, \"\\u0120iso\": 47279, \"\\u0120outings\": 47280, \"\\u0120Lethal\": 47281, \"\\u0120)))\": 47282, \"\\u0120inaccur\": 47283, \"\\u0120outlandish\": 47284, \"\\u0120anus\": 47285, \"letico\": 47286, \"idon\": 47287, \"lol\": 47288, \"\\u0120unregulated\": 47289, \"\\u0120succumbed\": 47290, \"\\u0120cuff\": 47291, \"\\u0120Wasteland\": 47292, \"letal\": 47293, \"\\u0120substr\": 47294, \"\\u0120coffers\": 47295, \"\\u0120automakers\": 47296, \"ovi\": 47297, \"\\u0120Xue\": 47298, \"\\u0120Daytona\": 47299, \"\\u0120jarring\": 47300, \"\\u0120fumes\": 47301, \"\\u0120disbanded\": 47302, \"zik\": 47303, \"itton\": 47304, \"\\u0120strikingly\": 47305, \"\\u0120spores\": 47306, \"Adapter\": 47307, \".):\": 47308, \"\\u0120Lyndon\": 47309, \"ivalry\": 47310, \"\\u0120orally\": 47311, \"\\u0120tumultuous\": 47312, \"\\u0120displeasure\": 47313, \"\\u0120cones\": 47314, \"orrect\": 47315, \"\\u0120appease\": 47316, \"\\u0120derby\": 47317, \"\\u0120Tripoli\": 47318, \"\\u0120Aless\": 47319, \"\\u0120poked\": 47320, \"\\u0120Guilty\": 47321, \"vP\": 47322, \"Enough\": 47323, \"\\u0120originals\": 47324, \"699\": 47325, \"\\u0120rabbi\": 47326, \"\\u0120proverbial\": 47327, \"\\u0120postpone\": 47328, \"elope\": 47329, \"\\u0120Misty\": 47330, \"\\u0120staffed\": 47331, \"\\u0120Unemployment\": 47332, \"reditary\": 47333, \"\\u0120diligent\": 47334, \"recomm\": 47335, \"measures\": 47336, \"asin\": 47337, \"825\": 47338, \"\\u0120ponds\": 47339, \"\\u0120mmol\": 47340, \"\\u0120SAR\": 47341, \"\\u0120CARE\": 47342, \"\\u0120371\": 47343, \"\\u0120clenched\": 47344, \"\\u0120Corsair\": 47345, \"\\u0120caricature\": 47346, \"zn\": 47347, \"attach\": 47348, \"\\u0120Schro\": 47349, \"speak\": 47350, \"painted\": 47351, \"\\u0120Suc\": 47352, \"\\u0120ENT\": 47353, \"\\u0120cellul\": 47354, \"\\u0120Paid\": 47355, \"diagn\": 47356, \"WHERE\": 47357, \"\\u0120texted\": 47358, \"Barn\": 47359, \"\\u0120retracted\": 47360, \"\\u0120Referred\": 47361, \"Sav\": 47362, \"\\u0120upkeep\": 47363, \"\\u0120workplaces\": 47364, \"\\u0120Tokens\": 47365, \"\\u0120amplify\": 47366, \"clinical\": 47367, \"\\u0120multic\": 47368, \"mberg\": 47369, \"\\u0120convoluted\": 47370, \"Region\": 47371, \"565\": 47372, \"\\u0120Topic\": 47373, \"\\u0120snail\": 47374, \"\\u0120saline\": 47375, \"\\u0120insurrection\": 47376, \"\\u0120Petr\": 47377, \"forts\": 47378, \"BAT\": 47379, \"\\u0120Navajo\": 47380, \"\\u0120rudimentary\": 47381, \"\\u0120Laksh\": 47382, \"ONDON\": 47383, \"Measure\": 47384, \"\\u0120transformer\": 47385, \"\\u0120Goddard\": 47386, \"\\u0120coincides\": 47387, \"irin\": 47388, \"Rex\": 47389, \"\\u0120Bok\": 47390, \"quit\": 47391, \"\\u0120shotguns\": 47392, \"\\u0120proletarian\": 47393, \"\\u0120scorp\": 47394, \"\\u0120Ada\": 47395, \"514\": 47396, \"\\u0120slander\": 47397, \"recorded\": 47398, \"\\u0120embell\": 47399, \"risome\": 47400, \"\\u0120apologizing\": 47401, \"\\u0120Mulcair\": 47402, \"\\u0120Gibraltar\": 47403, \"Cla\": 47404, \"\\u0120allot\": 47405, \"\\u0120Attention\": 47406, \"\\u0120433\": 47407, \"leave\": 47408, \"\\u0120whine\": 47409, \"\\u0120Issa\": 47410, \"\\u0120Faust\": 47411, \"\\u0120Barron\": 47412, \"heny\": 47413, \"\\u0120victimized\": 47414, \"Jews\": 47415, \"\\u0120nurturing\": 47416, \"ettel\": 47417, \"Winged\": 47418, \"\\u0120Subtle\": 47419, \"\\u0120flavorful\": 47420, \"\\u0120Reps\": 47421, \"enged\": 47422, \"callback\": 47423, \"\\u0120directional\": 47424, \"\\u0120clasp\": 47425, \"\\u0120Directions\": 47426, \"planet\": 47427, \"iculture\": 47428, \"Helper\": 47429, \"icion\": 47430, \"acia\": 47431, \"\\u0120\\u00e7\\u00a5\\u0140\": 47432, \"\\u0120surges\": 47433, \"\\u0120canoe\": 47434, \"\\u0120Premiership\": 47435, \"been\": 47436, \"\\u0120defied\": 47437, \"\\u0120Trooper\": 47438, \"\\u0120tripod\": 47439, \"\\u0120gasp\": 47440, \"\\u0120Euph\": 47441, \"\\u0120Ads\": 47442, \"vernight\": 47443, \"highly\": 47444, \"Role\": 47445, \"\\u0120entangled\": 47446, \"\\u0120Zeit\": 47447, \"618\": 47448, \"\\u0120Rusty\": 47449, \"\\u0120havens\": 47450, \"\\u0120Vaughan\": 47451, \"HAEL\": 47452, \"\\u0120SERVICE\": 47453, \"/,\": 47454, \"\\u0120stricken\": 47455, \"\\u0120delusions\": 47456, \"\\u0120bis\": 47457, \"\\u0120Haf\": 47458, \"\\u0120gratification\": 47459, \"\\u0120enticing\": 47460, \"UNCH\": 47461, \"Adams\": 47462, \"\\u0120OLED\": 47463, \"\\u0120Beetle\": 47464, \"\\u01201899\": 47465, \"\\u0120SOFTWARE\": 47466, \"ategor\": 47467, \"VL\": 47468, \"\\u0120Totem\": 47469, \"\\u0120Gators\": 47470, \"ATURES\": 47471, \"\\u0120impedance\": 47472, \"Registered\": 47473, \"\\u0120Cary\": 47474, \"\\u0120Aerial\": 47475, \"onne\": 47476, \"enium\": 47477, \"\\u0120dred\": 47478, \"\\u0120Beg\": 47479, \"\\u0120concurrently\": 47480, \"\\u0120superpower\": 47481, \"\\u0120Xan\": 47482, \"jew\": 47483, \"imester\": 47484, \"\\u0120Dickinson\": 47485, \"\\u00e2\\u0136\\u0123\": 47486, \"Fla\": 47487, \"\\u0120pree\": 47488, \"\\u0120Rollins\": 47489, \"\\u00a9\\u00b6\\u00e6\": 47490, \"\\u0120denomination\": 47491, \"\\u0120Lana\": 47492, \"516\": 47493, \"\\u0120inciting\": 47494, \"scribed\": 47495, \"juries\": 47496, \"\\u0120Wonders\": 47497, \"approximately\": 47498, \"\\u0120suspending\": 47499, \"\\u0120mountainous\": 47500, \"\\u0120Laugh\": 47501, \"oidal\": 47502, \"Ns\": 47503, \"Detect\": 47504, \")=\": 47505, \"\\u0120Luthor\": 47506, \"\\u0120Schwarzenegger\": 47507, \"\\u0120Muller\": 47508, \"\\u0120Devi\": 47509, \"ecycle\": 47510, \"Jar\": 47511, \"613\": 47512, \"\\u0120Longh\": 47513, \"Bah\": 47514, \"\\u0120SPORTS\": 47515, \"nw\": 47516, \"\\u0120refinement\": 47517, \"\\u0120waterways\": 47518, \"\\u0120diner\": 47519, \"Blade\": 47520, \"683\": 47521, \"Fac\": 47522, \"\\u0120initials\": 47523, \"\\u0120rog\": 47524, \"\\u0120paranormal\": 47525, \"BUT\": 47526, \"\\u0120[(\": 47527, \"\\u0120Swanson\": 47528, \"\\u0120Mesh\": 47529, \"\\u00e2\\u0138\\u00ac\": 47530, \"Improve\": 47531, \"\\u0120Radiation\": 47532, \"\\u0120Esther\": 47533, \"\\u0120Esk\": 47534, \"\\u0120Aly\": 47535, \"iky\": 47536, \"\\u0120irrad\": 47537, \"\\u0120Buckingham\": 47538, \"\\u0120refill\": 47539, \"\\u0120._\": 47540, \"Repe\": 47541, \"CONCLUS\": 47542, \"\\u0120differentiated\": 47543, \"\\u0120chirop\": 47544, \"\\u0120Atkins\": 47545, \"Pattern\": 47546, \"\\u0120excise\": 47547, \"\\u0120cabal\": 47548, \"NSA\": 47549, \"\\u0120STA\": 47550, \"\\u0120SIL\": 47551, \"\\u0120Paraly\": 47552, \"\\u0120rye\": 47553, \"\\u0120Howell\": 47554, \"\\u0120Countdown\": 47555, \"nesses\": 47556, \"alysed\": 47557, \"\\u0120resize\": 47558, \"\\u00e3\\u0124\\u00bd\": 47559, \"\\u0120budgetary\": 47560, \"\\u0120Stras\": 47561, \"wang\": 47562, \"\\u0120apiece\": 47563, \"\\u0120precincts\": 47564, \"\\u0120peach\": 47565, \"\\u0120skyline\": 47566, \"\\u0120353\": 47567, \"popular\": 47568, \"Appearances\": 47569, \"\\u0120Mechanics\": 47570, \"\\u0120DevOnline\": 47571, \"Sullivan\": 47572, \"Zen\": 47573, \"\\u0120pu\": 47574, \"opolis\": 47575, \"544\": 47576, \"\\u0120deform\": 47577, \"\\u0120counteract\": 47578, \"\\u0120Lange\": 47579, \"\\u0120417\": 47580, \"Console\": 47581, \"774\": 47582, \"\\u0120nodding\": 47583, \"\\u0120populism\": 47584, \"\\u0120hep\": 47585, \"\\u0120counselling\": 47586, \"compliance\": 47587, \"UFF\": 47588, \"\\u0120undeniably\": 47589, \"\\u0120railing\": 47590, \"\\u0120Horowitz\": 47591, \"\\u0120Simone\": 47592, \"\\u0120Bungie\": 47593, \"\\u0120ak\": 47594, \"\\u0120Talks\": 47595, \"xff\": 47596, \"flake\": 47597, \"Crash\": 47598, \"\\u0120sweaty\": 47599, \"\\u0120banquet\": 47600, \"\\u0120OFFIC\": 47601, \"\\u0120inventive\": 47602, \"\\u0120astronomer\": 47603, \"\\u0120Stamford\": 47604, \"\\u0120Scare\": 47605, \"\\u0120GREEN\": 47606, \"olicited\": 47607, \"\\u0120rusher\": 47608, \"\\u0120centrist\": 47609, \"ighting\": 47610, \"\\u0120subclass\": 47611, \"\\u0120disav\": 47612, \"\\u0120defund\": 47613, \"\\u0120Nanto\": 47614, \"ociate\": 47615, \"mast\": 47616, \"\\u0120pacif\": 47617, \"\\u0120mend\": 47618, \"eers\": 47619, \"immigration\": 47620, \"ESSION\": 47621, \"\\u0120numbering\": 47622, \"\\u0120laughable\": 47623, \"\\u0120Ended\": 47624, \"viation\": 47625, \"emark\": 47626, \"Pitt\": 47627, \"\\u0120meticulous\": 47628, \"\\u0120LF\": 47629, \"\\u0120congratulated\": 47630, \"\\u0120Birch\": 47631, \"\\u0120swayed\": 47632, \"\\u0120semifinals\": 47633, \"\\u0120humankind\": 47634, \"matter\": 47635, \"\\u0120Equip\": 47636, \"opausal\": 47637, \"Said\": 47638, \"\\u0120Layout\": 47639, \"\\u0120voicing\": 47640, \"\\u0120thug\": 47641, \"\\u0120pornographic\": 47642, \"IPS\": 47643, \"\\u0120moaning\": 47644, \"\\u0120grievance\": 47645, \"\\u0120confessions\": 47646, \"escal\": 47647, \"TEXTURE\": 47648, \"Authent\": 47649, \"osaurus\": 47650, \"Purchase\": 47651, \"\\u0120relegation\": 47652, \"alter\": 47653, \"\\u0120\\u00c2\\u0142\\u00c2\\u0142\": 47654, \"\\u0120riddled\": 47655, \"\\u0120ogre\": 47656, \"\\u0120Lowell\": 47657, \"Occup\": 47658, \"Eat\": 47659, \"\\u0120Hyder\": 47660, \"\\u0120Adviser\": 47661, \"Commerce\": 47662, \"Hunt\": 47663, \"\\u0120Orth\": 47664, \"\\u0120Competitive\": 47665, \"\\u0120CLA\": 47666, \"CDC\": 47667, \"\\u0120salads\": 47668, \"Fle\": 47669, \"\\u0120industrialized\": 47670, \"`,\": 47671, \"\\u0120OWN\": 47672, \"\\u0120beck\": 47673, \"\\u0120Particularly\": 47674, \"oubt\": 47675, \"\\u0120mM\": 47676, \"\\u0120Hussain\": 47677, \"\\u0120Chennai\": 47678, \"\\u0120920\": 47679, \"\\u0120appointing\": 47680, \"\\u0120Cullen\": 47681, \",,,,,,,,\": 47682, \"\\u0120pores\": 47683, \"verified\": 47684, \"\\u0120biochemical\": 47685, \"emate\": 47686, \"\\u0120cowardly\": 47687, \"\\u0120Helsinki\": 47688, \"\\u0120Ethiopian\": 47689, \"SOURCE\": 47690, \"ERC\": 47691, \"estro\": 47692, \"\\u0120biotech\": 47693, \"\\u0120Sour\": 47694, \"\\u0120brewer\": 47695, \"Bloomberg\": 47696, \"\\u0120intensify\": 47697, \"Glass\": 47698, \"anco\": 47699, \"\\u0120FDR\": 47700, \"greSQL\": 47701, \"\\u0120Fires\": 47702, \"\\u00a9\\u00b6\\u00e6\\u00a5\\u00b5\": 47703, \"eco\": 47704, \"1001\": 47705, \"\\u0120Homeless\": 47706, \"\\u0120instantaneous\": 47707, \"\\u0120Haste\": 47708, \"igel\": 47709, \"Diamond\": 47710, \"\\u0120paving\": 47711, \"\\u0120landfill\": 47712, \"\\u0120dads\": 47713, \"houn\": 47714, \":]\": 47715, \"\\u0120incendiary\": 47716, \"\\u0120Livingston\": 47717, \"\\u0120Hilbert\": 47718, \"\\u0120Checks\": 47719, \"styles\": 47720, \"inators\": 47721, \"\\u0120Clive\": 47722, \"phrine\": 47723, \"\\u0120chimpanzees\": 47724, \"\\u0120pall\": 47725, \"\\u0120JM\": 47726, \"\\u0120Aadhaar\": 47727, \"\\u00f0\\u013f\": 47728, \"\\u0120achievable\": 47729, \"disabled\": 47730, \"PET\": 47731, \"OOOOOOOO\": 47732, \"Mot\": 47733, \"\\u0120intangible\": 47734, \"\\u0120ballet\": 47735, \"\\u0120Webs\": 47736, \"\\u0120Estimated\": 47737, \"Effects\": 47738, \"\\u0120bailed\": 47739, \"Joshua\": 47740, \"\\u0120turbulence\": 47741, \"\\u0120occupant\": 47742, \"\\u0120Daylight\": 47743, \"\\u0120361\": 47744, \"meet\": 47745, \"\\u0120statically\": 47746, \"\\u0120onlook\": 47747, \"\\u0120ki\": 47748, \"illegal\": 47749, \"\\u0120velvet\": 47750, \"\\u0120dehydration\": 47751, \"\\u0120acquies\": 47752, \"\\u0120Rez\": 47753, \"akura\": 47754, \"\\u0120Upton\": 47755, \"atro\": 47756, \"\\u0120incomprehensible\": 47757, \"\\u0120backdoor\": 47758, \"\\u0120Rhino\": 47759, \"727\": 47760, \"\\u0120maths\": 47761, \")+\": 47762, \"\\u0120heresy\": 47763, \"\\u0120df\": 47764, \"\\u0120Roche\": 47765, \"\\u0120Lydia\": 47766, \"\\u0120pancreat\": 47767, \"reply\": 47768, \"arrell\": 47769, \"\\u0120solicitation\": 47770, \"\\u0120circadian\": 47771, \"BIP\": 47772, \"\\u0120foray\": 47773, \"\\u0120cryptic\": 47774, \"izu\": 47775, \"imeo\": 47776, \"\\u0120Tomato\": 47777, \"\\u0120Homs\": 47778, \"examination\": 47779, \"\\u0120quarry\": 47780, \"\\u0120Valiant\": 47781, \"\\u0120Jericho\": 47782, \"\\u0120INCLUD\": 47783, \"\\u01201840\": 47784, \"519\": 47785, \"\\u0120resists\": 47786, \"\\u0120snapshots\": 47787, \"\\u0120Spur\": 47788, \"\\u0120Antiqu\": 47789, \"Login\": 47790, \"\\u0120bestselling\": 47791, \"\\u0120antic\": 47792, \"\\u0120Sutherland\": 47793, \"\\u00e3\\u0124\\u00a2\\u00e3\\u0125\\u00ab\": 47794, \"\\u0120~/\": 47795, \"\\u0120Parm\": 47796, \"\\u00e8\\u0125\": 47797, \"Pages\": 47798, \"intensity\": 47799, \"\\u0120immobil\": 47800, \"\\u01201865\": 47801, \"zzo\": 47802, \"\\u0120nifty\": 47803, \"\\u0120fentanyl\": 47804, \"\\u0120Preservation\": 47805, \"ophen\": 47806, \"\\u0120darts\": 47807, \"\\u0120Dinosaur\": 47808, \"pointers\": 47809, \"\\u0120Rite\": 47810, \"suggest\": 47811, \"awareness\": 47812, \"\\u0120Sheridan\": 47813, \"\\u0120stances\": 47814, \"\\u0120sorcery\": 47815, \"\\u0120perjury\": 47816, \"\\u0120Nikola\": 47817, \"iever\": 47818, \"\\u0120fiance\": 47819, \"\\u0120Jordanian\": 47820, \"\\u0120Balloon\": 47821, \"\\u0120nab\": 47822, \"\\u0120kb\": 47823, \"\\u0120humanities\": 47824, \"\\u0120Tanaka\": 47825, \"hillary\": 47826, \"\\u0120consultancy\": 47827, \"\\u0120Zub\": 47828, \"\\u0120remission\": 47829, \"\\u0120confid\": 47830, \"CHQ\": 47831, \"\\u0120Fug\": 47832, \"\\u0120improvis\": 47833, \"Yep\": 47834, \"/_\": 47835, \"\\u0120unwillingness\": 47836, \"\\u0120portfolios\": 47837, \"055\": 47838, \"\\u0120Instructor\": 47839, \"aiman\": 47840, \"\\u0120claimants\": 47841, \"Mbps\": 47842, \"\\u0120Bye\": 47843, \"received\": 47844, \"Tweet\": 47845, \"\\u0120indemn\": 47846, \"riz\": 47847, \"amara\": 47848, \"Nat\": 47849, \"\\u0120evaluates\": 47850, \"\\u0120Lur\": 47851, \"epad\": 47852, \"FOX\": 47853, \"\\u0120Thro\": 47854, \"\\u0120rusty\": 47855, \"\\u0120bedrock\": 47856, \"\\u0120Oprah\": 47857, \"JB\": 47858, \"\\u0120manipulative\": 47859, \"\\u0120willful\": 47860, \"\\u0120relapse\": 47861, \"\\u0120extant\": 47862, \"Theme\": 47863, \"Sensor\": 47864, \"\\u0120Stability\": 47865, \"govern\": 47866, \"\\u0120poppy\": 47867, \"\\u0120knack\": 47868, \"\\u0120insulated\": 47869, \"\\u0120Tile\": 47870, \"\\u0120Extrem\": 47871, \"\\u0120untold\": 47872, \"\\u0120converge\": 47873, \"\\u0120refuel\": 47874, \"igroup\": 47875, \"\\u0120distortions\": 47876, \"\\u0120ravaged\": 47877, \"\\u0120mechanically\": 47878, \"\\u0120Reilly\": 47879, \"\\u0120Nose\": 47880, \"\\u0120Incarnation\": 47881, \"\\u0120Becky\": 47882, \"abbling\": 47883, \"\\u0120taco\": 47884, \"\\u0120rake\": 47885, \"\\u0120melancholy\": 47886, \"\\u0120illustrious\": 47887, \"\\u0120Dartmouth\": 47888, \"Guide\": 47889, \"\\u0120Razer\": 47890, \"\\u0120Benz\": 47891, \"Ultimate\": 47892, \"\\u0120Surprise\": 47893, \"\\u0120pageant\": 47894, \"offer\": 47895, \"Whoever\": 47896, \"\\u0120wiser\": 47897, \"\\u0120chemist\": 47898, \"\\u0120HELL\": 47899, \"\\u0120Bulk\": 47900, \"\\u0120plutonium\": 47901, \"\\u0120COVER\": 47902, \"\\u00d6\\u00bc\": 47903, \"failed\": 47904, \"\\u0120tirelessly\": 47905, \"\\u0120infertility\": 47906, \"\\u0120Trident\": 47907, \"\\u0120Showtime\": 47908, \"\\u0120Civ\": 47909, \"Vice\": 47910, \"requires\": 47911, \"ittance\": 47912, \"\\u0120uncontrolled\": 47913, \"interesting\": 47914, \"561\": 47915, \"\\u0120innovate\": 47916, \"ategic\": 47917, \"Lie\": 47918, \"\\u0120Selling\": 47919, \"Ul\": 47920, \"\\u0120savior\": 47921, \"\\u0120Tosh\": 47922, \"\\u0120swast\": 47923, \"PASS\": 47924, \"\\u0120rink\": 47925, \"\\u0120cardio\": 47926, \"\\u0120Iro\": 47927, \"udi\": 47928, \"\\u0120vantage\": 47929, \"\\u0120vans\": 47930, \"\\u0120Ni\\u00c3\\u00b1o\": 47931, \"+=\": 47932, \"\\u0120propagate\": 47933, \"<?\": 47934, \"\\u0120methodological\": 47935, \"20439\": 47936, \"\\u0120triglycer\": 47937, \"\\u0120ingrained\": 47938, \"\\u0120Annotations\": 47939, \"arranted\": 47940, \"617\": 47941, \"\\u0120Sodium\": 47942, \"\\u0120AAC\": 47943, \"technical\": 47944, \"multipl\": 47945, \"\\u0120373\": 47946, \"\\u00e5\\u012d\": 47947, \"\\u0120decisively\": 47948, \"\\u0120boosters\": 47949, \"\\u0120desserts\": 47950, \"\\u0120Grenade\": 47951, \"\\u0120testifying\": 47952, \"\\u0120Scully\": 47953, \"IDs\": 47954, \"\\u0120lockdown\": 47955, \"\\u0120Scher\": 47956, \"\\u0120R\\u00c3\\u00a9\": 47957, \"\\u0120Whitman\": 47958, \"\\u0120Ramsay\": 47959, \"remote\": 47960, \"\\u0120hikers\": 47961, \"\\u0120Hyundai\": 47962, \"\\u0120conscientious\": 47963, \"\\u0120clerics\": 47964, \"\\u0120Siberian\": 47965, \"uti\": 47966, \"isbury\": 47967, \"\\u0120relayed\": 47968, \"\\u0120quartz\": 47969, \"\\u0120CBI\": 47970, \"seekers\": 47971, \"ulla\": 47972, \"\\u0120welding\": 47973, \"\\u0120Shal\": 47974, \"bleacher\": 47975, \"Tai\": 47976, \"\\u0120Samson\": 47977, \"\\u0120tumble\": 47978, \"\\u0120Investor\": 47979, \"\\u0120subcontract\": 47980, \"\\u0120Shinra\": 47981, \"owicz\": 47982, \"jandro\": 47983, \"dad\": 47984, \"\\u0120terminating\": 47985, \"\\u0120Neural\": 47986, \"\\u00e4\\u00bb\\u00a3\": 47987, \"\\u0120leakage\": 47988, \"\\u0120Midlands\": 47989, \"\\u0120Caucasus\": 47990, \"\\u00ed\\u0137\": 47991, \"cit\": 47992, \"llan\": 47993, \"ivably\": 47994, \"\\u0120Albion\": 47995, \"\\u0120457\": 47996, \"\\u0120registrations\": 47997, \"\\u0120comrade\": 47998, \"\\u0120clipboard\": 47999, \"047\": 48000, \"\\u0120discouraging\": 48001, \"\\u0120Oops\": 48002, \"Adapt\": 48003, \"\\u0120empath\": 48004, \"nv\": 48005, \"\\u0120PROT\": 48006, \"\\u0120Donn\": 48007, \"\\u0120Pax\": 48008, \"\\u0120Bayer\": 48009, \"tis\": 48010, \"Square\": 48011, \"\\u0120footprints\": 48012, \"particip\": 48013, \"\\u0120Chilean\": 48014, \"Brend\": 48015, \"inducing\": 48016, \"Magn\": 48017, \"\\u0120clubhouse\": 48018, \"\\u0120Magnum\": 48019, \"\\u0120encamp\": 48020, \"\\u0120Ethnic\": 48021, \"ucha\": 48022, \"erey\": 48023, \"\\u0120watered\": 48024, \"\\u0120Calais\": 48025, \"\\u0120complexion\": 48026, \"\\u0120sects\": 48027, \"\\u0120renters\": 48028, \"\\u0120bras\": 48029, \"o\\u00c4\\u0141an\": 48030, \"Timeout\": 48031, \"Management\": 48032, \"\\u0120infographic\": 48033, \"Pokemon\": 48034, \"Clar\": 48035, \"\\u0120locality\": 48036, \"\\u0120flora\": 48037, \"asel\": 48038, \"Pont\": 48039, \"\\u0120populate\": 48040, \"\\u0120Ong\": 48041, \"\\u0120subsistence\": 48042, \"\\u0120auctions\": 48043, \"\\u0120McAuliffe\": 48044, \"\\u0120LOOK\": 48045, \"bringer\": 48046, \"\\u0120titan\": 48047, \"\\u0120manifold\": 48048, \"\\u0120\\u00e2\\u0139\\u0131\": 48049, \"\\u0120calibrated\": 48050, \"\\u0120caliphate\": 48051, \"\\u0120SHE\": 48052, \"\\u0120Commissioners\": 48053, \"ceivable\": 48054, \"jc\": 48055, \"Winner\": 48056, \"524\": 48057, \"\\u0120condone\": 48058, \"Otherwise\": 48059, \"\\u0120piling\": 48060, \"\\u0120embody\": 48061, \"\\u0120Crimean\": 48062, \"utics\": 48063, \"\\u0120Exhibition\": 48064, \"\\u0120426\": 48065, \"eering\": 48066, \"\\u0120vying\": 48067, \"\\u0120HUGE\": 48068, \"*=-\": 48069, \"\\u0120principled\": 48070, \"\\u00e0\\u00a6\": 48071, \"\\u0120quirks\": 48072, \"\\u0120Editors\": 48073, \"puting\": 48074, \"GES\": 48075, \"\\u0120FTA\": 48076, \"\\u00e0\\u00a4\\u00be\": 48077, \"addon\": 48078, \"\\u0120HAM\": 48079, \"\\u0120Frieza\": 48080, \"Woman\": 48081, \".$\": 48082, \"\\u0120crib\": 48083, \"\\u0120Herod\": 48084, \"\\u0120timers\": 48085, \"\\u0120Spaces\": 48086, \"\\u0120Macintosh\": 48087, \"ataka\": 48088, \"\\u0120glide\": 48089, \"\\u0120smelling\": 48090, \"\\u0120BAL\": 48091, \"\\u0120unsu\": 48092, \"\\u0120condos\": 48093, \"\\u0120bicycl\": 48094, \"\\u0120Revival\": 48095, \"553\": 48096, \"\\u0120juggling\": 48097, \"Hug\": 48098, \"\\u0120Kardashian\": 48099, \"\\u0120Balkans\": 48100, \"multiple\": 48101, \"\\u0120nutritious\": 48102, \"ocry\": 48103, \"1900\": 48104, \"\\u0120integrates\": 48105, \"\\u0120adjoining\": 48106, \"\\u0120Folder\": 48107, \"rollment\": 48108, \"venient\": 48109, \"\\u0120uber\": 48110, \"yi\": 48111, \"\\u0120whiff\": 48112, \"\\u0120Juven\": 48113, \"\\u0120Borough\": 48114, \"nette\": 48115, \"\\u0120bilingual\": 48116, \"\\u0120Sparks\": 48117, \"phthal\": 48118, \"manufact\": 48119, \"\\u0120touting\": 48120, \"\\u0120PHI\": 48121, \"Keefe\": 48122, \"Reward\": 48123, \"\\u0120infall\": 48124, \"\\u0120Temper\": 48125, \"typically\": 48126, \"\\u0120Nikol\": 48127, \"\\u0120regulars\": 48128, \"\\u0120pseudonym\": 48129, \"\\u0120exhibitions\": 48130, \"\\u0120blaster\": 48131, \"\\u0120409\": 48132, \"warming\": 48133, \"\\u0120reverber\": 48134, \"\\u0120reciprocal\": 48135, \"\\u0120670\": 48136, \"ipient\": 48137, \"bett\": 48138, \"\\u0120Begins\": 48139, \"\\u0120itching\": 48140, \"\\u0120Phar\": 48141, \"Assuming\": 48142, \"\\u0120emitting\": 48143, \"\\u0120MLG\": 48144, \"\\u0120birthplace\": 48145, \"\\u0120taunt\": 48146, \"\\u0120Luffy\": 48147, \"\\u0120Amit\": 48148, \"\\u0120circled\": 48149, \"\\u0120Nost\": 48150, \"ennett\": 48151, \"\\u0120deforestation\": 48152, \"\\u0120Historically\": 48153, \"\\u0120Everyday\": 48154, \"\\u0120overtake\": 48155, \"792\": 48156, \"\\u0120nun\": 48157, \"\\u0120Lucia\": 48158, \"\\u0120accompanies\": 48159, \"\\u0120Seeking\": 48160, \"\\u0120Trash\": 48161, \"anism\": 48162, \"Rogue\": 48163, \"\\u0120northwestern\": 48164, \"\\u0120Supplemental\": 48165, \"\\u0120NYU\": 48166, \"\\u0120FRI\": 48167, \"\\u0120Satisf\": 48168, \"xes\": 48169, \"517\": 48170, \"\\u0120reassured\": 48171, \"\\u0120sporadic\": 48172, \"\\u0120701\": 48173, \"\\u0120medial\": 48174, \"\\u0120cannabinoid\": 48175, \"\\u0120barbaric\": 48176, \"\\u0120epis\": 48177, \"\\u0120Explosive\": 48178, \"\\u0120Dough\": 48179, \"\\u0120unsolved\": 48180, \"Supported\": 48181, \"\\u0120acknowledgment\": 48182, \"spawn\": 48183, \"\\u0120kitchens\": 48184, \"\\u0120-=\": 48185, \"talking\": 48186, \"icist\": 48187, \"\\u0120Pegasus\": 48188, \"\\u0120PSU\": 48189, \"\\u0120photon\": 48190, \"\\u0120Authentication\": 48191, \"RG\": 48192, \"@#&\": 48193, \"762\": 48194, \"\\u0120Clair\": 48195, \"\\u0120diaper\": 48196, \"\\u0120brist\": 48197, \"\\u0120Prosecutors\": 48198, \"\\u0120Jem\": 48199, \"628\": 48200, \"\\u0120Everywhere\": 48201, \"\\u0120Jeanne\": 48202, \"equality\": 48203, \"\\u00e3\\u0125\\u00a9\\u00e3\\u0125\\u00b3\": 48204, \"objects\": 48205, \"\\u0120Pelicans\": 48206, \"\\u0120392\": 48207, \"\\u0120blu\": 48208, \"bys\": 48209, \"\\u0120Ago\": 48210, \"\\u0120instructional\": 48211, \"\\u0120discriminating\": 48212, \"\\u0120TRAN\": 48213, \"\\u0120Cornel\": 48214, \"agos\": 48215, \"\\u0120tyre\": 48216, \"\\u0120aspiration\": 48217, \"\\u0120Bridgewater\": 48218, \"\\\":-\": 48219, \"!\\\".\": 48220, \"\\u0120Ens\": 48221, \"\\u0120Coco\": 48222, \"Pie\": 48223, \"\\u0120detach\": 48224, \"\\u0120Couch\": 48225, \"\\u0120physique\": 48226, \"\\u0120Occupations\": 48227, \"oscopic\": 48228, \"enough\": 48229, \"Buzz\": 48230, \"Appearance\": 48231, \"YP\": 48232, \"\\u0120racer\": 48233, \"\\u0120complicity\": 48234, \"rpm\": 48235, \"Toy\": 48236, \"\\u0120interrupts\": 48237, \"\\u0120Catalyst\": 48238, \"\\u0120utilitarian\": 48239, \"impact\": 48240, \"\\u0120spaghetti\": 48241, \"\\u0120porous\": 48242, \"\\u0120esteemed\": 48243, \"\\u0120inciner\": 48244, \"\\u0120IOC\": 48245, \"748\": 48246, \"\\u0120espresso\": 48247, \"\\u0120Smile\": 48248, \"abilia\": 48249, \"635\": 48250, \"\\u0120mathematician\": 48251, \"\\u0120424\": 48252, \"\\u0120KL\": 48253, \"\\u0120HIP\": 48254, \"\\u0120overheard\": 48255, \"\\u0120Tud\": 48256, \"\\u0120Tec\": 48257, \"\\u0120quizz\": 48258, \"\\u0120flattering\": 48259, \"\\u0120conn\": 48260, \"\\u00e2\\u0122\\u0130\": 48261, \"\\u0120attaches\": 48262, \"\\u0120ROS\": 48263, \"\\u0120ACS\": 48264, \"\\u0120tcp\": 48265, \"\\u0120Shame\": 48266, \"skip\": 48267, \"respected\": 48268, \"\\u0120Trinidad\": 48269, \"grain\": 48270, \"\\u0120foothold\": 48271, \"\\u0120Uncharted\": 48272, \"\\u0120Julio\": 48273, \"zl\": 48274, \"avored\": 48275, \"\\u0120Anxiety\": 48276, \"errors\": 48277, \"\\u0120Centauri\": 48278, \"itsch\": 48279, \"Daddy\": 48280, \"\\u0120clutching\": 48281, \"\\u0120Implement\": 48282, \"\\u0120Gutierrez\": 48283, \"\\u0120760\": 48284, \"\\u0120teleportation\": 48285, \"endra\": 48286, \"\\u0120reversible\": 48287, \"stros\": 48288, \"Adventure\": 48289, \"083\": 48290, \"\\u0120liberating\": 48291, \"\\u0120asphalt\": 48292, \"\\u0120Spend\": 48293, \"ARDS\": 48294, \"imsy\": 48295, \"PRES\": 48296, \"\\u0120Emerging\": 48297, \"\\u0120wildfires\": 48298, \"\\u0120technologically\": 48299, \"\\u0120emits\": 48300, \"\\u0120ARTICLE\": 48301, \"\\u0120irregularities\": 48302, \"\\u0120cherish\": 48303, \"\\u00e7\\u012b\\u012a\": 48304, \"\\u0120stink\": 48305, \"\\u0120Rost\": 48306, \"Economic\": 48307, \"\\u0120coughing\": 48308, \"\\u0120McCann\": 48309, \"properties\": 48310, \"ilantro\": 48311, \"\\u0120renegoti\": 48312, \"Translation\": 48313, \"\\u0120inquest\": 48314, \"\\u0120Grape\": 48315, \"ooters\": 48316, \"gui\": 48317, \"\\u0120Swordsman\": 48318, \"aceae\": 48319, \"hitting\": 48320, \"\\u0120rc\": 48321, \"\\u0120exerted\": 48322, \"\\u0120SAP\": 48323, \"itent\": 48324, \"\\u0120perilous\": 48325, \"\\u0120obscurity\": 48326, \"\\u0120assassinate\": 48327, \"\\u0120aboriginal\": 48328, \"\\u0120rescuing\": 48329, \"\\u0120Shattered\": 48330, \"locking\": 48331, \"allion\": 48332, \"Changing\": 48333, \"\\u0120Harrington\": 48334, \"\\u0120Bord\": 48335, \"\\u0120Afghans\": 48336, \"Jamie\": 48337, \"aretz\": 48338, \"\\u0120Augustus\": 48339, \"\\u0120386\": 48340, \"830\": 48341, \"\\u0120jog\": 48342, \"okingly\": 48343, \"Trigger\": 48344, \"\\u0120HOR\": 48345, \"Statistics\": 48346, \"\\u0120viewership\": 48347, \"\\u0120additives\": 48348, \"hur\": 48349, \"\\u0120maximizing\": 48350, \"\\u0120Rove\": 48351, \"\\u0120Louie\": 48352, \"\\u0120Bucket\": 48353, \"\\u0120CHRIST\": 48354, \"ousel\": 48355, \"\\u0120streaks\": 48356, \"irted\": 48357, \"\\u0120tert\": 48358, \"\\u0120colonialism\": 48359, \"\\u0120burying\": 48360, \"yk\": 48361, \"Condition\": 48362, \"\\u0120DPRK\": 48363, \"ById\": 48364, \"751\": 48365, \"\\u00e2\\u0139\\u00bc\": 48366, \"\\u0120worrisome\": 48367, \"\\u0120vocational\": 48368, \"slice\": 48369, \"\\u0120sails\": 48370, \"\\u0120Correctional\": 48371, \"954\": 48372, \"\\u0120tul\": 48373, \"Kid\": 48374, \"luster\": 48375, \"\\u0120familial\": 48376, \"\\u0120Spit\": 48377, \"\\u0120Episcopal\": 48378, \"Specifically\": 48379, \"\\u0120Volcano\": 48380, \"runs\": 48381, \"qs\": 48382, \"\\u0120vetted\": 48383, \"\\u0120crammed\": 48384, \"trop\": 48385, \"herer\": 48386, \"Thankfully\": 48387, \"\\u0120percussion\": 48388, \"\\u0120oranges\": 48389, \"\\u0120roundup\": 48390, \"\\u0120499\": 48391, \"xious\": 48392, \"Characters\": 48393, \"\\u0120Zionism\": 48394, \"\\u0120Rao\": 48395, \"\\u00c3\\u013d\\u00c3\\u013d\": 48396, \"WF\": 48397, \"\\u0120unintentional\": 48398, \"ONEY\": 48399, \"Grab\": 48400, \"Commercial\": 48401, \"\\u0120glutamate\": 48402, \"\\u0120McKenna\": 48403, \"ruciating\": 48404, \"nington\": 48405, \"ihu\": 48406, \"Chan\": 48407, \"\\u0120Swap\": 48408, \"\\u0120leaflets\": 48409, \"\\u0120functionally\": 48410, \"erous\": 48411, \"Farm\": 48412, \"\\u0120caloric\": 48413, \"\\u0120Literally\": 48414, \"concert\": 48415, \"\\u0120shenan\": 48416, \"\\u0120repaid\": 48417, \"eyes\": 48418, \"\\u0120bashing\": 48419, \"\\u0120Gorge\": 48420, \"\\u0120collaborations\": 48421, \"\\u0120unaccount\": 48422, \"itchie\": 48423, \"\\u0120teamwork\": 48424, \"ppelin\": 48425, \"\\u0120piping\": 48426, \"\\u0120minced\": 48427, \"\\u0120diam\": 48428, \"rieg\": 48429, \"\\u0120mascara\": 48430, \"\\u0120sucker\": 48431, \"\\u0120Moons\": 48432, \"Apps\": 48433, \"\\u0120Peck\": 48434, \"\\u0120perv\": 48435, \"\\u0120Float\": 48436, \"oley\": 48437, \"\\u0120Nish\": 48438, \"imize\": 48439, \"\\u0120aromatic\": 48440, \"uin\": 48441, \"endish\": 48442, \"!/\": 48443, \"\\u0120Bicycle\": 48444, \"\\u0120ASIC\": 48445, \"ileged\": 48446, \"\\u0120Quadro\": 48447, \"iosyn\": 48448, \"\\u0120lockout\": 48449, \"\\u0120Wink\": 48450, \"SPEC\": 48451, \"Attempts\": 48452, \"\\u0120seeded\": 48453, \"redo\": 48454, \"iasis\": 48455, \"\\u0120snag\": 48456, \"\\u00e3\\u0125\\u0137\\u00e3\\u0124\\u00a9\": 48457, \"\\u00e3\\u0124\\u00b6\": 48458, \"\\u0120grounding\": 48459, \"\\u0120reliever\": 48460, \"\\u0120frivolous\": 48461, \"\\u0120Gifts\": 48462, \"\\u0120Faces\": 48463, \"Especially\": 48464, \"\\u0120microbiome\": 48465, \"imag\": 48466, \"\\u0120Schl\": 48467, \"\\u0120Ples\": 48468, \"\\u0120Bleach\": 48469, \"\\u0120Irwin\": 48470, \"\\u0120Eaton\": 48471, \"\\u0120Disciple\": 48472, \"\\u0120multiplication\": 48473, \"\\u0120coerced\": 48474, \"\\u0120419\": 48475, \"sth\": 48476, \"Evil\": 48477, \"Bomb\": 48478, \"\\u0120exorc\": 48479, \"\\u0120staggered\": 48480, \"LESS\": 48481, \"\\u0120inertia\": 48482, \"\\u0120EDIT\": 48483, \"\\u0120gob\": 48484, \"Traditional\": 48485, \"\\u0120classy\": 48486, \"Leary\": 48487, \"\\u0120PAGE\": 48488, \"yrs\": 48489, \"\\u0120transporter\": 48490, \"\\u0120matured\": 48491, \"\\u0120hijab\": 48492, \"\\u0120biome\": 48493, \"Whereas\": 48494, \"\\u0120extermination\": 48495, \"\\u0120Tues\": 48496, \"\\u0120Takeru\": 48497, \"\\u0120Audrey\": 48498, \"erial\": 48499, \"\\u0120Aden\": 48500, \"affles\": 48501, \"\\u0120narcissistic\": 48502, \"\\u0120Baird\": 48503, \"UTF\": 48504, \"Ire\": 48505, \"\\u0120Connie\": 48506, \"Champ\": 48507, \"\\u0120whispering\": 48508, \"\\u0120Hatt\": 48509, \"DK\": 48510, \"\\u0120disinfect\": 48511, \"\\u0120deducted\": 48512, \"\\u0120partake\": 48513, \"\\u0120downgrade\": 48514, \"\\u0120Esports\": 48515, \"\\u0120Continuing\": 48516, \"\\u0120democratically\": 48517, \"icrobial\": 48518, \"itta\": 48519, \"\\u0120limestone\": 48520, \"\\u0120exempted\": 48521, \"\\u0120Frenzy\": 48522, \"Herm\": 48523, \"728\": 48524, \"\\u0120fledgling\": 48525, \"Meta\": 48526, \"76561\": 48527, \"693\": 48528, \"%:\": 48529, \"wake\": 48530, \"526\": 48531, \"\\u0120Discipline\": 48532, \"\\u0120virginity\": 48533, \"\\u0120Legions\": 48534, \"\\u0120Frankie\": 48535, \"intent\": 48536, \"\\u0120restrooms\": 48537, \"\\u0120Router\": 48538, \"daq\": 48539, \"\\u0120objectionable\": 48540, \"\\u00e2\\u0128\\u0133\": 48541, \"wark\": 48542, \"\\u0120Rahul\": 48543, \"gain\": 48544, \"activation\": 48545, \"absolute\": 48546, \"\\u0120Accessed\": 48547, \"\\u01202400\": 48548, \"oggles\": 48549, \"\\u0120secondly\": 48550, \"\\u0120DEFENSE\": 48551, \"\\u0120postage\": 48552, \"wrapper\": 48553, \"sharp\": 48554, \"729\": 48555, \"\\u0120communicates\": 48556, \"\\u0120addon\": 48557, \"\\u0120Militia\": 48558, \"Hong\": 48559, \"\\u0120slumped\": 48560, \"\\u0120JPEG\": 48561, \"\\u0120Icar\": 48562, \"adish\": 48563, \"681\": 48564, \"\\u0120majesty\": 48565, \"\\u0120Wolfgang\": 48566, \"\\u0120Elastic\": 48567, \"uper\": 48568, \"\\u0120viz\": 48569, \"\\u0120unconsciously\": 48570, \"\\u0120STD\": 48571, \"\\u0120Sass\": 48572, \"\\u0120flowering\": 48573, \"\\u0120Helic\": 48574, \"\\u0120Draper\": 48575, \"\\u0120Amateur\": 48576, \"\\u0120manure\": 48577, \"\\u0120disingen\": 48578, \"\\u0120Lei\": 48579, \"bring\": 48580, \"949\": 48581, \"\\u0120inhibited\": 48582, \"\\u0120headquartered\": 48583, \"\\u0120enigmatic\": 48584, \"\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\\u00ef\\u00bf\\u00bd\": 48585, \"\\u0120redress\": 48586, \"RH\": 48587, \"\\u0120rattled\": 48588, \"\\u0120diction\": 48589, \"lio\": 48590, \"\\u0120TBA\": 48591, \"\\u0120SNAP\": 48592, \"Calling\": 48593, \"\\u0120fascists\": 48594, \"\\u0120Dove\": 48595, \"iewicz\": 48596, \"036\": 48597, \"\\u0120coasts\": 48598, \"\\u0120Rect\": 48599, \"\\u0120)]\": 48600, \"Lot\": 48601, \"629\": 48602, \"\\u0120SEM\": 48603, \"\\u0120Petersen\": 48604, \"\\u0120Explain\": 48605, \"\\u0120Boards\": 48606, \"\\u0120Bezos\": 48607, \"\\u0120Journals\": 48608, \"\\u01202024\": 48609, \"parser\": 48610, \"\\u0120mistrust\": 48611, \"\\u0120grate\": 48612, \"\\u0120Locked\": 48613, \"boa\": 48614, \"Saint\": 48615, \"gaming\": 48616, \"\\u0120vowel\": 48617, \"inately\": 48618, \"blow\": 48619, \"Allah\": 48620, \"\\u0120unmatched\": 48621, \"\\u0120bordering\": 48622, \"\\u0120Expend\": 48623, \"nr\": 48624, \"Oracle\": 48625, \"rouch\": 48626, \"\\u0120contiguous\": 48627, \"acus\": 48628, \"\\u0120distraught\": 48629, \"581\": 48630, \"\\u0120anatomical\": 48631, \"OX\": 48632, \"apixel\": 48633, \"833\": 48634, \"\\u0120PLUS\": 48635, \"\\u0120resusc\": 48636, \"\\u0120abiding\": 48637, \"573\": 48638, \"\\u0120vacancies\": 48639, \"Emily\": 48640, \"\\u0120hypothal\": 48641, \"\\u0120Werner\": 48642, \"\\u0120Wee\": 48643, \"\\u0120DJs\": 48644, \"513\": 48645, \"\\u0120witchcraft\": 48646, \"\\u0120acupuncture\": 48647, \"entary\": 48648, \"benefit\": 48649, \"Products\": 48650, \"\\u0120PSP\": 48651, \"\\u0120MPG\": 48652, \"\\u0120Jinn\": 48653, \"\\u0120Jarrett\": 48654, \"\\u0120445\": 48655, \"\\u0120Imaging\": 48656, \"\\u0120Pyth\": 48657, \"Finish\": 48658, \"\\u0120tex\": 48659, \"\\u0120juveniles\": 48660, \"\\u0120heroism\": 48661, \"\\u0120doubtless\": 48662, \"\\u0120Aki\": 48663, \"\\u0120Tend\": 48664, \"\\u0120Patriarch\": 48665, \"\\u0120bitters\": 48666, \"\\u0120Telecommunications\": 48667, \"itatively\": 48668, \"agna\": 48669, \"\\u0120rg\": 48670, \"\\u0120SOLD\": 48671, \"\\u0120compulsion\": 48672, \"\\u0120Nasa\": 48673, \"\\u0120Kathryn\": 48674, \"\\u0120millionaires\": 48675, \"\\u0120intrinsically\": 48676, \"\\u0120bolstered\": 48677, \"timeout\": 48678, \"flo\": 48679, \"\\u0120tutor\": 48680, \"pour\": 48681, \"Statement\": 48682, \"\\u0120{*\": 48683, \"\\u0120Rudolph\": 48684, \"\\u0120Kimberly\": 48685, \"rogens\": 48686, \"adiq\": 48687, \"]+\": 48688, \"\\u0120indignation\": 48689, \"\\u0120fracturing\": 48690, \"\\u0120Releases\": 48691, \"\\u0120Grain\": 48692, \"protein\": 48693, \"Lago\": 48694, \"\\u0120vacations\": 48695, \"\\u0120booted\": 48696, \"\\u0120THREE\": 48697, \"\\u0120HG\": 48698, \"orescence\": 48699, \"\\u0120tf\": 48700, \"\\u0120soar\": 48701, \"iosyncr\": 48702, \"\\u0120glances\": 48703, \"\\u0120Spoon\": 48704, \"\\u0120Jury\": 48705, \"\\u0120Cowboy\": 48706, \"\\u0120creatively\": 48707, \"Higher\": 48708, \"\\u0120solicitor\": 48709, \"\\u0120hawk\": 48710, \"acio\": 48711, \"896\": 48712, \"\\u0120superflu\": 48713, \"\\u0120bombshell\": 48714, \"cture\": 48715, \"\\u0120brokerage\": 48716, \"\\u0120raiding\": 48717, \"\\u0120french\": 48718, \"\\u0120angled\": 48719, \"Transaction\": 48720, \"\\u0120Genocide\": 48721, \"upe\": 48722, \"\\u0120Haitian\": 48723, \"572\": 48724, \"!:\": 48725, \"\\u0120unwittingly\": 48726, \"iterator\": 48727, \"scroll\": 48728, \"\\u0120tallied\": 48729, \"\\u0120biomedical\": 48730, \"\\u0120CARD\": 48731, \"\\u0120euphem\": 48732, \"\\u0120brainstorm\": 48733, \"aquin\": 48734, \"Ko\": 48735, \"Michelle\": 48736, \"\\u0120Runes\": 48737, \"\\u0120Ballistic\": 48738, \"uders\": 48739, \"\\u0120modesty\": 48740, \"\\u0120iPads\": 48741, \"\\u0120Ezekiel\": 48742, \"YE\": 48743, \"\\u0120starship\": 48744, \"\\u0120powerfully\": 48745, \"\\u0120perl\": 48746, \"\\u0120Shade\": 48747, \"\\u0120Quart\": 48748, \"\\u0120EEG\": 48749, \"\\u0120fisherman\": 48750, \"OSED\": 48751, \"\\u0120Typical\": 48752, \"dfx\": 48753, \"\\u0120meshes\": 48754, \"\\u0120etched\": 48755, \"worthiness\": 48756, \"\\u0120toppled\": 48757, \"\\u0120396\": 48758, \"orius\": 48759, \"Weiss\": 48760, \"\\u0120mysql\": 48761, \"\\u0120Valhalla\": 48762, \"\\u00d9\\u0134\": 48763, \"leasing\": 48764, \"\\u0120recomp\": 48765, \"rapnel\": 48766, \"Sel\": 48767, \"043\": 48768, \"\\u0120derailed\": 48769, \"\\u0120Guides\": 48770, \"IRT\": 48771, \"\\u0120dehuman\": 48772, \"\\u0120Brittany\": 48773, \"\\\"))\": 48774, \"\\u0120exclaim\": 48775, \"\\u0120balk\": 48776, \"\\u0120840\": 48777, \"CLAIM\": 48778, \"intel\": 48779, \"LAB\": 48780, \"\\u0120pegged\": 48781, \"\\u0120astroph\": 48782, \"smoking\": 48783, \"\\u0120rigging\": 48784, \"\\u0120fixation\": 48785, \"\\u0120catapult\": 48786, \"inside\": 48787, \"\\u0120Cascade\": 48788, \"\\u0120Bolshevik\": 48789, \"Gaza\": 48790, \"Depth\": 48791, \"\\u0120loudspe\": 48792, \"\\u0120almonds\": 48793, \"meyer\": 48794, \"leness\": 48795, \"jen\": 48796, \"fresh\": 48797, \"\\u0120unbeaten\": 48798, \"\\u0120Squid\": 48799, \"\\u0120Presumably\": 48800, \"Timer\": 48801, \"BW\": 48802, \"\\u0120rosters\": 48803, \"\\u0120ellipt\": 48804, \"\\u0120Harriet\": 48805, \"database\": 48806, \"\\u0120Mutual\": 48807, \"\\u0120Commodore\": 48808, \"uked\": 48809, \"knife\": 48810, \"\\u0120COMMUN\": 48811, \"hya\": 48812, \"\\u0120melts\": 48813, \"archives\": 48814, \"\\u0120ratification\": 48815, \"\\u0120multiplying\": 48816, \"\\u0120interoper\": 48817, \"\\u0120ascert\": 48818, \"wings\": 48819, \"verting\": 48820, \"\\u0120Scorpion\": 48821, \"aye\": 48822, \"\\u0120Portsmouth\": 48823, \"\\u0120MTA\": 48824, \"nit\": 48825, \"iazep\": 48826, \"\\u0120quarantine\": 48827, \"\\u0120slideshow\": 48828, \"\\u0120centimeters\": 48829, \"\\u0120synopsis\": 48830, \"\\u0120spate\": 48831, \"thirst\": 48832, \"\\u0120nominating\": 48833, \"\\u0120Melvin\": 48834, \"Preview\": 48835, \"\\u0120throb\": 48836, \"\\u0120generational\": 48837, \"\\u0120Radius\": 48838, \"restling\": 48839, \"putable\": 48840, \"awar\": 48841, \"NECT\": 48842, \"\\u0120unlawfully\": 48843, \"\\u0120Revelations\": 48844, \"Wikipedia\": 48845, \"surv\": 48846, \"\\u0120eyeing\": 48847, \"ijn\": 48848, \"\\u0120FW\": 48849, \"\\u0120brunt\": 48850, \"\\u0120interstellar\": 48851, \"\\u0120clitor\": 48852, \"\\u0120Croatian\": 48853, \"\\u0120Chic\": 48854, \"eva\": 48855, \"\\u0120Disapp\": 48856, \"\\u0120Akin\": 48857, \"ineries\": 48858, \"dust\": 48859, \"Interested\": 48860, \"\\u0120genesis\": 48861, \"\\u0120Eucl\": 48862, \"\\u00c3\\u00b6n\": 48863, \"picking\": 48864, \"\\u0120mutated\": 48865, \"\\u0120disapprove\": 48866, \"\\u0120HDL\": 48867, \"\\u0120625\": 48868, \"\\u00cc\\u00b6\": 48869, \"cancer\": 48870, \"\\u0120squats\": 48871, \"\\u0120levers\": 48872, \"Discuss\": 48873, \"=]\": 48874, \"Dex\": 48875, \"\\u0120VIDEOS\": 48876, \"AUD\": 48877, \"\\u0120transact\": 48878, \"\\u0120Kinect\": 48879, \"\\u0120Kuala\": 48880, \"\\u0120Cyp\": 48881, \"747\": 48882, \"\\u0120shattering\": 48883, \"\\u0120arsenic\": 48884, \"\\u0120Intake\": 48885, \"\\u0120Angelo\": 48886, \"\\u0120Quit\": 48887, \"\\u0120Khe\": 48888, \"\\u01201893\": 48889, \"Maker\": 48890, \"029\": 48891, \"\\u0120Painting\": 48892, \"Disable\": 48893, \"916\": 48894, \"\\u0120analges\": 48895, \"\\u0120tactile\": 48896, \"\\u0120prophes\": 48897, \"\\u0120diced\": 48898, \"\\u0120Travels\": 48899, \"\\u0120Header\": 48900, \"\\u0120Clubs\": 48901, \"Assistant\": 48902, \"\\u0120incrim\": 48903, \"\\u0120dips\": 48904, \"\\u0120crucifix\": 48905, \"\\u0120Shanahan\": 48906, \"\\u0120Interpret\": 48907, \"\\u01204090\": 48908, \"alogy\": 48909, \"abba\": 48910, \"\\u0120simulac\": 48911, \"husband\": 48912, \"SIM\": 48913, \"\\u0120recycle\": 48914, \"ucer\": 48915, \"edged\": 48916, \"\\u0120renaissance\": 48917, \"\\u0120Bombay\": 48918, \"Catholic\": 48919, \"\\u0120LINE\": 48920, \"\\u0120Clothing\": 48921, \"reports\": 48922, \"\\u0120plaus\": 48923, \"\\u0120dag\": 48924, \"\\u0120Mace\": 48925, \"ZI\": 48926, \"\\u0120intruder\": 48927, \"\\u0120Veterinary\": 48928, \"gru\": 48929, \"\\u0120sneaky\": 48930, \"\\u0120Sie\": 48931, \"\\u0120Cinnamon\": 48932, \"POSE\": 48933, \"\\u0120courier\": 48934, \"\\u0120CNS\": 48935, \"\\u0120emancipation\": 48936, \"sit\": 48937, \"\\u0120playthrough\": 48938, \"\\u0120Facilities\": 48939, \"virt\": 48940, \"\\u0120Gauntlet\": 48941, \"Thompson\": 48942, \"\\u0120unbelievably\": 48943, \"Parameters\": 48944, \"\\u0120stitching\": 48945, \"igne\": 48946, \"\\u0120THESE\": 48947, \"Privacy\": 48948, \"\\u0120shenanigans\": 48949, \"\\u0120vitri\": 48950, \"\\u0120Valid\": 48951, \"591\": 48952, \"\\u0143\\u00b7\": 48953, \"\\u0120Prototype\": 48954, \"inka\": 48955, \"SCP\": 48956, \"\\u0120Tid\": 48957, \"\\u00e8\\u012a\": 48958, \"olded\": 48959, \"\\u0120individuality\": 48960, \"\\u0120barking\": 48961, \"\\u0120mars\": 48962, \"\\u0120WD\": 48963, \"\\u0120820\": 48964, \"\\u0120tir\": 48965, \"\\u0120slapping\": 48966, \"\\u0120disgruntled\": 48967, \"\\u0120Angola\": 48968, \"rius\": 48969, \"\\u0120Tornado\": 48970, \"\\u0120Thurs\": 48971, \"\\u0120captcha\": 48972, \"\\u0120angst\": 48973, \"\\u0120Pog\": 48974, \"\\u0120Assassins\": 48975, \"\\u0120Adidas\": 48976, \"\\u0120joyful\": 48977, \"\\u0120whining\": 48978, \"Emergency\": 48979, \"\\u0120phosphorus\": 48980, \"\\u0120attrition\": 48981, \"ophon\": 48982, \"\\u0120Timberwolves\": 48983, \"\\u0120Jah\": 48984, \"\\u0120Bringing\": 48985, \"\\u0120Wad\": 48986, \"\\u0120Ensure\": 48987, \"ohl\": 48988, \"\\u0120Xie\": 48989, \"ommel\": 48990, \"cmp\": 48991, \"\\u0120zipper\": 48992, \"\\u0120relat\": 48993, \"\\u0120Corridor\": 48994, \"milo\": 48995, \"TING\": 48996, \"Avg\": 48997, \"\\u0120cropped\": 48998, \"]}\": 48999, \"\\u0120raged\": 49000, \"\\u0120Lumpur\": 49001, \"\\u0120Guerrero\": 49002, \"ourke\": 49003, \"Nut\": 49004, \"\\u0120offsets\": 49005, \"oglu\": 49006, \"drm\": 49007, \"\\u0120mortals\": 49008, \"latable\": 49009, \"\\u0120dismissive\": 49010, \"\\u00e4\\u00b8\\u012b\": 49011, \"\\u0120throats\": 49012, \"\\u0120chipset\": 49013, \"\\u0120Spotlight\": 49014, \"Catalog\": 49015, \"artist\": 49016, \"Gb\": 49017, \"\\u0120chilly\": 49018, \"\\u0120stoked\": 49019, \"\\u0120374\": 49020, \"Ward\": 49021, \"Latin\": 49022, \"\\u0120fiasco\": 49023, \"\\u0120bleach\": 49024, \"\\u0120brav\": 49025, \"Enhanced\": 49026, \"\\u0120inoc\": 49027, \"\\u0120Fiorina\": 49028, \"_>\": 49029, \"\\u0120leukemia\": 49030, \"\\u0120eluc\": 49031, \"\\u0120announcer\": 49032, \"\\u0120Lithuan\": 49033, \"\\u0120Armageddon\": 49034, \"\\u00e5\\u0129\": 49035, \"Lenin\": 49036, \"\\u0120Ruk\": 49037, \"\\u0120pepp\": 49038, \"\\u0120Romantic\": 49039, \"\\u0120PIT\": 49040, \"\\u0120Interstellar\": 49041, \"\\u0120Atkinson\": 49042, \"Raid\": 49043, \"Js\": 49044, \"Goal\": 49045, \"Course\": 49046, \"\\u0120vanishing\": 49047, \"esley\": 49048, \"\\u0120Rounds\": 49049, \"Elsa\": 49050, \"593\": 49051, \"\\u0120redundancy\": 49052, \"\\u0120STAND\": 49053, \"\\u0120prophetic\": 49054, \"\\u0120habitable\": 49055, \"ryu\": 49056, \"\\u0120faintly\": 49057, \"MODE\": 49058, \"\\u0120flanked\": 49059, \"IRC\": 49060, \"Awesome\": 49061, \"\\u0120spurious\": 49062, \"\\u0120Zah\": 49063, \"\\u0120MSG\": 49064, \"\\u0120shading\": 49065, \"\\u0120motivational\": 49066, \"\\u0120Santana\": 49067, \"\\u0120SPR\": 49068, \"\\u0120excruciating\": 49069, \"omial\": 49070, \"\\u0120Miko\": 49071, \"\\u0120Leopard\": 49072, \"Abyss\": 49073, \"\\u0120[|\": 49074, \"dirty\": 49075, \"\\u0120baths\": 49076, \"\\u0120demoral\": 49077, \"andre\": 49078, \"PB\": 49079, \"\\u0120unification\": 49080, \"\\u0120sacrament\": 49081, \"\\u0120[&\": 49082, \"\\u0120priceless\": 49083, \"\\u0120gelatin\": 49084, \"\\u0120emanating\": 49085, \"\\u0120Allaah\": 49086, \"986\": 49087, \"\\u0120outburst\": 49088, \"\\u0120eras\": 49089, \"\\u0120XVI\": 49090, \"\\u0120SPI\": 49091, \"Ott\": 49092, \"\\u0120Lazarus\": 49093, \"PLIED\": 49094, \"Flying\": 49095, \"blogs\": 49096, \"Wisconsin\": 49097, \"Raven\": 49098, \"\\u0120rebate\": 49099, \"\\u0120creeps\": 49100, \"\\u0120Span\": 49101, \"\\u0120Painter\": 49102, \"\\u0120Kira\": 49103, \"\\u0120Amos\": 49104, \"\\u0120Corvette\": 49105, \"Consumer\": 49106, \"\\u0120Recover\": 49107, \"cki\": 49108, \"\\u0120pesky\": 49109, \"\\u0120Invention\": 49110, \"Companies\": 49111, \"\\u0120challengers\": 49112, \"ademic\": 49113, \"\\u0120Ukrainians\": 49114, \"\\u0120Neurolog\": 49115, \"\\u0120Forsaken\": 49116, \"\\u0120entrants\": 49117, \"\\u0120embattled\": 49118, \"\\u0120defunct\": 49119, \"\\u0120Glacier\": 49120, \"\\u0120poisons\": 49121, \"\\u0120Horses\": 49122, \"makes\": 49123, \"\\u0120Dirt\": 49124, \"\\u0120423\": 49125, \"hhh\": 49126, \"\\u0120Transformation\": 49127, \"QUIRE\": 49128, \"..................\": 49129, \"\\u0120traveller\": 49130, \"\\u0120Sexy\": 49131, \"\\u0120Kern\": 49132, \"ipolar\": 49133, \"\\u0120ransomware\": 49134, \"oooooooooooooooo\": 49135, \"Ec\": 49136, \"ruby\": 49137, \"Professional\": 49138, \"\\u0120Outbreak\": 49139, \"argument\": 49140, \"Grey\": 49141, \"\\u0120Fifa\": 49142, \"\\u0120CHO\": 49143, \"\\u0120FORM\": 49144, \"\\u0120Amtrak\": 49145, \"-[\": 49146, \"\\u0120cradle\": 49147, \"\\u0120antioxidants\": 49148, \"\\u00e3\\u0123\\u00ae\\u00e5\\u00ae\": 49149, \"736\": 49150, \"\\u0120NASL\": 49151, \"\\u0120Contributions\": 49152, \"Indiana\": 49153, \"\\u0120STEP\": 49154, \"CSS\": 49155, \"\\u0120salient\": 49156, \"\\u0120allocations\": 49157, \"yrights\": 49158, \"\\u0120mashed\": 49159, \"\\u0120Cutter\": 49160, \"Sexual\": 49161, \"\\u0120pounded\": 49162, \"\\u0120fanbase\": 49163, \"\\u0120casc\": 49164, \"\\u0120Transparency\": 49165, \"\\u0120analytic\": 49166, \"\\u0120Summoner\": 49167, \"\\u00d7\\u0140\": 49168, \"\\u0120ADC\": 49169, \"detail\": 49170, \"\\u0120vanquished\": 49171, \"\\u0120crabs\": 49172, \"arie\": 49173, \"Destroy\": 49174, \"\\u0120Sack\": 49175, \"\\u0120transistor\": 49176, \"Alabama\": 49177, \"\\u0120Koen\": 49178, \"\\u0120Fisheries\": 49179, \"cone\": 49180, \"\\u0120annexed\": 49181, \"\\u0120MGM\": 49182, \"esa\": 49183, \"\\u0120faked\": 49184, \"\\u0120Congratulations\": 49185, \"\\u0120hindered\": 49186, \"\\u0120correctional\": 49187, \"\\u0120ITV\": 49188, \"leeve\": 49189, \"\\u0120inappropriately\": 49190, \"licks\": 49191, \"\\u0120trespass\": 49192, \"\\u0120paws\": 49193, \"\\u0120negotiator\": 49194, \"\\u0120Christensen\": 49195, \"limits\": 49196, \"\\u0120Dianne\": 49197, \"\\u0120elegance\": 49198, \"\\u0120Contracts\": 49199, \"anke\": 49200, \"Obj\": 49201, \"\\u0120vigilance\": 49202, \"\\u0120castles\": 49203, \"\\u0120NAD\": 49204, \"\\u0120Holo\": 49205, \"\\u0120emphatically\": 49206, \"\\u0120Titus\": 49207, \"\\u0120Serving\": 49208, \"\\u0120Richie\": 49209, \"\\u0120Pigs\": 49210, \"568\": 49211, \"\\u0120animosity\": 49212, \"\\u0120Attributes\": 49213, \"\\u0120Uriel\": 49214, \"MQ\": 49215, \"myra\": 49216, \"\\u0120Applicant\": 49217, \"\\u0120psychiatrists\": 49218, \"\\u0120Vij\": 49219, \"\\u0120Abby\": 49220, \"agree\": 49221, \"Push\": 49222, \"\\u0120kWh\": 49223, \"hiba\": 49224, \"\\u0120incite\": 49225, \"\\u0120Weasley\": 49226, \"\\u0120Taxi\": 49227, \"ministic\": 49228, \"hyper\": 49229, \"\\u0120Farn\": 49230, \"\\u0120601\": 49231, \"\\u0120Nationwide\": 49232, \"Fake\": 49233, \"952\": 49234, \"\\u0120maize\": 49235, \"\\u0120interacted\": 49236, \"\\u0120transitioned\": 49237, \"\\u0120parasitic\": 49238, \"\\u0120harmonic\": 49239, \"\\u0120decaying\": 49240, \"\\u0120baseless\": 49241, \"nsics\": 49242, \"\\u0120transpired\": 49243, \"\\u0120abundantly\": 49244, \"\\u0120Forensic\": 49245, \"\\u0120treadmill\": 49246, \"\\u0120Jav\": 49247, \"aband\": 49248, \"\\u0120sshd\": 49249, \"\\u0120frontman\": 49250, \"\\u0120Jakarta\": 49251, \"oller\": 49252, \"drops\": 49253, \"\\u0120SERVICES\": 49254, \"romptu\": 49255, \"ophical\": 49256, \"hospital\": 49257, \"bledon\": 49258, \"645\": 49259, \"\\u0120midrange\": 49260, \"\\u0120EVENT\": 49261, \"culated\": 49262, \"rawled\": 49263, \"\\u0120perched\": 49264, \"\\u0120overboard\": 49265, \"\\u0120Peel\": 49266, \"\\u0120Pwr\": 49267, \"\\u0120Carth\": 49268, \"\\u0120COMPLE\": 49269, \"coe\": 49270, \"shall\": 49271, \"\\u0120deterrence\": 49272, \"METHOD\": 49273, \"\\u0120Absent\": 49274, \"MEN\": 49275, \"\\u0120sill\": 49276, \"\\u0120LEVEL\": 49277, \"York\": 49278, \"\\u0120sinners\": 49279, \"\\u0120OPEC\": 49280, \"\\u0120Nur\": 49281, \"\\u0120Designs\": 49282, \"selection\": 49283, \"\\u0120unworthy\": 49284, \"CHA\": 49285, \"\\u0120strengthens\": 49286, \"883\": 49287, \"edly\": 49288, \"\\u0120slicing\": 49289, \"\\u0120malnutrition\": 49290, \"\\u0120filmmaking\": 49291, \"\\u0120Polk\": 49292, \"urated\": 49293, \"\\u0120421\": 49294, \"breakers\": 49295, \"!'\\\"\": 49296, \"\\u0120wetlands\": 49297, \"\\u0120Discrimination\": 49298, \"\\u0120allowable\": 49299, \"\\u0120steered\": 49300, \"\\u0120Sicily\": 49301, \"SAM\": 49302, \"\\u0120mustache\": 49303, \"\\u0120mids\": 49304, \"\\u0120clipped\": 49305, \"\\u0120circulate\": 49306, \"\\u0120brittle\": 49307, \"\\u0120Buildings\": 49308, \"raised\": 49309, \"\\u0120Roundup\": 49310, \"\\u0120wealthier\": 49311, \"\\u0120overwrite\": 49312, \"\\u0120overpowered\": 49313, \"\\u0120Gerrard\": 49314, \"sites\": 49315, \"PDATED\": 49316, \"\\u0120acutely\": 49317, \"\\u0120Gamble\": 49318, \"\\u0120pim\": 49319, \"\\u0120Kus\": 49320, \"Typically\": 49321, \"Deploy\": 49322, \"\\u0120Moroccan\": 49323, \"potion\": 49324, \"combe\": 49325, \"\\u0120vigilante\": 49326, \"\\u0120363\": 49327, \"Stew\": 49328, \"\\u0120Bagg\": 49329, \"\\u0120resided\": 49330, \"\\u0120Spo\": 49331, \"\\u0120remnant\": 49332, \"\\u0120emptiness\": 49333, \"brainer\": 49334, \"\\u0120outpatient\": 49335, \"priority\": 49336, \"\\u0120leptin\": 49337, \"\\u0120Payton\": 49338, \"\\u0120Gleaming\": 49339, \"\\u0120Shed\": 49340, \"\\u0120Polo\": 49341, \"\\u0120Mormonism\": 49342, \"restricted\": 49343, \"arlane\": 49344, \"wx\": 49345, \"\\u0120creatine\": 49346, \"\\u0120Anon\": 49347, \"\\u0120STUD\": 49348, \"\\u0120JUL\": 49349, \"\\u0120Tee\": 49350, \"528\": 49351, \"089\": 49352, \"\\u0120hatched\": 49353, \"Dispatch\": 49354, \"\\u0120Composite\": 49355, \"\\u0120451\": 49356, \"puff\": 49357, \"\\u0120XCOM\": 49358, \"\\u0120Orn\": 49359, \"\\u0120THANK\": 49360, \"ENDED\": 49361, \"\\u0120Asheville\": 49362, \"\\u0120\\u00c3\\u013e\": 49363, \"\\u0120mango\": 49364, \"\\u0120Slightly\": 49365, \"worldly\": 49366, \"\\u0120Wander\": 49367, \"\\u0120Expand\": 49368, \"\\u0120Chr\": 49369, \"Mist\": 49370, \"\\u0120orthodoxy\": 49371, \"\\u0120UNESCO\": 49372, \"regate\": 49373, \"Elsewhere\": 49374, \"kie\": 49375, \"irled\": 49376, \"\\u0120topple\": 49377, \"\\u0120adoptive\": 49378, \"\\u0120Legs\": 49379, \"dress\": 49380, \"\\u0120Sagan\": 49381, \"bare\": 49382, \"\\u0120Glou\": 49383, \"Crunch\": 49384, \"\\u0120helpers\": 49385, \"\\u0120chronically\": 49386, \"\\u0120Huma\": 49387, \"10000\": 49388, \"\\u0120accommodating\": 49389, \"\\u00e4\\u00ba\\u0136\": 49390, \"\\u0120wrinkles\": 49391, \"\\u0120dodged\": 49392, \"fourth\": 49393, \"\\u0120precon\": 49394, \"\\u0120compressor\": 49395, \"\\u0120Kare\": 49396, \"\\u0120evict\": 49397, \"\\u0120Warwick\": 49398, \"imar\": 49399, \"\\u0120modernization\": 49400, \"\\u0120bandwagon\": 49401, \"\\u0120refuted\": 49402, \"\\u0120netted\": 49403, \"\\u0120Naples\": 49404, \"\\u0120Genie\": 49405, \"perors\": 49406, \"\\u0120fielded\": 49407, \"\\u0120dere\": 49408, \"\\u0120Parables\": 49409, \"lees\": 49410, \"\\u0120trout\": 49411, \"aspers\": 49412, \"\\u0120nihil\": 49413, \"\\u0120happiest\": 49414, \"\\u0120floppy\": 49415, \"\\u0120Loft\": 49416, \"\\u0120Heard\": 49417, \"\\u0120unison\": 49418, \"\\u0120lug\": 49419, \"\\u0120Redmond\": 49420, \"classic\": 49421, \"Supporters\": 49422, \"SHIP\": 49423, \"GMT\": 49424, \"\\u0120fuelled\": 49425, \"\\u00e7\\u0132\": 49426, \"\\u0120dd\": 49427, \"\\u0120Eminem\": 49428, \"\\u01201897\": 49429, \"NYSE\": 49430, \"\\u0120secretaries\": 49431, \"\\u0120FIA\": 49432, \"\\u0120Canaveral\": 49433, \"Favorite\": 49434, \"\\u0120pomp\": 49435, \"\\u0120detainee\": 49436, \"ership\": 49437, \"aimon\": 49438, \"iour\": 49439, \"\\u0120Apex\": 49440, \"\\u0120plantations\": 49441, \"amia\": 49442, \"acion\": 49443, \"Rust\": 49444, \"\\u0120towed\": 49445, \"\\u0120Truly\": 49446, \"577\": 49447, \"\\u0120sheltered\": 49448, \"rider\": 49449, \"Wo\": 49450, \"\\u0120lair\": 49451, \"\\u0120Intelligent\": 49452, \"improve\": 49453, \"matically\": 49454, \"\\u0120etiquette\": 49455, \"adra\": 49456, \"allo\": 49457, \"\\u0120Juno\": 49458, \"anything\": 49459, \"\\u0120Struggle\": 49460, \"\\u0120Predict\": 49461, \"\\u0120Grimes\": 49462, \"\\u0120AMERICA\": 49463, \"ctx\": 49464, \"\\u0120Situation\": 49465, \"WOOD\": 49466, \"\\u0120soluble\": 49467, \"meier\": 49468, \"\\u0120intolerable\": 49469, \"angering\": 49470, \"\\u0120uninterrupted\": 49471, \"\\u0120tooltip\": 49472, \"\\u0120interrogated\": 49473, \"\\u0120gunned\": 49474, \"\\u0120Sneak\": 49475, \"\\u00e6\\u0143\\u00a6\": 49476, \"\\u0120tether\": 49477, \"\\u0120crumble\": 49478, \"Lens\": 49479, \"\\u0120clustered\": 49480, \"\\u0120Syl\": 49481, \"\\u0120Hasan\": 49482, \"\\u0120dystopian\": 49483, \"wana\": 49484, \"\\u0120joystick\": 49485, \"\\u0120Thib\": 49486, \"ammu\": 49487, \"Tomorrow\": 49488, \"546\": 49489, \"\\u0120overcame\": 49490, \"\\u0120minimized\": 49491, \"ceptor\": 49492, \"Runner\": 49493, \"ENGTH\": 49494, \"\\u0120Brenda\": 49495, \"\\u0120Achievements\": 49496, \"\\u0120torches\": 49497, \"\\u0120rapport\": 49498, \"\\u0120Investigator\": 49499, \"\\u0120Handling\": 49500, \"relation\": 49501, \"grey\": 49502, \"815\": 49503, \"\\u0120kcal\": 49504, \"\\u0120Commands\": 49505, \"dq\": 49506, \"\\u0120curls\": 49507, \"\\u0120bearer\": 49508, \"\\u0120cynicism\": 49509, \"itri\": 49510, \"\\u0120Useful\": 49511, \"Bee\": 49512, \"DCS\": 49513, \"\\u0120abras\": 49514, \"Pract\": 49515, \"BILITIES\": 49516, \"712\": 49517, \"\\u0120debugger\": 49518, \"\\u0120debtor\": 49519, \"\\u0120Lia\": 49520, \"\\u0120Kers\": 49521, \"\\u0120exacerbate\": 49522, \"\\u0120Stacy\": 49523, \"\\u0120Bland\": 49524, \"\\u0120Scenes\": 49525, \"\\u0120branching\": 49526, \"\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\\u00e2\\u0138\\u012a\": 49527, \"apeake\": 49528, \"\\u0120salsa\": 49529, \"\\u0120mishand\": 49530, \"\\u0120Konami\": 49531, \"\\u0120Nib\": 49532, \"\\u0120anecdote\": 49533, \"\\u0120agreeable\": 49534, \"\\u00cf\\u012b\": 49535, \"\\u0120Nathaniel\": 49536, \"\\u0120Heisman\": 49537, \"\\u0120Beware\": 49538, \"\\u01201886\": 49539, \"spective\": 49540, \"691\": 49541, \"522\": 49542, \"\\u0120inhibits\": 49543, \"\\u0120hashing\": 49544, \"\\u01201889\": 49545, \"\\u00e5\\u00b0\\u0128\": 49546, \"vich\": 49547, \"Pure\": 49548, \"\\u0120solidly\": 49549, \"\\u0120aspirin\": 49550, \"imaru\": 49551, \"\\u0120streetcar\": 49552, \"\\u0120UCS\": 49553, \"\\u0120Judd\": 49554, \"\\u0120flashbacks\": 49555, \"pins\": 49556, \"\\u01201440\": 49557, \"\\u0120UNHCR\": 49558, \"\\u0120Symptoms\": 49559, \"TIT\": 49560, \"538\": 49561, \"Fra\": 49562, \"%);\": 49563, \"\\u0120ooz\": 49564, \"\\u0120curfew\": 49565, \"\\u0120calmed\": 49566, \"\\u0120participates\": 49567, \"TeX\": 49568, \"\\u0120nonsensical\": 49569, \"\\u0120fullback\": 49570, \"\\u0120DeL\": 49571, \"monkey\": 49572, \"hari\": 49573, \"\\u0120metabolites\": 49574, \"\\u0120looted\": 49575, \"\\u0120ALWAYS\": 49576, \"\\u0120BCC\": 49577, \"Lt\": 49578, \"ochet\": 49579, \"Bone\": 49580, \"\\u0120vetoed\": 49581, \"\\u0120gcc\": 49582, \"\\u0120CLICK\": 49583, \"\\u01201888\": 49584, \"saf\": 49585, \"\\u0120stiffness\": 49586, \"\\u0120lowly\": 49587, \"\\u0120Geh\": 49588, \"verson\": 49589, \"orset\": 49590, \"\\u0120unforeseen\": 49591, \"\\u0120anesthesia\": 49592, \"\\u0120Optical\": 49593, \"\\u0120reconstructed\": 49594, \"\\u0120Tup\": 49595, \"shows\": 49596, \"NEWS\": 49597, \"\\u0120Newspaper\": 49598, \"\\u0120ASA\": 49599, \"tera\": 49600, \"Numbers\": 49601, \"\\u0120inexplicable\": 49602, \"\\u00d7\\u0133\": 49603, \"\\u0120hardness\": 49604, \"untarily\": 49605, \"\\u0120Acer\": 49606, \"gradient\": 49607, \"ARDIS\": 49608, \"\\u0120woodland\": 49609, \"\\u0120metaphors\": 49610, \"\\u0120Wembley\": 49611, \"\\u0120Pavel\": 49612, \"philis\": 49613, \"\\u0120rewriting\": 49614, \"\\u0120perceptual\": 49615, \"\\u01201070\": 49616, \"worms\": 49617, \"\\u0120Downs\": 49618, \"\\u0120unsurprisingly\": 49619, \"\\u0120tagging\": 49620, \"flame\": 49621, \"\\u0120litres\": 49622, \"\\u0120bounces\": 49623, \"\\u0120Babe\": 49624, \"shut\": 49625, \"\\u0120overdoses\": 49626, \"\\u0120Sheila\": 49627, \"\\u0120Chau\": 49628, \"\\u0120Bless\": 49629, \"Capture\": 49630, \"\\u0120Significant\": 49631, \"\\u0120Scion\": 49632, \"\\u0120389\": 49633, \"\\u0120McH\": 49634, \"\\u0120Titanium\": 49635, \"\\u0120Meal\": 49636, \"ameda\": 49637, \"agents\": 49638, \"aggressive\": 49639, \"Billy\": 49640, \"763\": 49641, \"\\u0120Saying\": 49642, \"DERR\": 49643, \"itone\": 49644, \"Collins\": 49645, \"Bound\": 49646, \"\\u0120bolted\": 49647, \"\\u0120DMCA\": 49648, \"953\": 49649, \"\\u0120uniqueness\": 49650, \"\\u0120epigen\": 49651, \"unci\": 49652, \"antam\": 49653, \"\\u0120reckoning\": 49654, \"chairs\": 49655, \"OGR\": 49656, \"\\u0120Senegal\": 49657, \"\\u01201862\": 49658, \"relevant\": 49659, \"\\u0120\\u00c2\\u00af\": 49660, \"\\u0120pharmacies\": 49661, \"\\u0120Geral\": 49662, \"vier\": 49663, \"Yan\": 49664, \"ORPG\": 49665, \"\\u0120rabid\": 49666, \"bending\": 49667, \"\\u0120UNITED\": 49668, \"\\u0120465\": 49669, \"Assembly\": 49670, \"\\u0120weep\": 49671, \"\\u0120behest\": 49672, \"\\u0120Mothers\": 49673, \"\\u0120Jace\": 49674, \"hid\": 49675, \"\\u0120whirlwind\": 49676, \"\\u0120UNIVERS\": 49677, \"\\u0120utopian\": 49678, \"\\u0120kidnap\": 49679, \"Philipp\": 49680, \"Kin\": 49681, \"893\": 49682, \"\\u0120livestream\": 49683, \"\\u0120MISS\": 49684, \"\\u0120subversive\": 49685, \"\\u0120Techniques\": 49686, \"\\u0120JUSTICE\": 49687, \"\\u0120BASE\": 49688, \"\\u0120387\": 49689, \"\\u0120assailants\": 49690, \"\\u0120Hardcore\": 49691, \"\\u0120sprinkled\": 49692, \"\\u0120Pse\": 49693, \"\\u00e9\\u013c\": 49694, \"printed\": 49695, \"\\u0120Hau\": 49696, \"ORGE\": 49697, \"\\u0120TOUR\": 49698, \"\\u0120laced\": 49699, \"\\u0120itch\": 49700, \"Giving\": 49701, \"\\u0120ported\": 49702, \"781\": 49703, \"////////////////////////////////\": 49704, \"breeding\": 49705, \"\\u0120logger\": 49706, \"\\u0120HOL\": 49707, \"innie\": 49708, \"Firstly\": 49709, \"\\u0120embryonic\": 49710, \"\\u0120delegated\": 49711, \"pai\": 49712, \"OIL\": 49713, \"\\u0120centrally\": 49714, \"\\u0120Rx\": 49715, \"\\u0120Scouting\": 49716, \"Dutch\": 49717, \"\\u0120hereditary\": 49718, \"\\u0120Cruiser\": 49719, \"sat\": 49720, \"529\": 49721, \"\\u0120Marriott\": 49722, \"othermal\": 49723, \"\\u0120prohibitions\": 49724, \"Earn\": 49725, \"\\u0120Stab\": 49726, \"\\u0120Colleges\": 49727, \"\\u0120Belief\": 49728, \"stretched\": 49729, \"\\u0120LH\": 49730, \"\\u0120EntityItem\": 49731, \"CIA\": 49732, \"\\u0120unrem\": 49733, \"\\u0120laureate\": 49734, \"\\u0120denominations\": 49735, \"summary\": 49736, \"hler\": 49737, \"Spect\": 49738, \"\\u0120Klaus\": 49739, \"\\u0120Beans\": 49740, \"\\u0120insur\": 49741, \"\\u0120PAX\": 49742, \"\\u0120fielder\": 49743, \"\\u0120Vet\": 49744, \"\\u0120Sparrow\": 49745, \"zie\": 49746, \"\\u0120SQ\": 49747, \"\\u0120Mondays\": 49748, \"\\u0120Offline\": 49749, \"\\u0120Lerner\": 49750, \"\\u0120Extensions\": 49751, \"Ireland\": 49752, \"\\u0120patronage\": 49753, \"\\u0120contrasted\": 49754, \"\\u0120Mania\": 49755, \"hirt\": 49756, \"Moscow\": 49757, \"\\u0120condemns\": 49758, \"\\u0120Ange\": 49759, \"\\u0120composing\": 49760, \"\\u0120Pepe\": 49761, \"\\u0120Paddock\": 49762, \"\\u0120heterogeneity\": 49763, \"\\u0120ideologically\": 49764, \"\\u0120fishes\": 49765, \"\\u0120cursing\": 49766, \"\\u0120Rutherford\": 49767, \"\\u0120Floating\": 49768, \"\\u0120Amelia\": 49769, \"Tea\": 49770, \"Synopsis\": 49771, \"\\u0120stunts\": 49772, \"\\u0120bead\": 49773, \"\\u0120stocking\": 49774, \"\\u0120MILL\": 49775, \"obook\": 49776, \"massive\": 49777, \"\\\\<\": 49778, \"\\u0120hump\": 49779, \"\\u0120Preferences\": 49780, \"EngineDebug\": 49781, \"geist\": 49782, \"\\u0120Nieto\": 49783, \"omever\": 49784, \"ishy\": 49785, \"evaluate\": 49786, \"colonial\": 49787, \"Alternative\": 49788, \"\\u0120GoPro\": 49789, \"\\u0120Vortex\": 49790, \"\\u0120NETWORK\": 49791, \"ansky\": 49792, \"Secure\": 49793, \"\\u0120Thrust\": 49794, \"Snake\": 49795, \"\\u0120parcels\": 49796, \"\\u0120samurai\": 49797, \"\\u0120actresses\": 49798, \"Nap\": 49799, \"MF\": 49800, \"iferation\": 49801, \"Beer\": 49802, \"523\": 49803, \"\\u0120Ily\": 49804, \"ointment\": 49805, \"Ping\": 49806, \"\\u0120striped\": 49807, \"\\u0120Mellon\": 49808, \"ossession\": 49809, \"\\u0120neutron\": 49810, \"endium\": 49811, \"\\u0120aph\": 49812, \"\\u0120Flavoring\": 49813, \"\\u0120383\": 49814, \"\\u0120responsiveness\": 49815, \"\\u0120Jindal\": 49816, \"\\u0120Hitchcock\": 49817, \"Denver\": 49818, \"\\u0120DRAGON\": 49819, \"smanship\": 49820, \"\\u0120Dupl\": 49821, \"\\u0120sly\": 49822, \"\\u0120webcam\": 49823, \"\\u0120Twain\": 49824, \"\\u0120Darling\": 49825, \"iliate\": 49826, \"consumer\": 49827, \"DIT\": 49828, \"\\u0120namesake\": 49829, \"\\u0120unorthodox\": 49830, \"\\u0120funer\": 49831, \"\\u0120PLoS\": 49832, \"\\u0120CONTROL\": 49833, \"ozyg\": 49834, \"oglobin\": 49835, \"FACE\": 49836, \"ERG\": 49837, \"\\u0120Dia\": 49838, \"\\u0120Fiesta\": 49839, \"cele\": 49840, \"034\": 49841, \"\\u0120enclave\": 49842, \"\\u00e2\\u0138\\u00ac\\u00e2\\u0138\\u00ac\": 49843, \"onement\": 49844, \"alist\": 49845, \"Mand\": 49846, \"\\u0120homegrown\": 49847, \"\\u0120Fancy\": 49848, \"\\u0120conceptions\": 49849, \"\\u0120Contains\": 49850, \"ureen\": 49851, \"\\u0120reiterate\": 49852, \"\\u0120meager\": 49853, \"\\u0120installments\": 49854, \"Spawn\": 49855, \"627\": 49856, \"\\u0120photoc\": 49857, \"\\u0120Cabrera\": 49858, \"\\u0120Rosenthal\": 49859, \"\\u0120Lansing\": 49860, \"isner\": 49861, \"\\u0120invests\": 49862, \"\\u0120UFOs\": 49863, \"EXP\": 49864, \"Hardware\": 49865, \"\\u0120tragically\": 49866, \"\\u0120concedes\": 49867, \"ieft\": 49868, \"cham\": 49869, \"borgh\": 49870, \"\\u0120Schr\": 49871, \"\\u0120Melanie\": 49872, \"\\u0120Hoy\": 49873, \"\\u0120visitation\": 49874, \"\\u0120idiosyncr\": 49875, \"\\u0120fractions\": 49876, \"\\u0120foreskin\": 49877, \"obos\": 49878, \"\\u0120poaching\": 49879, \"\\u0120VIEW\": 49880, \"\\u0120stimulates\": 49881, \"\\u0120Gork\": 49882, \"canon\": 49883, \"MIC\": 49884, \"\\u0120Nemesis\": 49885, \"\\u0120Indra\": 49886, \"\\u0120DMV\": 49887, \"\\u0120529\": 49888, \"\\u0120inspecting\": 49889, \"\\u0120grandma\": 49890, \"\\u0120Whedon\": 49891, \"\\u0120Shant\": 49892, \"\\u0120Purg\": 49893, \"ikan\": 49894, \"\\u0120Teg\": 49895, \"\\u0120CLR\": 49896, \"zac\": 49897, \"Victoria\": 49898, \"\\u0120Verify\": 49899, \"ionics\": 49900, \"\\u0120partying\": 49901, \"\\u0120Mou\": 49902, \"colour\": 49903, \"\\u0120testimonies\": 49904, \"lations\": 49905, \"\\u0120pressuring\": 49906, \"hiro\": 49907, \"acers\": 49908, \"\\u0120fid\": 49909, \"angler\": 49910, \"\\u0120CSI\": 49911, \"\\u0120hereafter\": 49912, \"\\u0120dissidents\": 49913, \"reporting\": 49914, \"iphany\": 49915, \"chev\": 49916, \"\\u0120solitude\": 49917, \"\\u0120lobe\": 49918, \"\\u0120indis\": 49919, \"\\u0120credential\": 49920, \"recent\": 49921, \"adult\": 49922, \"\\u0120Nirvana\": 49923, \"\\u0120Franchise\": 49924, \"Layer\": 49925, \"Hyp\": 49926, \"\\u0120Berkshire\": 49927, \"\\u0120wills\": 49928, \"tif\": 49929, \"\\u0120totem\": 49930, \"\\u0120Judah\": 49931, \"repair\": 49932, \"Instant\": 49933, \"548\": 49934, \"\\u0120embassies\": 49935, \"\\u0120bottleneck\": 49936, \"\\u0120bount\": 49937, \"\\u0120typew\": 49938, \"\\u0120Alvin\": 49939, \"jing\": 49940, \"imilar\": 49941, \"Rush\": 49942, \"\\u0120brim\": 49943, \"\\u0120HELP\": 49944, \"Aim\": 49945, \"]'\": 49946, \"\\u0120passively\": 49947, \"\\u0120bounded\": 49948, \"\\u0120Rated\": 49949, \"\\u0120criminality\": 49950, \"\\u0120biomark\": 49951, \"\\u0120dispatcher\": 49952, \"\\u0120Towards\": 49953, \"\\u0120+++\": 49954, \"righteous\": 49955, \"frog\": 49956, \"\\u0120Panc\": 49957, \"Carter\": 49958, \"032\": 49959, \"\\u00e6\\u00a9\\u0141\": 49960, \"\\u0120ultraviolet\": 49961, \"\\u0120Licensed\": 49962, \"\\u0120Tata\": 49963, \"\\u0120Blessing\": 49964, \"\\u0120GAM\": 49965, \"\\u0120chemically\": 49966, \"\\u0120Seaf\": 49967, \"\\u0120RELE\": 49968, \"\\u0120Mercenary\": 49969, \"capitalist\": 49970, \"\\u0120formulations\": 49971, \"\\u0120annihilation\": 49972, \"\\u0120Verb\": 49973, \"\\u0120Argon\": 49974, \"\\u0120unloaded\": 49975, \"\\u0120morphed\": 49976, \"\\u0120conquering\": 49977, \"backer\": 49978, \"IELD\": 49979, \"\\u0120thefts\": 49980, \"\\u0120frontrunner\": 49981, \"\\u0120Royale\": 49982, \"\\u0120Fundamental\": 49983, \"elight\": 49984, \"Chip\": 49985, \"necessary\": 49986, \"ayn\": 49987, \"\\u0120Slip\": 49988, \"\\u0120448\": 49989, \"cerned\": 49990, \"Pause\": 49991, \"\\u0120shockingly\": 49992, \"\\u0120ABV\": 49993, \"\\u0120composure\": 49994, \"733\": 49995, \"\\u0120Motorsport\": 49996, \"ahime\": 49997, \"Murray\": 49998, \"Mach\": 49999, \"\\u0120grids\": 50000, \"\\u0120debian\": 50001, \"\\u0120furthermore\": 50002, \"\\u0120dexterity\": 50003, \"\\u0120Collections\": 50004, \"oslov\": 50005, \"ilage\": 50006, \"bj\": 50007, \"\\u0120Monteneg\": 50008, \"\\u0120strutConnector\": 50009, \"\\u0120massacres\": 50010, \"\\u0120briefs\": 50011, \"fetched\": 50012, \"uvian\": 50013, \"olition\": 50014, \"Failure\": 50015, \"emonic\": 50016, \"\\u0120flared\": 50017, \"\\u0120claimant\": 50018, \"\\u0120cures\": 50019, \"\\u0120giveaways\": 50020, \"\\u0120Substance\": 50021, \"alions\": 50022, \"\\u0120cringe\": 50023, \"\\u0120Kul\": 50024, \"\\u0120aristocracy\": 50025, \"\\u0120Ulster\": 50026, \"olated\": 50027, \"housing\": 50028, \"\\u0120MIS\": 50029, \"\\u0120glared\": 50030, \"\\u0120Wilhelm\": 50031, \"needs\": 50032, \"lambda\": 50033, \"builders\": 50034, \"\\u0120VIS\": 50035, \"\\u0120radiator\": 50036, \"\\u0120Ghostbusters\": 50037, \"\\u0120436\": 50038, \"actual\": 50039, \"\\u0120herds\": 50040, \"\\u00c3\\u00a7a\": 50041, \"watching\": 50042, \"\\u0120countering\": 50043, \"Charge\": 50044, \"\\u0120charred\": 50045, \"\\u0120warheads\": 50046, \"\\u0120iodine\": 50047, \"\\u0120Macy\": 50048, \"041\": 50049, \"\\u0120departures\": 50050, \"\\u0120Sins\": 50051, \"\\u0120dyed\": 50052, \"\\u0120Concepts\": 50053, \"gado\": 50054, \"713\": 50055, \"\\u0120quotations\": 50056, \"\\u0120gist\": 50057, \"\\u0120Christy\": 50058, \"\\u0120antigen\": 50059, \"\\u0120Hemp\": 50060, \"\\u0120Drawn\": 50061, \"\\u0120Barg\": 50062, \"ezvous\": 50063, \"\\u0120paternity\": 50064, \"\\u0120ardu\": 50065, \"\\u0120Anchorage\": 50066, \"\\u0120Rik\": 50067, \"\\u0120overloaded\": 50068, \"\\u0120Username\": 50069, \"\\u0120Tammy\": 50070, \"\\u0120Nau\": 50071, \"\\u0120Cellular\": 50072, \"\\u0120waning\": 50073, \"\\u0120rodent\": 50074, \"\\u0120Worcester\": 50075, \"ilts\": 50076, \"\\u0120Tad\": 50077, \"\\u0120dwellings\": 50078, \"\\u0120bullish\": 50079, \"431\": 50080, \"\\u0120retaliate\": 50081, \"\\u0120migraine\": 50082, \"\\u0120Chevron\": 50083, \"CHECK\": 50084, \"\\u0120donkey\": 50085, \"crim\": 50086, \"SPA\": 50087, \"\\u0120Analog\": 50088, \"\\u0120marquee\": 50089, \"\\u0120Haas\": 50090, \"Bir\": 50091, \"\\u0120GDDR\": 50092, \"\\u0120Downloads\": 50093, \"\\u0120willpower\": 50094, \"\\u0120Forth\": 50095, \"\\u0120Recorded\": 50096, \"\\u0120impossibility\": 50097, \"\\u0120Logged\": 50098, \"\\u0120Franks\": 50099, \"\\u0120Ratt\": 50100, \"initions\": 50101, \"\\u0120cleaners\": 50102, \"\\u0120sorely\": 50103, \"\\u0120flickering\": 50104, \"\\u0120Examination\": 50105, \"catching\": 50106, \"alloween\": 50107, \"Msg\": 50108, \"\\u0120dunno\": 50109, \"Fa\": 50110, \"\\u0120dysph\": 50111, \"crazy\": 50112, \".''.\": 50113, \"\\u0120mainline\": 50114, \"\\u0120cs\": 50115, \"\\u0120ptr\": 50116, \"\\u0120Wally\": 50117, \"igun\": 50118, \"951\": 50119, \"\\u0120Bigfoot\": 50120, \"fights\": 50121, \"\\u0120retrieving\": 50122, \"Jr\": 50123, \"\\u0120duplication\": 50124, \"\\u0120Explan\": 50125, \"\\u0120relational\": 50126, \"\\u0120quaint\": 50127, \"\\u0120biscuits\": 50128, \"\\u0120ado\": 50129, \"\\u0120shudder\": 50130, \"\\u0120antidote\": 50131, \"blooded\": 50132, \"ksh\": 50133, \"\\u0120sauces\": 50134, \"\\u0120reinvest\": 50135, \"\\u0120dispensary\": 50136, \"\\u0120Diver\": 50137, \"\\u01209000\": 50138, \"student\": 50139, \"\\u0120insepar\": 50140, \"escap\": 50141, \"\\u0120toddlers\": 50142, \"\\u0120GPIO\": 50143, \"\\u0120Assignment\": 50144, \"headers\": 50145, \"\\u0120lackluster\": 50146, \"\\u0120aback\": 50147, \"956\": 50148, \"\\u0120toolbar\": 50149, \"745\": 50150, \"\\u0120oust\": 50151, \"\\u0120contemplation\": 50152, \"\\u0120PRESIDENT\": 50153, \"\\u0120458\": 50154, \"======\": 50155, \"\\u0120guaranteeing\": 50156, \"\\u0120Heist\": 50157, \"\\u0120Cannes\": 50158, \"\\u013b\\u00bd\": 50159, \"\\u0120collaborator\": 50160, \"\\u0120Amp\": 50161, \"\\u0120gou\": 50162, \"\\u0120SHALL\": 50163, \"stories\": 50164, \"783\": 50165, \"\\u0120mobilized\": 50166, \"\\u0120brood\": 50167, \"\\u0120LU\": 50168, \"\\u0120\\u00f0\\u0141\\u0133\": 50169, \"\\u0120refin\": 50170, \"\\u0120Anthropology\": 50171, \"vind\": 50172, \"illi\": 50173, \"\\u0120warranties\": 50174, \"\\u0120Babel\": 50175, \"\\u0120swath\": 50176, \"\\u0120caches\": 50177, \"\\u0120antagonists\": 50178, \"artifacts\": 50179, \"\\u0120hotly\": 50180, \"\\u0120Starts\": 50181, \"\\u0120G\\u00c3\\u00b6\": 50182, \"zag\": 50183, \"!!!!!\": 50184, \"\\u0120scourge\": 50185, \"\\u0120conspiring\": 50186, \"ruits\": 50187, \"reverse\": 50188, \"\\u0120Sheen\": 50189, \"\\u0120Jesuit\": 50190, \"\\u0120Giovanni\": 50191, \"adies\": 50192, \"\\u0120buttocks\": 50193, \"earcher\": 50194, \"acan\": 50195, \"\\u0120volleyball\": 50196, \"\\u0120shrouded\": 50197, \"\\u0120scoreboard\": 50198, \"bats\": 50199, \"\\u0120IPM\": 50200, \"\\u0120asses\": 50201, \"\\u0120deregulation\": 50202, \"\\u0120Telegram\": 50203, \"\\u0120Reboot\": 50204, \"\\u01207000\": 50205, \"\\u0120Canary\": 50206, \"\\u0120kernels\": 50207, \"\\u0120Fran\\u00c3\\u00a7ois\": 50208, \"\\u0120Duff\": 50209, \"\\u0120Pon\": 50210, \"\\u0120Leica\": 50211, \"\\u0120Garmin\": 50212, \"\\u0120orphans\": 50213, \"\\u0120Claudia\": 50214, \"\\u0120calendars\": 50215, \"\\u0120Leilan\": 50216, \"ento\": 50217, \"Rocket\": 50218, \"\\u0120brunch\": 50219, \"\\u0120Hawking\": 50220, \"ainers\": 50221, \"\\u0120sensibilities\": 50222, \"\\u0120kW\": 50223, \"\\u0120Kand\": 50224, \"\\u0120reclaimed\": 50225, \"\\u0120interestingly\": 50226, \"\\u00d7\\u00a9\": 50227, \"romy\": 50228, \"JM\": 50229, \"\\u0120Enhancement\": 50230, \"bush\": 50231, \"Skip\": 50232, \"\\u0120rappers\": 50233, \"\\u0120gazing\": 50234, \"pedia\": 50235, \"athlon\": 50236, \"Revolution\": 50237, \"\\u0120snipers\": 50238, \"\\u0120reverted\": 50239, \"\\u0120conglomerate\": 50240, \"Terry\": 50241, \"794\": 50242, \"\\u0120harsher\": 50243, \"\\u0120desolate\": 50244, \"\\u0120Hitman\": 50245, \"Commission\": 50246, \"\\u0120(/\": 50247, \"\\u00e2\\u0122\\u00a6.\\\"\": 50248, \"Compar\": 50249, \"\\u0120amplification\": 50250, \"ominated\": 50251, \"\\u0120regress\": 50252, \"\\u0120Collider\": 50253, \"\\u0120informants\": 50254, \"\\u0120gazed\": 50255, \"<|endoftext|>\": 50256}"
  },
  {
    "path": "codegeex/torch/__init__.py",
    "content": "from .codegeex_model import CodeGeeXModel"
  },
  {
    "path": "codegeex/torch/codegeex_model.py",
    "content": "import math\nimport torch\nimport torch.nn.functional as F\nfrom torch.nn.parameter import Parameter\n\n\ndef fast_gelu(x):\n    \"\"\"Mindspore's fast gelu implementation.\"\"\"\n    return x / (1 + torch.exp(-1.702 * torch.abs(x))) * torch.exp(0.851 * (x - torch.abs(x)))\n\n\nclass MLP(torch.nn.Module):\n    \"\"\"MLP.\n\n    MLP will take the input with h hidden state, project it to 4*h\n    hidden dimension, perform nonlinear transformation, and project the\n    state back into h hidden dimension. At the end, dropout is also\n    applied.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n    ):\n        super(MLP, self).__init__()\n        self.hidden_size = hidden_size\n        # Project to 4h.\n        self.dense_h_to_4h = torch.nn.Linear(\n            self.hidden_size,\n            4 * self.hidden_size,\n        )\n\n        self.activation_func = fast_gelu\n\n        # Project back to h.\n        self.dense_4h_to_h = torch.nn.Linear(\n            4 * self.hidden_size,\n            self.hidden_size,\n        )\n\n    def forward(self, hidden_states):\n        # [s, b, 4hp]\n        intermediate_parallel = self.dense_h_to_4h(hidden_states)\n        intermediate_parallel = self.activation_func(intermediate_parallel)\n        # [s, b, h]\n        output = self.dense_4h_to_h(intermediate_parallel)\n\n        return output\n    \n\nclass SelfAttention(torch.nn.Module):\n    \"\"\"self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads, \n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(SelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n        \n        self.query = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        self.dense = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [sq, b, h]\n\n        # =====================\n        # Query, Key, and Value\n        # =====================\n\n        query_layer = self.query(hidden_states)\n        key_layer = self.key(hidden_states)\n        value_layer = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        query_layer = query_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        key_layer = key_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        value_layer = value_layer.view(*new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = torch.cat((past_key.type_as(key_layer),\n                                   key_layer), dim=0)\n            value_layer = torch.cat((past_value.type_as(value_layer),\n                                     value_layer), dim=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.size(1),\n                       query_layer.size(2),\n                       query_layer.size(0),\n                       key_layer.size(0))\n\n        # [sq, b, np, hn] -> [sq, b * np, hn]\n        query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n        key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                     key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n        # change view to [b, np, sq, sk]\n        attention_scores = matmul_result.view(*output_size)\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with torch.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.size(3) - 1,\n                                     :attention_scores.size(3)].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.size(3),\n                                     :attention_scores.size(3)]\n\n        if context_length is not None:\n            attention_mask = torch.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.float()).half()\n        else:\n            attention_probs = self.softmax(attention_scores)\n\n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.size(1),\n                       value_layer.size(2),\n                       query_layer.size(0),\n                       value_layer.size(3))\n\n        # change view [sq, b * np, hn] \n        value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                               output_size[2], -1)\n\n        context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.view(*output_size)\n\n        # # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n        # # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.size()[:-2] + \\\n                                  (self.hidden_size,)\n        context_layer = context_layer.view(*new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output\n\n\nclass TopQuerySelfAttention(torch.nn.Module):\n    \"\"\"Top query self-attention layer abstract class.\n\n    Self-attention layer takes input with size [b, s, h]\n    and returns output of the same size.\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TopQuerySelfAttention, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.fp16 = fp16\n        self.attention_softmax_in_fp32 = attention_softmax_in_fp32\n        self.layer_number = max(1, layer_number)\n\n        assert self.hidden_size % self.num_attention_heads == 0\n        self.hidden_size_per_attention_head = int(self.hidden_size // self.num_attention_heads)\n\n        self.query = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.key = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        self.value = torch.nn.Linear(self.hidden_size, self.hidden_size)\n\n        self.norm_factor = math.sqrt(self.hidden_size_per_attention_head)\n        self.softmax = torch.nn.Softmax(dim=-1)\n\n        self.dense = torch.nn.Linear(self.hidden_size, self.hidden_size)\n        \n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n\n        # hidden_states: [sq, b, h]\n        query_layer = self.query(query_hidden_state)\n        key_layer = self.key(hidden_states)\n        value_layer = self.value(hidden_states)\n\n        new_query_layer_shape = query_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        query_layer = query_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = key_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        key_layer = key_layer.view(*new_query_layer_shape)\n\n        new_query_layer_shape = value_layer.size()[:-1] + \\\n                                (self.num_attention_heads,\n                                 self.hidden_size_per_attention_head)\n        value_layer = value_layer.view(*new_query_layer_shape)\n\n        # ==================================\n        # Adjust key and value for inference\n        # ==================================\n\n        if layer_past is not None:\n            past_key, past_value = layer_past\n            key_layer = torch.cat((past_key.type_as(key_layer),\n                                   key_layer), dim=0)\n            value_layer = torch.cat((past_value.type_as(value_layer),\n                                     value_layer), dim=0)\n        if get_key_value:\n            present = (key_layer, value_layer)\n\n        # ===================================\n        # Raw attention scores. [b, np, sq, sk]\n        # ===================================\n\n        # [b, np, sq, sk]\n        output_size = (query_layer.size(1),\n                       query_layer.size(2),\n                       query_layer.size(0),\n                       key_layer.size(0))\n\n        # [s, b, np, hn] -> [s, b * np, hn]\n        query_layer = query_layer.contiguous().view(output_size[2], output_size[0] * output_size[1], -1)\n        key_layer = key_layer.contiguous().view(output_size[3], output_size[0] * output_size[1], -1)\n\n        # Raw attention scores. [b * np, sq, sk]\n        matmul_result = torch.matmul(query_layer.transpose(0, 1),\n                                     key_layer.transpose(0, 1).transpose(1, 2)) / self.norm_factor\n\n        # change view to [b, np, s, s]\n        attention_scores = matmul_result.view(*output_size)\n\n        # ==================================================\n        # Update attention mask for inference. [b, np, sq, sk]\n        # ==================================================\n\n        if get_key_value:\n            with torch.no_grad():\n                if layer_past is not None:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     attention_scores.size(3) - 1,\n                                     :attention_scores.size(3)].unsqueeze(2)\n                else:\n                    attention_mask = attention_mask[\n                                     ...,\n                                     :attention_scores.size(3),\n                                     :attention_scores.size(3)]\n\n        if context_length is not None:\n            attention_mask = torch.clone(attention_mask)\n            attention_mask[:, :, context_length:, :] = True\n\n        # attention scores and attention mask [b, np, sq, sk]\n        # attention_scores = attention_mask_func(attention_scores, attention_mask)\n        attention_scores = attention_scores - attention_mask * 10000.0\n        if self.attention_softmax_in_fp32:\n            attention_probs = self.softmax(attention_scores.float()).half()\n        else:\n            attention_probs = self.softmax(attention_scores)\n            \n        # =========================\n        # Context layer. [sq, b, hp]\n        # =========================\n\n        # value_layer -> context layer.\n        # [sq, b, np, hn] --> [b, np, sq, hn]\n\n        # context layer shape: [b, np, sq, hn]\n        output_size = (value_layer.size(1),\n                       value_layer.size(2),\n                       query_layer.size(0),\n                       value_layer.size(3))\n\n        # change view [sq, b * np, hn]\n        value_layer = value_layer.view(value_layer.size(0), output_size[0] * output_size[1], -1)\n\n        # change view [b * np, sq, sk]\n        attention_probs = attention_probs.view(output_size[0] * output_size[1],\n                                               output_size[2], -1)\n\n        # matmul: [b * np, sq, hn]\n        context_layer = torch.bmm(attention_probs, value_layer.unsqueeze(0).transpose(1, 2).squeeze(0))\n\n        # change view [b, np, sq, hn]\n        context_layer = context_layer.view(*output_size)\n\n        # [b, np, sq, hn] --> [sq, b, np, hn]\n        context_layer = context_layer.permute(2, 0, 1, 3).contiguous()\n\n        # [sq, b, np, hn] --> [sq, b, hp]\n        new_context_layer_shape = context_layer.size()[:-2] + \\\n                                  (self.hidden_size,)\n        context_layer = context_layer.view(*new_context_layer_shape)\n\n        # =================\n        # Output. [sq, b, h]\n        # =================\n\n        output = self.dense(context_layer)\n\n        if get_key_value:\n            output = [output, present]\n\n        return output\n\n\nclass TransformerLayer(torch.nn.Module):\n    \"\"\"A single transformer layer.\n\n    Transformore layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number, \n        layernorm_epsilon=1e-5,\n        fp16=True,\n        attention_softmax_in_fp32=True,\n    ):\n        super(TransformerLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Layernorm on the input data.\n        self.input_layernorm = torch.nn.LayerNorm(hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = SelfAttention(hidden_size,\n                                       num_attention_heads, \n                                       layer_number,\n                                       fp16,\n                                       attention_softmax_in_fp32)\n\n        # Layernorm on the input data.\n        self.post_attention_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                           eps=self.layernorm_epsilon)\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.float()).half()\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output = self.attention(layernorm_output,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n        mlp_output = self.mlp(layernorm_output)\n        output = mlp_output + layernorm_input\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass TopQueryLayer(torch.nn.Module):\n    \"\"\"A single top query layer.\n\n    Top query layer takes input with size [b, s, h] and returns an\n    output of the same size.\n    \"\"\"\n\n    def __init__(\n        self, \n        hidden_size,\n        num_attention_heads,\n        layer_number,\n        layernorm_epsilon=1e-5,\n    ):\n        super(TopQueryLayer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        self.layer_number = layer_number\n\n        # Use FP32 for Layernorm\n        self.input_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n        # Self attention.\n        self.attention = TopQuerySelfAttention(self.hidden_size,\n                                               self.num_attention_heads,\n                                               self.layer_number)\n        # Layernorm on the input data.\n        self.post_attention_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                           eps=self.layernorm_epsilon)\n\n        # MLP\n        self.mlp = MLP(self.hidden_size)\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # hidden_states: [b, s, h]\n        assert query_hidden_state != None\n\n        # Use FP32 for Layernorm\n        # layernorm_output = self.input_layernorm(hidden_states.float()).half()\n        layernorm_output = self.input_layernorm(hidden_states)\n\n        # Self attention.\n        attention_output = self.attention(layernorm_output,\n                                          query_hidden_state,\n                                          attention_mask,\n                                          layer_past=layer_past,\n                                          get_key_value=get_key_value,\n                                          prompt_length=prompt_length,\n                                          context_length=context_length)\n\n        if get_key_value:\n            attention_output, presents = attention_output\n\n        # Residual connection.\n        residual = hidden_states\n        layernorm_input = attention_output + residual\n        \n        # Use FP32 for Layernorm\n        # layernorm_output = self.post_attention_layernorm(layernorm_input.float()).half()\n        layernorm_output = self.post_attention_layernorm(layernorm_input)\n\n        # MLP.\n        mlp_output = self.mlp(layernorm_output)\n\n        # Second residual connection.\n        residual = layernorm_input\n        output = mlp_output + residual\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n\nclass Transformer(torch.nn.Module):\n    \"\"\"Transformer class.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_attention_heads,\n        num_layers,\n        layernorm_epsilon=1e-5,\n    ):\n        super(Transformer, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_attention_heads = num_attention_heads\n        self.layernorm_epsilon = layernorm_epsilon\n        # Number of layers:\n        self.num_layers = num_layers\n        self.num_unique_layers = None\n\n        #################\n        assert self.num_unique_layers is None\n        #################\n\n        if self.num_unique_layers is None:\n            self.num_unique_layers = self.num_layers\n        assert self.num_layers % self.num_unique_layers == 0, \\\n            'number of layers should be divisible by number of unique layers'\n        \n        # Transformer layers.\n        def build_layer(layer_number):\n            return TransformerLayer(self.hidden_size, self.num_attention_heads, layer_number)\n\n        self.layers = torch.nn.ModuleList(\n            [build_layer(i + 1) for i in range(self.num_unique_layers)])\n\n        self.topQueryLayer = TopQueryLayer(self.hidden_size,\n                                           self.num_attention_heads,\n                                           self.num_unique_layers)\n\n        self.final_layernorm = torch.nn.LayerNorm(self.hidden_size,\n                                                  eps=self.layernorm_epsilon)\n\n    def _get_layer_index(self, layer_number):\n        return layer_number % self.num_unique_layers\n\n    def _get_layer(self, layer_number):\n        return self.layers[self._get_layer_index(layer_number)]\n\n    def forward(\n        self,\n        hidden_states,\n        query_hidden_state,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # data format change to avoid explicit tranposes : [b s h] --> [s b h]\n        hidden_states = hidden_states.transpose(0, 1).contiguous()\n        query_hidden_state = query_hidden_state.transpose(0, 1).contiguous()\n\n    \n        if get_key_value:\n            presents = []\n        for index in range(self.num_layers):\n            layer = self._get_layer(index)\n            past = None\n            if layer_past is not None:\n                past = layer_past[index]\n            hidden_states = layer(hidden_states,\n                                  attention_mask,\n                                  layer_past=past,\n                                  get_key_value=get_key_value,\n                                  prompt_length=prompt_length,\n                                  context_length=context_length)\n            if get_key_value:\n                hidden_states, present = hidden_states\n                presents.append(present)\n\n        # Use FP32 for Layernorm\n        # hidden_states_ = self.final_layernorm(hidden_states.float()).half()\n        hidden_states_ = self.final_layernorm(hidden_states)\n\n        #################################\n        # top query layer\n        #################################\n        past = None\n        if layer_past is not None:\n            past = layer_past[self.num_layers]\n        hidden_states = self.topQueryLayer(hidden_states_,\n                                           query_hidden_state,\n                                           attention_mask,\n                                           layer_past=past,\n                                           get_key_value=get_key_value,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length)\n\n        if get_key_value:\n            hidden_states, present = hidden_states\n            presents.append(present)\n\n        # reverting data format change [s b h] --> [b s h]\n        output = hidden_states.transpose(0, 1).contiguous()\n\n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(\n        self, destination=None, prefix=\"\", keep_vars=False\n    ):\n        return self.state_dict(destination, prefix, keep_vars)\n\n\nclass Embedding(torch.nn.Module):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(Embedding, self).__init__()\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n        \n        # Word embeddings.\n        self.word_embeddings = torch.nn.Embedding(self.vocab_size, self.hidden_size)\n        self._word_embeddings_key = 'word_embeddings'\n        \n        # Position embedding.\n        self.position_embeddings = torch.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.position_embeddings = self.position_embeddings.half()\n        self._position_embeddings_key = 'position_embeddings'\n        \n    def forward(self, input_ids, position_ids):\n        # Embeddings.\n        words_embeddings = self.word_embeddings(input_ids)\n        position_embeddings = self.position_embeddings(position_ids)\n        embeddings = words_embeddings + position_embeddings\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._word_embeddings_key] \\\n            = self.word_embeddings.state_dict(destination, prefix, keep_vars)\n        state_dict_[self._position_embeddings_key] \\\n            = self.position_embeddings.state_dict(\n            destination, prefix, keep_vars)\n        \n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Word embedding.\n        if self._word_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._word_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'word_embeddings' in key:\n                    state_dict_[key.split('word_embeddings.')[1]] \\\n                        = state_dict[key]\n        state_dict_[\"weight\"] = state_dict_[\"weight\"][:self.vocab_size]\n        self.word_embeddings.load_state_dict(state_dict_, strict=strict)\n\n        # Position embedding.\n        if self._position_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._position_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'position_embeddings' in key:\n                    state_dict_[key.split('position_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.position_embeddings.load_state_dict(state_dict_, strict=strict)\n        \n\nclass QueryEmbedding(torch.nn.Module):\n    \"\"\"Language model embeddings.\n\n    Arguments:\n        hidden_size: hidden size\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        vocab_size,\n        max_sequence_length,\n    ):\n        super(QueryEmbedding, self).__init__()\n\n        self.hidden_size = hidden_size\n        self.vocab_size = vocab_size\n        self.max_sequence_length = max_sequence_length\n\n        # Top query position embedding (serial).\n        self.top_query_embeddings = torch.nn.Embedding(self.max_sequence_length, self.hidden_size)\n        self.top_query_embeddings = self.top_query_embeddings.half()\n        self._top_query_embeddings_key = 'top_query_embeddings'\n        \n    def forward(self, position_ids):\n        # Embeddings.\n        embeddings = self.top_query_embeddings(position_ids)\n        \n        return embeddings\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._top_query_embeddings_key] \\\n            = self.top_query_embeddings.state_dict(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Position embedding.\n        if self._top_query_embeddings_key in state_dict:\n            state_dict_ = state_dict[self._top_query_embeddings_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'top_query_embeddings' in key:\n                    state_dict_[key.split('top_query_embeddings.')[1]] \\\n                        = state_dict[key]\n        self.top_query_embeddings.load_state_dict(state_dict_, strict=strict)\n        \n\nclass TransformerLanguageModel(torch.nn.Module):\n    \"\"\"Transformer language model.\n\n    Arguments:\n        transformer_hparams: transformer hyperparameters\n        attention_mask_func: a function that takes `unmaksed-attention-scores`\n            with size [b, np, s, s] and an `attention-mask` and will apply\n            the masking. The function should return a masked score of the\n            same size [b, np, s, s].\n          masked-attention-scores = attention_mask_func(\n                                     unmaksed-attention-scores, attention-mask)\n        vocab_size: vocabulary size\n        max_sequence_length: maximum size of sequence. This\n                             is used for positional embedding\n    \"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(TransformerLanguageModel, self).__init__()\n        self.hidden_size = hidden_size\n        self.num_layers = num_layers\n        self.num_attention_heads = num_attention_heads\n        self.padded_vocab_size = padded_vocab_size\n        self.max_position_embeddings = max_position_embeddings\n\n        # Embeddings\n        self.embedding = Embedding(self.hidden_size,\n                                   self.padded_vocab_size,\n                                   self.max_position_embeddings)\n        self._embedding_key = 'embedding'\n\n        # Query embeddings\n        self.topQueryEmbedding = QueryEmbedding(self.hidden_size,\n                                                self.padded_vocab_size,\n                                                self.max_position_embeddings)\n        self._topQueryEmbedding_key = 'topQueryEmbedding'\n\n        # Transformer\n        self.transformer = Transformer(self.hidden_size,\n                                       self.num_attention_heads,\n                                       self.num_layers)\n        self._transformer_key = 'transformer'\n\n    def forward(\n            self,\n            input_ids,\n            position_ids,\n            attention_mask,\n            layer_past=None,\n            get_key_value=False,\n            prompt_length=None,\n            context_length=None,\n    ):\n\n        # Embeddings.\n        embedding_output = self.embedding(input_ids, position_ids)\n        query_position_ids = position_ids\n        queryEmbedding_out = self.topQueryEmbedding(query_position_ids)\n\n        # Transformer.\n        transformer_output = self.transformer(embedding_output,\n                                              queryEmbedding_out,\n                                              attention_mask,\n                                              layer_past=layer_past,\n                                              get_key_value=get_key_value,\n                                              prompt_length=prompt_length,\n                                              context_length=context_length)\n\n        return transformer_output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n        \"\"\"For easy load.\"\"\"\n\n        state_dict_ = {}\n        state_dict_[self._embedding_key] \\\n            = self.embedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._topQueryEmbedding_key] \\\n            = self.topQueryEmbedding.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        state_dict_[self._transformer_key] \\\n            = self.transformer.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        # Embedding.\n        if self._embedding_key in state_dict:\n            state_dict_ = state_dict[self._embedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.embedding.load_state_dict(state_dict_, strict=strict)\n\n        if self._topQueryEmbedding_key in state_dict:\n            state_dict_ = state_dict[self._topQueryEmbedding_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if '_embeddings' in key:\n                    state_dict_[key] = state_dict[key]\n        self.topQueryEmbedding.load_state_dict(state_dict_, strict=strict)\n\n        # Transformer.\n        if self._transformer_key in state_dict:\n            state_dict_ = state_dict[self._transformer_key]\n        else:\n            # for backward compatibility.\n            state_dict_ = {}\n            for key in state_dict.keys():\n                if 'transformer.' in key:\n                    state_dict_[key.split('transformer.')[1]] = state_dict[key]\n        self.transformer.load_state_dict(state_dict_, strict=strict)\n\n\nclass CodeGeeXModel(torch.nn.Module):\n    \"\"\"CodeGeeX: A Multilingual Code Generation Model.\"\"\"\n\n    def __init__(\n        self,\n        hidden_size,\n        num_layers,\n        num_attention_heads,\n        padded_vocab_size,\n        max_position_embeddings,\n    ):\n        super(CodeGeeXModel, self).__init__()\n        \n        self.language_model = TransformerLanguageModel(hidden_size,\n                                                       num_layers,\n                                                       num_attention_heads,\n                                                       padded_vocab_size,\n                                                       max_position_embeddings)\n        self._language_model_key = \"language_model\"\n        \n    def forward(\n        self,\n        input_ids,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=False,\n        prompt_length=None,\n        context_length=None,\n    ):\n        # Language model.\n        lm_output = self.language_model(input_ids,\n                                        position_ids,\n                                        attention_mask,\n                                        layer_past=layer_past,\n                                        get_key_value=get_key_value,\n                                        prompt_length=prompt_length,\n                                        context_length=context_length)\n\n        if get_key_value:\n            lm_output, presents = lm_output\n\n        output = F.linear(lm_output, self.language_model.embedding.word_embeddings.weight.half())\n        \n        if get_key_value:\n            output = [output, presents]\n\n        return output\n\n    def state_dict_for_save_checkpoint(self, destination=None, prefix='',\n                                       keep_vars=False):\n\n        state_dict_ = {}\n        state_dict_[self._language_model_key] \\\n            = self.language_model.state_dict_for_save_checkpoint(\n            destination, prefix, keep_vars)\n        return state_dict_\n\n    def load_state_dict(self, state_dict, strict=True):\n        \"\"\"Customized load.\"\"\"\n\n        if self._language_model_key in state_dict:\n            state_dict = state_dict[self._language_model_key]\n        self.language_model.load_state_dict(state_dict, strict=strict)\n"
  },
  {
    "path": "codegeex/torch/get_ckpt_qkv.py",
    "content": "import os\nimport sys\nimport torch\nimport random\nimport argparse\nimport numpy as np\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser.add_argument(\"--load-path\", \n                        type=str, \n                        default=\"/zhangpai24/workspace/ckpt_ms/ckpt_ms_213000_fp32_52224.pt\")\n    parser.add_argument(\"--save-path\", \n                        type=str, \n                        default=\"/zhangpai24/workspace/ckpt_ms/ckpt_ms_213000_qkv.pt\")\n    \n    args, _ = parser.parse_known_args()\n    \n    state_dict_path = args.load_path\n    print(\"Loading state dict ...\")\n    sd = torch.load(state_dict_path, map_location=\"cpu\")\n    \n    for i in range(40):\n        if i < 39:\n            query_weight = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.query.weight', None)\n            query_bias = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.query.bias', None)\n            key_weight = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.key.weight', None)\n            key_bias = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.key.bias', None)\n            value_weight = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.value.weight', None)\n            value_bias = sd['module']['language_model']['transformer'].pop(f'layers.{i}.attention.value.bias', None)\n            qkv_weight = torch.cat([query_weight, key_weight, value_weight], dim=0)\n            qkv_bias = torch.cat([query_bias, key_bias, value_bias])\n            sd['module']['language_model']['transformer'][f'layers.{i}.attention.query_key_value.weight'] = qkv_weight\n            sd['module']['language_model']['transformer'][f'layers.{i}.attention.query_key_value.bias'] = qkv_bias\n        else:\n            tq_key_weight = sd['module']['language_model']['transformer'].pop('topQueryLayer.attention.key.weight', None)\n            tq_key_bias = sd['module']['language_model']['transformer'].pop('topQueryLayer.attention.key.bias', None)\n            tq_value_weight = sd['module']['language_model']['transformer'].pop('topQueryLayer.attention.value.weight', None)\n            tq_value_bias = sd['module']['language_model']['transformer'].pop('topQueryLayer.attention.value.bias', None)\n            tq_kv_weight = torch.cat([tq_key_weight, tq_value_weight], dim=0)\n            tq_kv_bias = torch.cat([tq_key_bias, tq_value_bias])\n            sd['module']['language_model']['transformer']['topQueryLayer.attention.key_value.weight'] = tq_kv_weight\n            sd['module']['language_model']['transformer']['topQueryLayer.attention.key_value.bias'] = tq_kv_bias\n    \n    save_ckpt_path = args.save_path\n    torch.save(sd, save_ckpt_path)\n    \nif __name__ == '__main__':\n    main()\n"
  },
  {
    "path": "codegeex/torch/inference.py",
    "content": "import copy\nimport json\nimport os\nimport time\nfrom typing import *\n\nimport torch\nimport torch.nn.functional as F\nfrom dataclasses import dataclass\n\n\ndef get_ltor_masks_and_position_ids(\n    data, \n    eod_token, \n    reset_position_ids, \n    reset_attention_mask, \n):\n    \"\"\"Build masks and position id for left to right model.\"\"\"\n\n    # Extract batch size and sequence length.\n    micro_batch_size, seq_length = data.size()\n\n    # Attention mask (lower triangular).\n    if reset_attention_mask:\n        att_mask_batch = micro_batch_size\n    else:\n        att_mask_batch = 1\n    attention_mask = torch.tril(\n        torch.ones((att_mask_batch, seq_length, seq_length), device=data.device)\n    ).view(att_mask_batch, 1, seq_length, seq_length)\n\n    # Position ids.\n    position_ids = torch.arange(seq_length, dtype=torch.long, device=data.device)\n    position_ids = position_ids.unsqueeze(0).expand_as(data)\n    # We need to clone as the ids will be modifed based on batch index.\n    if reset_position_ids:\n        position_ids = position_ids.clone()\n\n    if reset_position_ids or reset_attention_mask:\n        # Loop through the batches:\n        for b in range(micro_batch_size):\n\n            # Find indecies where EOD token is.\n            eod_index = position_ids[b, data[b] == eod_token]\n            # Detach indecies from positions if going to modify positions.\n            if reset_position_ids:\n                eod_index = eod_index.clone()\n\n            # Loop through EOD indecies:\n            prev_index = 0\n            for j in range(eod_index.size()[0]):\n                i = eod_index[j]\n                # Mask attention loss.\n                if reset_attention_mask:\n                    attention_mask[b, 0, (i + 1) :, : (i + 1)] = 0\n                # Reset positions.\n                if reset_position_ids:\n                    position_ids[b, (i + 1) :] -= i + 1 - prev_index\n                    prev_index = i + 1\n\n    # Convert attention mask to binary:\n    attention_mask = attention_mask < 0.5\n\n    return attention_mask, position_ids\n\n\ndef get_batch(\n    context_tokens, \n    micro_batch_size, \n    eod_token, \n    reset_position_ids=False,\n    reset_attention_mask=False,\n):\n    \"\"\"Generate batch from context tokens.\"\"\"\n    tokens = context_tokens.view(micro_batch_size, -1).contiguous().cuda()\n    # Get the attention mask and postition ids.\n    attention_mask, position_ids = get_ltor_masks_and_position_ids(\n        tokens,\n        eod_token,\n        reset_position_ids,\n        reset_attention_mask,\n    )\n\n    return tokens, attention_mask, position_ids\n\n\ndef top_k_logits(logits, top_k=0, top_p=0.0, filter_value=-float(\"Inf\")):\n    \"\"\"This function has been mostly taken from huggingface conversational\n    ai code at\n        https://medium.com/huggingface/how-to-build-a-state-of-the-art-\n             conversational-ai-with-transfer-learning-2d818ac26313\"\"\"\n\n    if top_k > 0:\n        # Remove all tokens with a probability less than the\n        # last token of the top-k\n        indices_to_remove = logits < torch.topk(logits, top_k)[0][..., -1, None]\n        logits[indices_to_remove] = filter_value\n\n    if top_p > 0.0:\n        # Cconvert to 1D\n        sorted_logits, sorted_indices = torch.sort(logits, descending=True, dim=-1)\n        cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1)\n\n        # Remove tokens with cumulative probability above the threshold\n        sorted_indices_to_remove = cumulative_probs > top_p\n        # Shift the indices to the right to keep also the first token\n        # above the threshold\n        sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()\n        sorted_indices_to_remove[..., 0] = 0\n        for i in range(sorted_indices.size(0)):\n            indices_to_remove = sorted_indices[i][sorted_indices_to_remove[i]]\n            logits[i][indices_to_remove] = filter_value\n\n    return logits\n\n\ndef pad_batch(batch, pad_id, seq_length):\n    context_lengths = []\n    for tokens in batch:\n        context_length = len(tokens)\n        if context_length < seq_length:\n            tokens.extend([pad_id] * (seq_length - context_length))\n        context_lengths.append(context_length)\n    return batch, context_lengths\n\n\ndef forward_step(\n        model,\n        tokens,\n        seq_length,\n        position_ids,\n        attention_mask,\n        layer_past=None,\n        get_key_value=None,\n        prompt_length=None,\n        context_length=None,\n):\n    # Forward pass through the model.\n    output_tensor = model(\n        tokens,\n        position_ids,\n        attention_mask,\n        layer_past=layer_past,\n        get_key_value=get_key_value,\n        prompt_length=prompt_length,\n        context_length=context_length,\n    )\n\n    if get_key_value:\n        output_tensor, layer_past = output_tensor\n\n    if get_key_value:\n        return output_tensor, layer_past\n\n    return output_tensor\n\n\ndef get_token_stream(\n        model,\n        tokenizer,\n        seq_length,\n        out_seq_length,\n        context_tokens,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        micro_batch_size: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        greedy: bool = False,\n        recompute: bool = False,\n):\n    context_tokens, context_lengths = pad_batch(context_tokens, tokenizer.eos_token_id, seq_length)\n\n    context_tokens_tensor = torch.cuda.LongTensor(context_tokens)\n    context_length_tensor = torch.cuda.LongTensor(context_lengths)\n    context_length = context_length_tensor.min().item()\n    tokens, attention_mask, position_ids = get_batch(\n        context_tokens_tensor, \n        micro_batch_size,\n        tokenizer.eos_token_id,\n    )\n\n    batch_token_iterator = sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens_tensor,\n        context_length_tensor,\n        attention_mask,\n        position_ids,\n        seq_length=seq_length,\n        out_seq_length=out_seq_length,\n        return_scores=return_scores,\n        prompt_length=prompt_length,\n        bad_ids=bad_ids,\n        temperature=temperature,\n        topp=topp,\n        topk=topk,\n        greedy=greedy,\n        recompute=recompute,\n    )\n\n    for tokens, lengths in batch_token_iterator:\n        context_length += 1\n        if tokens is not None:\n            yield tokens[:, :context_length], lengths\n        else:\n            yield None, None\n\n\ndef switch(val1, val2, boolean):\n    boolean = boolean.type_as(val1)\n    return (1 - boolean) * val1 + boolean * val2\n\n\ndef sample_sequence_batch(\n        model,\n        tokenizer,\n        context_tokens,\n        context_lengths,\n        attention_mask,\n        position_ids,\n        seq_length,\n        out_seq_length,\n        maxlen=None,\n        return_scores: bool = False,\n        prompt_length: int = None,\n        bad_ids: List = None,\n        temperature: float = 1.0,\n        topp: float = 1.0,\n        topk: int = 0.0,\n        recompute: bool = False,\n        greedy: bool = False,\n):\n    model.eval()\n    with torch.no_grad():\n        context_length = context_lengths.min().item()\n        eos_id = tokenizer.eos_token_id\n\n        counter = 0\n        org_context_length = context_length\n\n        layer_past = None\n        batch_size = context_tokens.size(0)\n        is_done = torch.zeros([batch_size]).byte().cuda()\n        tokens = context_tokens\n        if maxlen is None:\n            maxlen = seq_length - 1\n            if maxlen > (org_context_length + out_seq_length):\n                maxlen = org_context_length + out_seq_length\n\n        lengths = torch.ones([batch_size]).long().cuda() * maxlen\n        if return_scores:\n            scores = torch.zeros([batch_size]).float().cuda()\n\n        while context_length <= (maxlen):\n\n            if recompute:\n                logits = model(tokens,\n                               position_ids,\n                               attention_mask,\n                               prompt_length=prompt_length,\n                               context_length=context_length,\n                               )\n                logits = logits[:, context_length - 1, :]\n            else:\n                if counter == 0:\n                    tokens2use = tokens[:, :context_length]\n                    positions2use = position_ids[:, :context_length]\n                else:\n                    tokens2use = tokens[:, context_length - 1].view(\n                        batch_size, -1)\n                    positions2use = position_ids[:, context_length - 1].view(\n                        batch_size, -1)\n                logits, layer_past = model(tokens2use,\n                                           positions2use,\n                                           attention_mask,\n                                           layer_past=layer_past,\n                                           get_key_value=True,\n                                           prompt_length=prompt_length,\n                                           context_length=context_length,\n                                           )\n                logits = logits[:, -1].view(batch_size, -1).contiguous()\n\n            if bad_ids is not None:\n                for bad_id in bad_ids:\n                    logits[:, bad_id] = -10000\n            if greedy:\n                prev = torch.argmax(logits, dim=-1).view(-1)\n            else:\n                logits = logits.float()\n                if return_scores:\n                    orig_log_probs = torch.log_softmax(logits, dim=-1)\n                logits /= temperature\n                logits = top_k_logits(logits, top_k=topk, top_p=topp)\n                log_probs = F.softmax(logits, dim=-1)\n                prev = torch.multinomial(log_probs, num_samples=1).view(-1)\n\n            started = context_lengths <= context_length\n\n            new_tokens = switch(tokens[:, context_length].view(-1), prev, started)\n\n            if not greedy and return_scores:\n                indices = prev.view(-1, 1)\n                new_scores = orig_log_probs.gather(1, indices).view(-1)\n                new_scores = new_scores * started\n                new_scores = new_scores * is_done.bool().logical_not()\n                scores += new_scores\n\n            tokens[:, context_length] = new_tokens\n            done_token = (prev == eos_id).byte() & started.byte()\n            just_finished = (done_token & ~is_done).bool()\n            lengths[just_finished.view(-1)] = context_length\n            is_done = is_done | done_token\n            done = torch.all(is_done)\n            \n            if return_scores:\n                yield tokens, (lengths, scores)\n            else:\n                yield tokens, lengths\n                \n            context_length += 1\n            counter += 1\n            if done:\n                break\n"
  },
  {
    "path": "configs/codegeex_13b.sh",
    "content": "# CodeGeeX-13B configuration\n\nCHECKPOINT_PATH=\"<path where you put the checkpoint (e.g., XXX/codegeex_13b.pt)>\"\n\nMODEL_ARGS=\"--num-layers 39 \\\n            --hidden-size 5120 \\\n            --num-attention-heads 40 \\\n            --max-position-embeddings 2048 \\\n            --attention-softmax-in-fp32 \\\n            --load \"$CHECKPOINT_PATH\" \\\n            --layernorm-epsilon 1e-5 \\\n            --fp16 \\\n            --ws-encoding-start-id 10 \\\n            --ws-encoding-length 10 \\\n            --make-vocab-size-divisible-by 52224 \\\n            --seq-length 2048\""
  },
  {
    "path": "configs/codegeex_13b_paddle.sh",
    "content": "# CodeGeeX-13B paddle configuration\n\nCHECKPOINT_PATH=\"<path where you put the checkpoint (e.g., XXX/codegeex_13b.pdparams)>\"\n\nMODEL_ARGS=\"--num-layers 39 \\\n            --hidden-size 5120 \\\n            --num-attention-heads 40 \\\n            --max-position-embeddings 2048 \\\n            --attention-softmax-in-fp32 \\\n            --load \"$CHECKPOINT_PATH\" \\\n            --layernorm-epsilon 1e-5 \\\n            --fp16 \\\n            --ws-encoding-start-id 10 \\\n            --ws-encoding-length 10 \\\n            --make-vocab-size-divisible-by 52224 \\\n            --seq-length 2048\""
  },
  {
    "path": "configs/codegeex_13b_parallel.sh",
    "content": "# CodeGeeX-13B parallel configuration\n# Parallel checkpoints are named under the format \"mp_rank_0{i}_model_states.pt\", where i is the rank, start from 0.\n\nCHECKPOINT_PATH=\"<path where you put all parallel checkpoints (e.g., XXX/tp4/)>\"\n\nMODEL_ARGS=\"--num-layers 39 \\\n            --hidden-size 5120 \\\n            --num-attention-heads 40 \\\n            --max-position-embeddings 2048 \\\n            --attention-softmax-in-fp32 \\\n            --load \"$CHECKPOINT_PATH\" \\\n            --layernorm-epsilon 1e-5 \\\n            --fp16 \\\n            --ws-encoding-start-id 10 \\\n            --ws-encoding-length 10 \\\n            --make-vocab-size-divisible-by 52224 \\\n            --seq-length 2048\""
  },
  {
    "path": "deployment/example_inputs.jsonl",
    "content": "{\"code\": \"# Write a function that returns the sum of the numbers from 1 to n.\\n# For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\n# You may assume that n is a positive integer.\\ndef sum_of_numbers(n):\", \"langauge\": \"Python\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\n#include <iostream>\\nusing namespace std;\\nint sum_of_numbers(int n) {\", \"langauge\": \"C++\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\n#include <stdio.h>\\n#include <stdlib.h>\\nint sum(int n)\\n{\", \"langauge\": \"C\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\nprivate int sum(int n) {\", \"langauge\": \"C#\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\npublic class SumOfNumbers {\", \"langauge\": \"Java\"}\n{\"code\": \"<!--Write a homepage of CodeGeeX.-->\\n\\n<div class=\\\"container\\\">\", \"langauge\": \"HTML\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n// If n is 0, then the function should return 0.\\n// If n is less than 0, then the function should return -1.\\n/**\\n * @param {number} n\\n * @return {number}\\n */\\nfunction sum ($n) {\", \"langauge\": \"PHP\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\nfunction sum(n) {\", \"langauge\": \"JavaScript\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n,\\n// but using a for loop instead of a while loop.\\n\\nfunction sumForLoop(n) {\", \"langauge\": \"TypeScript\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n,\\n// but using a for loop instead of a while loop.\\n\\nfunc sumN(n int) int {\", \"langauge\": \"Go\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n,\\n// but using a for loop instead of a while loop.\\n\\nfn sum_numbers(n: usize) -> usize {\", \"langauge\": \"Rust\"}\n{\"code\": \"-- Search all the records from the table CodeGeeX\\n-- Delete iterms with odd indices\", \"langauge\": \"SQL\"}\n{\"code\": \"// Write a function that returns the sum of the numbers from 1 to n.\\n// For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\nfun sum(n: Int): Int {\", \"langauge\": \"Kotlin\"}\n{\"code\": \"! Write a function that returns the sum of the numbers from 1 to n.\\n! For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\n\\n! Use the following header:\\n! module sum_numbers\\n! end\\nmodule sum_numbers\", \"langauge\": \"Fortran\"}\n{\"code\": \"# Write a function that returns the sum of the numbers from 1 to n.\\n# For example, if n is 5, then the function should return 1 + 2 + 3 + 4 + 5.\\nsum_numbers <- function(n) {\", \"langauge\": \"R\"}\n"
  },
  {
    "path": "deployment/server_gradio.py",
    "content": "import json\nimport torch\nimport argparse\nimport gradio as gr\n\nimport codegeex\nfrom codegeex.torch import CodeGeeXModel\nfrom codegeex.tokenizer import CodeGeeXTokenizer\nfrom codegeex.quantization import quantize\nfrom codegeex.data.data_utils import LANGUAGE_TAG\nfrom codegeex.megatron.inference import set_random_seed\n\n\ndef model_provider(args):\n    \"\"\"Build the model.\"\"\"\n\n    model = CodeGeeXModel(\n        args.hidden_size,\n        args.num_layers,\n        args.num_attention_heads,\n        args.padded_vocab_size,\n        args.max_position_embeddings\n    )\n    return model\n\n\ndef add_code_generation_args(parser):\n    group = parser.add_argument_group(title=\"code generation\")\n    group.add_argument(\n        \"--num-layers\",\n        type=int,\n        default=39,\n    )\n    group.add_argument(\n        \"--hidden-size\",\n        type=int,\n        default=5120,\n    )\n    group.add_argument(\n        \"--num-attention-heads\",\n        type=int,\n        default=40,\n    )\n    group.add_argument(\n        \"--padded-vocab-size\",\n        type=int,\n        default=52224,\n    )\n    group.add_argument(\n        \"--max-position-embeddings\",\n        type=int,\n        default=2048,\n    )\n    group.add_argument(\n        \"--tokenizer-path\",\n        type=str,\n        default=\"./tokenizer\",\n    )\n    group.add_argument(\n        \"--example-path\",\n        type=str,\n        default=\"./\",\n    )\n    group.add_argument(\n        \"--load\",\n        type=str,\n    )\n    group.add_argument(\n        \"--state-dict-path\",\n        type=str,\n    )\n    group.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n    \n    return parser\n\n\ndef main():\n    parser = argparse.ArgumentParser()\n    parser = add_code_generation_args(parser)\n    args, _ = parser.parse_known_args()\n    \n    print(\"Loading tokenizer ...\")\n    tokenizer = CodeGeeXTokenizer(\n        tokenizer_path=args.tokenizer_path, \n        mode=\"codegeex-13b\")\n\n    print(\"Loading state dict ...\")\n    state_dict = torch.load(args.load, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider(args)\n    model.load_state_dict(state_dict)\n    model.eval()\n    model.half()\n    if args.quantize:\n        model = quantize(model, weight_bit_width=8, backend=\"torch\")\n    model.cuda()\n\n    def predict(\n        prompt, \n        lang,\n        seed, \n        out_seq_length, \n        temperature, \n        top_k, \n        top_p,\n    ):\n        set_random_seed(seed)\n        if lang.lower() in LANGUAGE_TAG:\n            prompt = LANGUAGE_TAG[lang.lower()] + \"\\n\" + prompt\n        \n        generated_code = codegeex.generate(\n            model,\n            tokenizer,\n            prompt,\n            out_seq_length=out_seq_length,\n            seq_length=args.max_position_embeddings,\n            top_k=top_k,\n            top_p=top_p,\n            temperature=temperature,\n            micro_batch_size=args.micro_batch_size,\n            backend=\"megatron\",\n            verbose=True,\n        )\n        return prompt + generated_code\n\n    examples = []\n    with open(args.example_path, \"r\") as f:\n        for line in f:\n            examples.append(list(json.loads(line).values()))\n\n    with gr.Blocks() as demo:\n        gr.Markdown(\n            \"\"\"\n            <img src=\"https://raw.githubusercontent.com/THUDM/CodeGeeX/main/resources/logo/codegeex_logo.png\">\n            \"\"\")\n        gr.Markdown(\n            \"\"\"\n            <p align=\"center\">\n                🏠 <a href=\"https://codegeex.cn\" target=\"_blank\">Homepage</a> | 📖 <a href=\"http://keg.cs.tsinghua.edu.cn/codegeex/\" target=\"_blank\">Blog</a> | 🪧 <a href=\"https://codegeex.cn/playground\" target=\"_blank\">DEMO</a> | 🛠 <a href=\"https://marketplace.visualstudio.com/items?itemName=aminer.codegeex\" target=\"_blank\">VS Code</a> or <a href=\"https://plugins.jetbrains.com/plugin/20587-codegeex\" target=\"_blank\">Jetbrains</a> Extensions | 💻 <a href=\"https://github.com/THUDM/CodeGeeX\" target=\"_blank\">Source code</a> | 🤖 <a href=\"https://models.aminer.cn/codegeex/download/request\" target=\"_blank\">Download Model</a>\n            </p>\n            \"\"\")\n        gr.Markdown(\n            \"\"\"\n            We introduce CodeGeeX, a large-scale multilingual code generation model with 13 billion parameters, pre-trained on a large code corpus of more than 20 programming languages. CodeGeeX supports 15+ programming languages for both code generation and translation. CodeGeeX is open source, please refer to our [GitHub](https://github.com/THUDM/CodeGeeX) for more details. This is a minimal-functional DEMO, for other DEMOs like code translation, please visit our [Homepage](https://codegeex.cn). We also offer free [VS Code](https://marketplace.visualstudio.com/items?itemName=aminer.codegeex) or [Jetbrains](https://plugins.jetbrains.com/plugin/20587-codegeex) extensions for full functionality. \n            \"\"\")\n\n        with gr.Row():\n            with gr.Column():\n                prompt = gr.Textbox(lines=13, placeholder='Please enter the description or select an example input below.',label='Input')\n                with gr.Row():\n                    gen = gr.Button(\"Generate\")\n                    clr = gr.Button(\"Clear\")\n\n            outputs = gr.Textbox(lines=15, label='Output')\n\n        gr.Markdown(\n            \"\"\"\n            Generation Parameter\n            \"\"\")\n        with gr.Row():\n            with gr.Column():\n                lang = gr.Radio(\n                    choices=[\"C++\", \"C\", \"C#\", \"Python\", \"Java\", \"HTML\", \"PHP\", \"JavaScript\", \"TypeScript\", \"Go\",\n                             \"Rust\",\n                             \"SQL\", \"Kotlin\", \"R\", \"Fortran\"], value='lang', label='Programming Language',\n                    default=\"Python\")\n            with gr.Column():\n                seed = gr.Slider(maximum=10000, value=8888, step=1, label='Seed')\n                with gr.Row():\n                    out_seq_length = gr.Slider(maximum=1024, value=128, minimum=1, step=1, label='Output Sequence Length')\n                    temperature = gr.Slider(maximum=1, value=0.2, minimum=0, label='Temperature')\n                with gr.Row():\n                    top_k = gr.Slider(maximum=40, value=0, minimum=0, step=1, label='Top K')\n                    top_p = gr.Slider(maximum=1, value=1.0, minimum=0, label='Top P')\n\n        inputs = [prompt, lang, seed, out_seq_length, temperature, top_k, top_p]\n        gen.click(fn=predict, inputs=inputs, outputs=outputs)\n        clr.click(fn=lambda value: gr.update(value=\"\"), inputs=clr, outputs=prompt)\n\n        gr_examples = gr.Examples(examples=examples, inputs=[prompt, lang],\n                                  label=\"Example Inputs (Click to insert an examplet it into the input box)\",\n                                  examples_per_page=20)\n        \n    demo.launch(server_port=6007)\n\nif __name__ == '__main__':\n    with torch.no_grad():\n        main()"
  },
  {
    "path": "requirements.txt",
    "content": "fire>=0.4.0\nipython>=8.4.0\nnumpy>=1.22.0\npandas>=1.3.5\npyzmq>=23.2.1\nregex>=2022.3.15\nsetuptools>=58.0.4\ntransformers>=4.22.0\ntorch>=1.10.0\ntqdm>=4.63.0\ncpm_kernels\ndeepspeed>0.6.1"
  },
  {
    "path": "resources/zh/wechat.md",
    "content": "<div align=\"center\">\n<img src=join_wechat.png width=\"60%\"/>\n\n<p> 扫码关注公众号加入「CodeGeeX交流群」 </p>\n<p> Scan the QR code to join the \"CodeGeeX WeChat Group\" </p>\n</div>\n"
  },
  {
    "path": "scripts/convert_ckpt_parallel.sh",
    "content": "# This script is used to convert checkpoint model parallel partitions.\n\nLOAD_CKPT_PATH=$1  # Path to weights in .pt format.\nSAVE_CKPT_PATH=$2  # Path to save the output MP checkpoints.\nMP_SIZE=$3 # Model parallel size\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\nif [ -z \"$MP_SIZE\" ]; then\n  MP_SIZE=1\nfi\n\n# export CUDA settings\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=0,1\n\n\nCMD=\"python $MAIN_DIR/codegeex/megatron/convert_ckpt_parallel.py \\\n      --load-ckpt-path $LOAD_CKPT_PATH \\\n      --save-ckpt-path $SAVE_CKPT_PATH \\\n      --tokenizer-path $TOKENIZER_PATH \\\n      --target-tensor-model-parallel-size $MP_SIZE \\\n      --num-layers 39 \\\n      --hidden-size 5120 \\\n      --num-attention-heads 40 \\\n      --max-position-embeddings 2048 \\\n      --attention-softmax-in-fp32 \\\n      --fp16 \\\n      --micro-batch-size 1 \\\n      --make-vocab-size-divisible-by 52224 \\\n      --seq-length 2048\"\n\necho \"$CMD\"\neval \"$CMD\""
  },
  {
    "path": "scripts/convert_mindspore_to_megatron.sh",
    "content": "# This script is used to convert mindspore checkpoint to the megatron format.\n\nNPY_CKPT_PATH=$1  # Path to Mindspore exported weights in .npy format.\nSAVE_CKPT_PATH=$2  # Path to save the output .pt checkpoint.\nGPU=$3\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=0\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\n\nCMD=\"python $MAIN_DIR/codegeex/megatron/mindspore_to_megatron.py \\\n      --npy-ckpt-path $NPY_CKPT_PATH \\\n      --save-ckpt-path $SAVE_CKPT_PATH \\\n      --tokenizer-path $TOKENIZER_PATH \\\n      $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\""
  },
  {
    "path": "scripts/evaluate_humaneval_x.py",
    "content": "import argparse\nimport os\nfrom pathlib import Path\nfrom codegeex.benchmark.evaluate_humaneval_x import evaluate_functional_correctness\n#GLOBALS\nINPUT_FILE: str  \nLANGUAGE: str  \nN_WORKERS: int  \nTIMEOUT: int \n\n\nparser = argparse.ArgumentParser(\"Debugging evaluate humaneval_x\")\n# Path to the .jsonl file that contains the generated codes.\nparser.add_argument(\"-s\",\"--samples\", type=str)\n\n# Target programming language, currently support one of [\"python\", \"java\", \"cpp\", \"js\", \"go\"]\nparser.add_argument(\"-l\",\"--language\", default=\"python\", type=str)\n\n# Number of parallel workers.\nparser.add_argument(\"-w\",\"--workers\", default=64, type=int)\n\n# Timeout in seconds.\nparser.add_argument(\"-t\",\"--timeout\", default=5, type=int)\n\nargs = parser.parse_args()\n\nINPUT_FILE = args.samples\nLANGUAGE = args.language  \nN_WORKERS = args.workers  \nTIMEOUT= args.timeout\n\n\n\nSCRIPT_PATH: str = Path(os.path.abspath(__file__))\nprint(SCRIPT_PATH)\nSCRIPT_DIR: str = os.path.dirname(SCRIPT_PATH)\nprint(SCRIPT_DIR)\nMAIN_DIR: str = os.path.dirname(SCRIPT_DIR)\nprint(MAIN_DIR)\n\nDATA_DIR=os.path.join(MAIN_DIR,\"codegeex/benchmark/humaneval-x/\" + LANGUAGE + \"/data/humaneval_\" + LANGUAGE + \".jsonl.gz\")\nprint(DATA_DIR)\n\nTMP_DIR=os.path.join(MAIN_DIR, \"/codegeex/benchmark/humaneval-x/\")\n\n\n#Debugging\nINPUT_FILE='/home/rog0d/Escritorio/CodeGeeX/generations/humaneval_rust_generations.jsonl.gz'\nLANGUAGE='rust'\nDATA_DIR=os.path.join(MAIN_DIR,\"codegeex/benchmark/humaneval-x/\" + LANGUAGE + \"/data/humaneval_\" + LANGUAGE + \".jsonl.gz\")\n\n\"\"\"\ninput_file: str = None,\n        tmp_dir: str = \"./\",\n        n_workers: int = 32,\n        timeout: float = 5.0,\n        problem_file: str = \"../data/humaneval_python.jsonl.gz\",\n        out_dir: str = None,\n        k: List[int] = [1, 10, 100],\n        test_groundtruth: bool = False,\n        example_test: bool = False,\n\n\"\"\"\n\nevaluate_functional_correctness(input_file=INPUT_FILE,\n                                n_workers=N_WORKERS,\n                                tmp_dir=TMP_DIR,\n                                problem_file=DATA_DIR,\n                                timeout=300.0)\n\n\n"
  },
  {
    "path": "scripts/evaluate_humaneval_x.sh",
    "content": "# This script is for evaluating the functional correctness of the generated codes of HumanEval-X.\n\nINPUT_FILE=$1  # Path to the .jsonl file that contains the generated codes.\nLANGUAGE=$2  # Target programming language, currently support one of [\"python\", \"java\", \"cpp\", \"js\", \"go\"]\nN_WORKERS=$3  # Number of parallel workers.\nTIMEOUT=$4  # Timeout in seconds.\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\n\necho \"$INPUT_FILE\"\n\nif [ -z \"$N_WORKERS\" ]\nthen\n    N_WORKERS=64\nfi\n\nif [ -z \"$LANGUAGE\" ]\nthen\n    LANGUAGE=python\nfi\n\nif [ -z \"$TIMEOUT\" ]\nthen\n    TIMEOUT=5\nfi\n\nDATA_DIR=$MAIN_DIR/codegeex/benchmark/humaneval-x/$LANGUAGE/data/humaneval_$LANGUAGE.jsonl.gz\n\nif [ $LANGUAGE = go ]; then\n  export PATH=$PATH:/usr/local/go/bin\nfi\n\nif [ $LANGUAGE = cpp ]; then\n  export PATH=$PATH:/usr/bin/openssl\nfi\n\nCMD=\"python $MAIN_DIR/codegeex/benchmark/humaneval-x/evaluate_humaneval_x.py \\\n    --input_file \"$INPUT_FILE\" \\\n    --n_workers $N_WORKERS \\\n    --tmp_dir $MAIN_DIR/codegeex/benchmark/humaneval-x/ \\\n    --problem_file $DATA_DIR \\\n    --timeout $TIMEOUT\"\n\necho \"$CMD\"\neval \"$CMD\""
  },
  {
    "path": "scripts/finetune_codegeex.sh",
    "content": "SCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\n\n# ====== Environment ======\n# - NCCL & IB\nexport NCCL_DEBUG=info\nexport NCCL_IB_DISABLE=0\nexport NCCL_IB_GID_INDEX=3\n\nHOSTFILE=\"<path to hostfile (with node ip addresses per line)>\"\nMASTER_IP=$(cat $HOSTFILE | head -n 1)\ncat $HOSTFILE | awk '{print $1 \" slots=8\"}' > $SCRIPT_DIR/hostfile\necho \"MASTER_IP=$MASTER_IP\"\n\n# ====== Parameters ======\nDATA_PATH=\"<path with prefix where you put the data (e.g., XXX/data.13b.mmap/data)>\"\nCKPT_PATH=\"<path where you put the checkpoint (e.g., XXX/codegeex_13b.pt)>\"\nDS_CONFIG=ds_config.json\n# - 13b\nTP=1\nPP=1\nNLAYERS=39\nHIDDEN=5120\nNATTN_HEAD=40\nEMBED_VOCAB=52224\nGLOBAL_BATCH=560\nMICRO_BATCH=10\nNTRAIN_ITERS=100000\nEVAL_INT=10\nSAVE_INT=10\nTRIAL_TAG=\"13b-test\"\n# - trial\nTRIAL_NAME=\"pretrain-codegeex\"\n# - zero stage\nZERO_STAGE=2\n# - logging & output\nNOW=$(date +\"%Y%m%d_%H%M%S\")\nOUTPUT_DIR=\"<path-to-output>-$TRIAL_NAME-$TRIAL_TAG\"\nTB_DIR=$OUTPUT_DIR/tb$NOW\nmkdir -p $OUTPUT_DIR\nmkdir -p $TB_DIR\n\n# Deepspeed config\ncat <<EOT > $DS_CONFIG\n{\n  \"train_batch_size\" : $GLOBAL_BATCH,\n  \"train_micro_batch_size_per_gpu\": $MICRO_BATCH,\n  \"steps_per_print\": 5,\n  \"zero_optimization\": {\n    \"stage\": $ZERO_STAGE,\n    \"reduce_bucket_size\": 50000000,\n    \"allgather_bucket_size\": 50000000,\n    \"overlap_comm\": true,\n    \"contiguous_gradients\": false\n  },\n  \"fp16\": {\n    \"enabled\": true,\n    \"loss_scale\": 0,\n    \"loss_scale_window\": 500,\n    \"hysteresis\": 2,\n    \"min_loss_scale\": 1,\n    \"initial_scale_power\": 12\n  },\n  \"wall_clock_breakdown\" : true\n}\nEOT\n\nds_args=\"\"\nds_args=\" --deepspeed ${ds_args}\"\nds_args=\" --no-pipeline-parallel ${ds_args}\"\nds_args=\" --deepspeed_config=$DS_CONFIG ${ds_args}\"\nds_args=\" --zero-stage=$ZERO_STAGE ${ds_args}\"\nds_args=\" --deepspeed-activation-checkpointing ${ds_args}\"\n\necho \"Launching deepspeed\"\ndeepspeed \\\n    --hostfile hostfile \\\n    --master_addr $MASTER_IP \\\n    $MAIN_DIR/codegeex/megatron/tools/pretrain_codegeex.py \\\n    --tensor-model-parallel-size $TP \\\n    --pipeline-model-parallel-size $PP \\\n    --no-pipeline-parallel \\\n    --num-layers $NLAYERS \\\n    --hidden-size $HIDDEN \\\n    --make-vocab-size-divisible-by $EMBED_VOCAB \\\n    --num-attention-heads $NATTN_HEAD \\\n    --seq-length 512 \\\n    --loss-scale 12 \\\n    --max-position-embeddings 2048 \\\n    --micro-batch-size $MICRO_BATCH \\\n    --global-batch-size $GLOBAL_BATCH \\\n    --train-iters $NTRAIN_ITERS \\\n    --lr 1e-6 \\\n    --min-lr 1e-7 \\\n    --lr-decay-iters 100000 \\\n    --lr-decay-style cosine \\\n    --lr-warmup-iters 1000 \\\n    --log-interval 1 \\\n    --eval-iters 10 \\\n    --eval-interval $EVAL_INT \\\n    --data-path $DATA_PATH \\\n    --vocab-file $MAIN_DIR/codegeex/tokenizer/vocab.json \\\n    --merge-file $MAIN_DIR/codegeex/tokenizer/merges.txt \\\n    --save-interval $SAVE_INT \\\n    --save $OUTPUT_DIR \\\n    --load $OUTPUT_DIR \\\n    --load-state $CKPT_PATH \\\n    --split 98,2,0 \\\n    --clip-grad 1.0 \\\n    --weight-decay 0.1 \\\n    --adam-beta1 0.9 \\\n    --adam-beta2 0.95 \\\n    --fp16 \\\n    --ln-fp16 \\\n    --attention-softmax-in-fp32 \\\n    --checkpoint-activations \\\n    --override-lr-scheduler \\\n    --tensorboard-dir $TB_DIR \\\n    $ds_args |& tee ${OUTPUT_DIR}/$NOW.log"
  },
  {
    "path": "scripts/gather_output.sh",
    "content": "# This script is used to gather the distributed outputs of different ranks.\n\nOUTPUT_DIR=$1\nOUTPUT_PREFIX=$2\nIF_REMOVE_RANK_FILES=$3\n\necho \"$OUTPUT_DIR\"\necho \"$OUTPUT_PREFIX\"\n\nif [ -z \"$IF_REMOVE_RANK_FILES\" ]\nthen\n    IF_REMOVE_RANK_FILES=0\nfi\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\n\n\nCMD=\"python $MAIN_DIR/codegeex/benchmark/gather_output.py \\\n        --output_dir $OUTPUT_DIR \\\n        --output_prefix $OUTPUT_PREFIX \\\n        --if_remove_rank_files $IF_REMOVE_RANK_FILES\"\n\necho \"$CMD\"\neval \"$CMD\""
  },
  {
    "path": "scripts/generate_humaneval_x.sh",
    "content": "# This script is used to generate solutions of HumanEval-X.\n\nLANGUAGE=$1  # Target programming language, currently support one of [\"python\", \"java\", \"cpp\", \"js\", \"go\"]\nOUTPUT_PATH=$2  # Output path of the generated programs.\nHOSTLIST=$3  # Provide hostfile if generating distributedly\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# export CUDA settings\nexport CUDA_HOME=/usr/local/cuda-11.1/\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# nccl options\nOPTIONS_NCCL=\"export NCCL_DEBUG=warn; export NCCL_IB_DISABLE=0; export NCCL_IB_GID_INDEX=3\"\nOPTIONS_PATH=\"export PATH=$PATH; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\"\nCWD=$(pwd)\n\n# set master ip for zmq server\nif [ -z \"$HOSTLIST\" ]; then\n  ZMQ_ADDR=$(hostname -i)\n  echo \"$ZMQ_ADDR\" > \"./hostfile\"\n  HOSTLIST=\"./hostfile\"\nelse\n  ZMQ_ADDR=$(cat $HOSTLIST | head -n 1)\nfi\necho \"master_ip: $ZMQ_ADDR\"\n\nNUM_SAMPLES=1\nMICRO_BSZ=1\nWORLD_SIZE=1\nTEMP=0.8\nTOPP=0.95\nSEED=42\nDATASET=humaneval\nTODAY=$(date +%y%m%d)\nCHANNEL_PORT=$(expr $RANDOM + 5000)\nMASTER_PORT=$(expr $RANDOM + 8000)\n\n# save log file\nLOG_DIR=$MAIN_DIR/log\nmkdir -p \"$LOG_DIR\"\nLOG_PATH=\"$LOG_DIR/$TODAY-generation.log\"\n\nif [ -z \"$LANGUAGE\" ]; then\n  LANGUAGE=python\nfi\n\nif [ -z \"$INPUT_PATH\" ]; then\n  INPUT_PATH=$MAIN_DIR/codegeex/benchmark/humaneval-x/$LANGUAGE/data/humaneval_$LANGUAGE.jsonl.gz\nfi\n\nif [ -z \"$OUTPUT_PATH\" ]; then\n  OUTPUT_PATH=$MAIN_DIR/codegeex/benchmark/output/humaneval-x/codegeex/\n  mkdir -p \"$OUTPUT_PATH\"\nfi\n\nJOB_ID=codegeex-ns$NUM_SAMPLES-t$TEMP-topp$TOPP-seed$SEED-$LANGUAGE\n\nRUN_CMD=\"python \\\n  $MAIN_DIR/codegeex/benchmark/humaneval-x/generate_humaneval_x.py \\\n  --hostfile $HOSTLIST \\\n  --channel-ip $ZMQ_ADDR \\\n  --channel-port $CHANNEL_PORT \\\n  --master-port $MASTER_PORT \\\n  --tokenizer-path $TOKENIZER_PATH \\\n  --load-deepspeed \\\n  --temperature $TEMP \\\n  --top-p $TOPP \\\n  --out-seq-length 1024 \\\n  --micro-batch-size $MICRO_BSZ \\\n  --samples-per-problem $NUM_SAMPLES \\\n  --language-type $LANGUAGE \\\n  --dataset $DATASET \\\n  --input-path $INPUT_PATH \\\n  --output-prefix $OUTPUT_PATH/$JOB_ID \\\n  --gen-node-world-size $WORLD_SIZE \\\n  --seed $SEED \\\n  $MODEL_ARGS\"\n\nRUN_CMD=\"$OPTIONS_NCCL; $OPTIONS_PATH; $RUN_CMD\"\nRUN_CMD=\"cd $CWD; $RUN_CMD\"\n\nif (( WORLD_SIZE != 1 )); then\n  RUN_CMD=\"pdsh -R ssh -w ^$HOSTLIST \\\"$RUN_CMD\\\"\"\nfi\n\necho \"$RUN_CMD\"\necho \"Writing log to $LOG_PATH\"\neval \"$RUN_CMD\" > \"$LOG_PATH\"\nbash $MAIN_DIR/scripts/gather_output.sh $OUTPUT_PATH $JOB_ID 1\n"
  },
  {
    "path": "scripts/pretrain_codegeex.sh",
    "content": "SCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\n\n# ====== Environment ======\n# - NCCL & IB\nexport NCCL_DEBUG=info\nexport NCCL_IB_DISABLE=0\nexport NCCL_IB_GID_INDEX=3\n\nHOSTFILE=\"<path to hostfile (with node ip addresses per line)>\"\nMASTER_IP=$(cat $HOSTFILE | head -n 1)\ncat $HOSTFILE | awk '{print $1 \" slots=8\"}' > $SCRIPT_DIR/hostfile\necho \"MASTER_IP=$MASTER_IP\"\n\n# ====== Parameters ======\nDATA_PATH=\"<path with prefix where you put the data (e.g., XXX/data.13b.mmap/data)>\"\nCKPT_PATH=\"<path where you put the checkpoint (e.g., XXX/codegeex_13b.pt)>\"\nDS_CONFIG=ds_config.json\n# - 13b\nTP=1\nPP=1\nNLAYERS=39\nHIDDEN=5120\nNATTN_HEAD=40\nEMBED_VOCAB=52224\nGLOBAL_BATCH=560\nMICRO_BATCH=10\nNTRAIN_ITERS=100000\nEVAL_INT=10\nSAVE_INT=10\nTRIAL_TAG=\"13b-test\"\n# - trial\nTRIAL_NAME=\"pretrain-codegeex\"\n# - zero stage\nZERO_STAGE=2\n# - logging & output\nNOW=$(date +\"%Y%m%d_%H%M%S\")\nOUTPUT_DIR=\"<path-to-output>-$TRIAL_NAME-$TRIAL_TAG\"\nTB_DIR=$OUTPUT_DIR/tb$NOW\nmkdir -p $OUTPUT_DIR\nmkdir -p $TB_DIR\n\n# Deepspeed config\ncat <<EOT > $DS_CONFIG\n{\n  \"train_batch_size\" : $GLOBAL_BATCH,\n  \"train_micro_batch_size_per_gpu\": $MICRO_BATCH,\n  \"steps_per_print\": 5,\n  \"zero_optimization\": {\n    \"stage\": $ZERO_STAGE,\n    \"reduce_bucket_size\": 50000000,\n    \"allgather_bucket_size\": 50000000,\n    \"overlap_comm\": true,\n    \"contiguous_gradients\": false\n  },\n  \"fp16\": {\n    \"enabled\": true,\n    \"loss_scale\": 0,\n    \"loss_scale_window\": 500,\n    \"hysteresis\": 2,\n    \"min_loss_scale\": 1,\n    \"initial_scale_power\": 12\n  },\n  \"wall_clock_breakdown\" : true\n}\nEOT\n\nds_args=\"\"\nds_args=\" --deepspeed ${ds_args}\"\nds_args=\" --no-pipeline-parallel ${ds_args}\"\nds_args=\" --deepspeed_config=$DS_CONFIG ${ds_args}\"\nds_args=\" --zero-stage=$ZERO_STAGE ${ds_args}\"\nds_args=\" --deepspeed-activation-checkpointing ${ds_args}\"\n\necho \"Launching deepspeed\"\ndeepspeed \\\n    --hostfile hostfile \\\n    --master_addr $MASTER_IP \\\n    $MAIN_DIR/codegeex/megatron/tools/pretrain_codegeex.py \\\n    --tensor-model-parallel-size $TP \\\n    --pipeline-model-parallel-size $PP \\\n    --no-pipeline-parallel \\\n    --num-layers $NLAYERS \\\n    --hidden-size $HIDDEN \\\n    --make-vocab-size-divisible-by $EMBED_VOCAB \\\n    --num-attention-heads $NATTN_HEAD \\\n    --seq-length 512 \\\n    --loss-scale 12 \\\n    --max-position-embeddings 2048 \\\n    --micro-batch-size $MICRO_BATCH \\\n    --global-batch-size $GLOBAL_BATCH \\\n    --train-iters $NTRAIN_ITERS \\\n    --lr 2e-4 \\\n    --min-lr 1e-7 \\\n    --lr-decay-iters 100000 \\\n    --lr-decay-style cosine \\\n    --lr-warmup-iters 1500 \\\n    --log-interval 1 \\\n    --eval-iters 10 \\\n    --eval-interval $EVAL_INT \\\n    --data-path $DATA_PATH \\\n    --vocab-file $MAIN_DIR/codegeex/tokenizer/vocab.json \\\n    --merge-file $MAIN_DIR/codegeex/tokenizer/merges.txt \\\n    --save-interval $SAVE_INT \\\n    --save $OUTPUT_DIR \\\n    --load $OUTPUT_DIR \\\n    --load-state $CKPT_PATH \\\n    --split 98,2,0 \\\n    --clip-grad 1.0 \\\n    --weight-decay 0.1 \\\n    --adam-beta1 0.9 \\\n    --adam-beta2 0.95 \\\n    --fp16 \\\n    --ln-fp16 \\\n    --attention-softmax-in-fp32 \\\n    --checkpoint-activations \\\n    --override-lr-scheduler \\\n    --tensorboard-dir $TB_DIR \\\n    $ds_args |& tee ${OUTPUT_DIR}/$NOW.log\n\n"
  },
  {
    "path": "scripts/process_pretrain_dataset.sh",
    "content": "# Process dataset for CodeGeeX pretraining\n\nDATASET_PATH=$1\nOUTPUT_PATH=$2\nLANGUAGE=$3\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\nif [ -z \"$LANGUAGE\" ]; then\n  LANGUAGE=python\nfi\n\nCMD=\"python $MAIN_DIR/codegeex/data/process_pretrain_dataset.py \\\n        --dataset_path $DATASET_PATH \\\n        --tokenizer_path $TOKENIZER_PATH \\\n        --output_prefix $OUTPUT_PATH \\\n        --language $LANGUAGE \\\n        --mode pretrain \\\n        --seq_len 2048\"\n\necho \"$CMD\"\neval \"$CMD\""
  },
  {
    "path": "scripts/test_inference.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nGPU=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=0\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"python $MAIN_DIR/tests/test_inference.py \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.8 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --greedy \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/test_inference_oneflow.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nGPU=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=0\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"python $MAIN_DIR/tests/test_inference_oneflow.py \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.8 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --greedy \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/test_inference_oneflow_quantized.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nGPU=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=1\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"python $MAIN_DIR/tests/test_inference_oneflow.py \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.2 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --quantize \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/test_inference_paddle.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nGPU=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b_paddle.sh\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=0\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"python $MAIN_DIR/tests/test_inference_paddle.py \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.8 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --greedy \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/test_inference_parallel.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nMP_SIZE=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\nif [ -z \"$MP_SIZE\" ]; then\n  MP_SIZE=1\nfi\n\nif [ \"$MP_SIZE\" -eq 1 ]; then\n  source \"$MAIN_DIR/configs/codegeex_13b.sh\"\n  echo \"Load config from $MAIN_DIR/configs/codegeex_13b.sh\"\nelse\n  source \"$MAIN_DIR/configs/codegeex_13b_parallel.sh\"\n  echo \"Load config from $MAIN_DIR/configs/codegeex_13b_parallel.sh\"\nfi\n\n# export CUDA settings\nexport CUDA_HOME=/usr/local/cuda-11.1/\n# export CUDA_VISIBLE_DEVICES=0,1\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"torchrun --nproc_per_node $MP_SIZE $MAIN_DIR/tests/test_inference_megatron.py \\\n        --tensor-model-parallel-size $MP_SIZE \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.8 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --greedy \\\n        --use-cpu-initialization \\\n        --ln-fp16 \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/test_inference_quantized.sh",
    "content": "# This script is used to test the inference of CodeGeeX.\n\nGPU=$1\nPROMPT_FILE=$2\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# export CUDA settings\nif [ -z \"$GPU\" ]; then\n  GPU=0\nfi\n\nexport CUDA_HOME=/usr/local/cuda-11.1/\nexport CUDA_VISIBLE_DEVICES=$GPU\n\nif [ -z \"$PROMPT_FILE\" ]; then\n  PROMPT_FILE=$MAIN_DIR/tests/test_prompt.txt\nfi\n\n# remove --greedy if using sampling\nCMD=\"python $MAIN_DIR/tests/test_inference.py \\\n        --prompt-file $PROMPT_FILE \\\n        --tokenizer-path $TOKENIZER_PATH \\\n        --micro-batch-size 1 \\\n        --out-seq-length 1024 \\\n        --temperature 0.2 \\\n        --top-p 0.95 \\\n        --top-k 0 \\\n        --quantize \\\n        $MODEL_ARGS\"\n\necho \"$CMD\"\neval \"$CMD\"\n"
  },
  {
    "path": "scripts/translate_humaneval_x.sh",
    "content": "# This script is used to translate solutions of HumanEval-X.\n\nLANG_SRC_TYPE=$1  # Source programming language, currently support one of [\"python\", \"java\", \"cpp\", \"js\", \"go\"]\nLANG_TGT_TYPE=$2    # Target programming language, currently support one of [\"python\", \"java\", \"cpp\", \"js\", \"go\"]\nOUTPUT_PATH=$3 # Output path of the generated programs.\nHOSTLIST=$4    # Provide hostfile if generating distributedly\n\nSCRIPT_PATH=$(realpath \"$0\")\nSCRIPT_DIR=$(dirname \"$SCRIPT_PATH\")\nMAIN_DIR=$(dirname \"$SCRIPT_DIR\")\nTOKENIZER_PATH=\"$MAIN_DIR/codegeex/tokenizer/\"\n\n# export CUDA settings\nexport CUDA_HOME=/usr/local/cuda-11.1/\n\n# import model configuration\nsource \"$MAIN_DIR/configs/codegeex_13b.sh\"\n\n# nccl options\nOPTIONS_NCCL=\"export NCCL_DEBUG=warn; export NCCL_IB_DISABLE=0; export NCCL_IB_GID_INDEX=3\"\nOPTIONS_PATH=\"export PATH=$PATH; export LD_LIBRARY_PATH=$LD_LIBRARY_PATH\"\nCWD=$(pwd)\n\n# set master ip for zmq server\nif [ -z \"$HOSTLIST\" ]; then\n  ZMQ_ADDR=$(hostname -i)\n  echo \"$ZMQ_ADDR\" > \"./hostfile\"\n  HOSTLIST=\"./hostfile\"\nelse\n  ZMQ_ADDR=$(cat $HOSTLIST | head -n 1)\nfi\necho \"master_ip: $ZMQ_ADDR\"\n\nNUM_SAMPLES=1\nMICRO_BSZ=1\nWORLD_SIZE=1\nTEMP=0.8\nTOPP=0.95\nSEED=42\nDATASET=humaneval\nTODAY=$(date +%y%m%d)\nCHANNEL_PORT=$(expr $RANDOM + 5000)\nMASTER_PORT=$(expr $RANDOM + 8000)\n\n# save log file\nLOG_DIR=$MAIN_DIR/log\nmkdir -p \"$LOG_DIR\"\nLOG_PATH=\"$LOG_DIR/$TODAY-translation.log\"\n\nif [ -z \"$LANG_SRC_TYPE\" ]\nthen\n    LANG_SRC_TYPE=python\nfi\n\nif [ -z \"$LANG_TGT_TYPE\" ]\nthen\n    LANG_TGT_TYPE=java\nfi\n\nif [ -z \"$INPUT_SRC_PATH\" ]\nthen\n    INPUT_SRC_PATH=$MAIN_DIR/codegeex/benchmark/humaneval-x/$LANG_SRC_TYPE/data/humaneval_$LANG_SRC_TYPE.jsonl.gz\nfi\n\nif [ -z \"$INPUT_TGT_PATH\" ]\nthen\n    INPUT_TGT_PATH=$MAIN_DIR/codegeex/benchmark/humaneval-x/$LANG_TGT_TYPE/data/humaneval_$LANG_TGT_TYPE.jsonl.gz\nfi\n\nif [ -z \"$OUTPUT_PATH\" ]; then\n  OUTPUT_PATH=$MAIN_DIR/codegeex/benchmark/output/humaneval-x/codegeex/\n  mkdir -p \"$OUTPUT_PATH\"\nfi\n\nJOB_ID=codegeex-ns$NUM_SAMPLES-t$TEMP-topp$TOPP-seed$SEED-$LANGUAGE\n\nRUN_CMD=\"python \\\n  $MAIN_DIR/codegeex/benchmark/humaneval-x/translate_humaneval_x.py \\\n  --hostfile $HOSTLIST \\\n  --channel-ip $ZMQ_ADDR \\\n  --channel-port $CHANNEL_PORT \\\n  --master-port $MASTER_PORT \\\n  --tokenizer-path $TOKENIZER_PATH \\\n  --load-deepspeed \\\n  --temperature $TEMP \\\n  --top-p $TOPP \\\n  --out-seq-length 1024 \\\n  --micro-batch-size $MICRO_BSZ \\\n  --samples-per-problem $NUM_SAMPLES \\\n  --language-src-type $LANG_SRC_TYPE \\\n  --language-tgt-type $LANG_TGT_TYPE \\\n  --src-path $INPUT_SRC_PATH \\\n  --tgt-path $INPUT_TGT_PATH \\\n  --dataset $DATASET \\\n  --output-prefix $OUTPUT_PATH/$JOB_ID \\\n  --gen-node-world-size $WORLD_SIZE \\\n  --seed $SEED \\\n  $MODEL_ARGS\"\n\nRUN_CMD=\"$OPTIONS_NCCL; $OPTIONS_PATH; $RUN_CMD\"\nRUN_CMD=\"cd $CWD; $RUN_CMD\"\n\nif (( WORLD_SIZE != 1 )); then\n  RUN_CMD=\"pdsh -R ssh -w ^$HOSTLIST \\\"$RUN_CMD\\\"\"\nfi\n\necho \"$RUN_CMD\"\necho \"Writing log to $LOG_PATH\"\neval \"$RUN_CMD\" > \"$LOG_PATH\"\nbash $MAIN_DIR/scripts/gather_output.sh $OUTPUT_PATH $JOB_ID 1\n"
  },
  {
    "path": "setup.py",
    "content": "from setuptools import setup, find_packages\n\nsetup(\n    name=\"codegeex\",\n    py_modules=[\"codegeex\"],\n    version=\"1.0\",\n    description=\"CodeGeeX: A Open Multilingual Code Generation Model.\",\n    author=\"Qinkai Zheng\",\n    packages=find_packages(),\n    install_requires=[\n        \"fire>=0.4.0\",\n        \"ipython>=8.4.0\",\n        \"numpy>=1.22.0\",\n        \"pandas>=1.3.5\",\n        \"pyzmq>=23.2.1\",\n        \"regex>=2022.3.15\",\n        \"setuptools>=58.0.4\",\n        \"transformers>=4.22.0\",\n        \"tokenizers>=0.11.0\",\n        \"torch>=1.10.0\",\n        \"tqdm>=4.63.0\",\n        \"cpm_kernels\",\n        \"deepspeed>0.6.1\",\n    ],\n    entry_points={}\n)\n"
  },
  {
    "path": "tests/test_inference.py",
    "content": "import time\nimport torch\nimport argparse\nimport numpy as np\n\nimport codegeex\nfrom codegeex.torch import CodeGeeXModel\nfrom codegeex.tokenizer import CodeGeeXTokenizer\nfrom codegeex.quantization import quantize\n\n\ndef model_provider(args):\n    \"\"\"Build the model.\"\"\"\n\n    model = CodeGeeXModel(\n        args.hidden_size,\n        args.num_layers,\n        args.num_attention_heads,\n        args.padded_vocab_size,\n        args.max_position_embeddings\n    )\n    \n    return model\n\n\ndef add_code_generation_args(parser):\n    group = parser.add_argument_group(title=\"code generation\")\n    group.add_argument(\n        \"--num-layers\",\n        type=int,\n        default=39,\n    )\n    group.add_argument(\n        \"--hidden-size\",\n        type=int,\n        default=5120,\n    )\n    group.add_argument(\n        \"--num-attention-heads\",\n        type=int,\n        default=40,\n    )\n    group.add_argument(\n        \"--padded-vocab-size\",\n        type=int,\n        default=52224,\n    )\n    group.add_argument(\n        \"--max-position-embeddings\",\n        type=int,\n        default=2048,\n    )\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=2048,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--prompt-file\",\n        type=str,\n        default=\"./test_prompt.txt\",\n    )\n    group.add_argument(\n        \"--tokenizer-path\",\n        type=str,\n        default=\"./tokenizer\",\n    )\n    group.add_argument(\n        \"--load\",\n        type=str,\n    )\n    group.add_argument(\n        \"--state-dict-path\",\n        type=str,\n    )\n    group.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        \"--interative\",\n        action=\"store_true\",\n    )\n    \n    return parser\n\n    \ndef main():\n    parser = argparse.ArgumentParser()\n    parser = add_code_generation_args(parser)\n    args, _ = parser.parse_known_args()\n    \n    print(\"Loading tokenizer ...\")\n    tokenizer = CodeGeeXTokenizer(\n        tokenizer_path=args.tokenizer_path, \n        mode=\"codegeex-13b\")\n\n    print(\"Loading state dict ...\")\n    state_dict = torch.load(args.load, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider(args)\n    model.load_state_dict(state_dict)\n    model.eval()\n    model.half()\n    if args.quantize:\n        model = quantize(model, weight_bit_width=8, backend=\"torch\")\n    model.cuda()\n    torch.cuda.synchronize()\n    \n    with open(args.prompt_file, \"r\") as f:\n        prompt = f.readlines()\n        prompt = \"\".join(prompt)\n    \n    out_seq_lengths = [args.out_seq_length]\n    for out_seq_length in out_seq_lengths:        \n        print(f\"Generating with out_seq_len {out_seq_length}...\")\n        while True:\n            print(\"\\nPlease Input Query (Ctrl-D to save multiple lines, 'stop' to exit) >>> \")\n            prompts = []\n            while True:\n                try:\n                    line = input()\n                except EOFError:\n                    break\n                prompts.append(line)\n            prompt = \"\\n\".join(prompts)\n            prompt = prompt.strip()\n            if not prompt:\n                print('Query should not be empty!')\n                continue\n            if prompt == \"stop\":\n                return \n            try:\n                t0 = time.perf_counter()\n                generated_code = codegeex.generate(\n                    model,\n                    tokenizer,\n                    prompt,\n                    out_seq_length=out_seq_length,\n                    seq_length=args.max_position_embeddings,\n                    top_k=args.top_k,\n                    top_p=args.top_p,\n                    temperature=args.temperature,\n                    micro_batch_size=args.micro_batch_size,\n                    backend=\"megatron\",\n                    verbose=True,\n                )\n                t1 = time.perf_counter()\n                print(\"Total generation time:\", t1 - t0)\n            except (ValueError, FileNotFoundError) as e:\n                print(e)\n                continue\n            \n    print(\"Generation finished.\")\n\n\nif __name__ == \"__main__\":\n    main()"
  },
  {
    "path": "tests/test_inference_megatron.py",
    "content": "import copy\nimport time\nimport torch\nimport numpy as np\n\nfrom codegeex.megatron import get_tokenizer, get_args, print_rank_0\nfrom codegeex.megatron.initialize import initialize_megatron\nfrom codegeex.megatron.model import CodeGeeXModel\nfrom codegeex.megatron.code_generation_utils import get_token_stream\nfrom codegeex.quantization import quantize\nfrom codegeex.megatron.training import get_model\nfrom codegeex.megatron.checkpointing import load_checkpoint\n\ntorch.set_printoptions(precision=8)\n\n\ndef set_random_seed(seed):\n    np.random.seed(seed)\n    torch.manual_seed(seed)\n    torch.cuda.manual_seed_all(seed)\n\n    torch.backends.cudnn.deterministic = True\n    torch.backends.cudnn.benchmark = False\n\n\ndef model_provider(pre_process=True, post_process=True):\n    \"\"\"Build the model.\"\"\"\n    \n    print_rank_0(\"Building CodeGeeX model ...\")\n    model = CodeGeeXModel(num_tokentypes=0,\n                          parallel_output=False)\n\n    return model\n\n\ndef add_code_generation_args(parser):\n    \"\"\"Code generation arguments.\"\"\"\n    group = parser.add_argument_group(title=\"code generation\")\n\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=2048,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--recompute\",\n        action=\"store_true\",\n        help=\"During generation recompute all attention \"\n             \"instead of using previously computed keys/values.\",\n    )\n    group.add_argument(\n        \"--ws-encoding-start-id\",\n        type=int,\n        default=10,\n        help=\"Start id for whitespace encoding\",\n    )\n    group.add_argument(\n        \"--ws-encoding-length\",\n        type=int,\n        default=10,\n        help=\"Length of whitespace encoding\",\n    )\n    group.add_argument(\n        \"--n-generation\",\n        type=int,\n        default=10,\n    )\n    group.add_argument(\n        \"--eos-id\",\n        type=int,\n        default=50256,\n    )\n    group.add_argument(\n        \"--prompt-file\",\n        type=str,\n        default=\"./test_prompt.txt\",\n    )\n    group.add_argument(\n        \"--perf-file\",\n        type=str,\n        default=\"./perf_out.txt\",\n    )\n    group.add_argument(\n        \"--perf-trace\",\n        type=str,\n        default=\"./perf_out.txt\",\n    )\n    group.add_argument(\n        \"--use-torch-profile\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        \"--ln-fp32\",\n        action=\"store_true\",\n    )\n    group.add_argument(\n        '--bad-ids',\n        nargs=\"*\",\n        type=int,\n        default=None,\n        help='Identify the type of programming language to generate',\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n\n    return parser\n\n\ndef main():\n    initialize_megatron(\n        extra_args_provider=add_code_generation_args,\n        args_defaults={\n            'no_load_rng': True,\n            'no_load_optim': True,\n        }\n    )\n\n    args = get_args()\n    set_random_seed(args.seed)\n\n    print_rank_0(\"Loading tokenizer ...\")\n    tokenizer = get_tokenizer()\n\n    print_rank_0(\"Loading state dict ...\")\n\n    model = get_model(model_provider)\n    if args.load is not None:\n        _ = load_checkpoint(model, None, None)\n    \n    assert len(model) == 1, \"Above condition should have caught this\"\n    \n    model = model[0]\n    model.eval()\n    if args.fp16 and args.ln_fp16:\n        model.half()\n    if args.quantize:\n        model = quantize(model, weight_bit_width=8, backend=\"megatron\")\n\n    with open(args.prompt_file, \"r\") as f:\n        prompt = f.readlines()\n        prompt = \"\".join(prompt)\n    \n    times = {}\n    out_seq_lengths = [args.out_seq_length]\n    micro_batch_size = args.micro_batch_size\n    for out_seq_length in out_seq_lengths:        \n        print_rank_0(f\"Generating with out_seq_len {out_seq_length}...\")\n        \n        times[out_seq_length] = []\n        for prompt in [prompt] * args.n_generation:\n            t0 = time.perf_counter()\n            tokens = tokenizer.tokenize(prompt)\n            print_rank_0(tokens)\n            print_rank_0(\"Current prompt:\")\n            print_rank_0(prompt)\n            n_token_prompt = len(tokens)\n            print_rank_0(f\"N_token_prompt:{n_token_prompt}\")\n            token_stream = get_token_stream(\n                model,\n                [copy.deepcopy(tokens) for _ in range(micro_batch_size)],\n                micro_batch_size=micro_batch_size,\n                topk=args.top_k,\n                topp=args.top_p,\n                temperature=args.temperature,\n            )\n            is_finished = [False for _ in range(micro_batch_size)]\n            for i, generated in enumerate(token_stream):\n                generated_tokens = generated[0]\n                for j in range(micro_batch_size):\n                    if is_finished[j]:\n                        continue\n                    if generated_tokens[j].cpu().numpy()[-1] == tokenizer.eod or len(\n                            generated_tokens[j]) >= out_seq_length:\n                        is_finished[j] = True\n                        generated_tokens_ = generated_tokens[j].cpu().numpy().tolist()\n                        generated_code = tokenizer.detokenize(generated_tokens_[n_token_prompt:])\n                        t1 = time.perf_counter()\n                        print_rank_0(f\"Total generation time: {t1 - t0}, # Tokens: {len(generated_tokens_) - n_token_prompt}\")\n                        print_rank_0(f\"{(t1 - t0) / (len(generated_tokens_) - n_token_prompt)}s/token\")\n                        times[out_seq_length].append(t1 - t0)\n                        print_rank_0(\"================================= Generated code:\")\n                        print_rank_0(generated_code)\n                        t0 = time.perf_counter()\n                    \n                    if all(is_finished):\n                        break\n\n    print_rank_0(times)\n    for out_seq_length in times.keys():\n        print_rank_0(f\"{out_seq_length}, {np.mean(times[out_seq_length])}\")\n        \n    print_rank_0(\"Generation finished.\")\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "tests/test_inference_oneflow.py",
    "content": "\nimport os\nimport copy\nimport time\nimport oneflow as torch\nimport random\nimport argparse\nimport numpy as np\n\nfrom codegeex.oneflow.inference import get_token_stream\nfrom codegeex.oneflow import CodeGeeXModel\nfrom codegeex.tokenizer import CodeGeeXTokenizer\nfrom codegeex.quantization import quantize_oneflow\nos.environ[\"ONEFLOW_KERNEL_ENABLE_FUSED_LINEAR\"] = \"1\"\nos.environ[\"ONEFLOW_LINEAR_EMBEDDING_SKIP_INIT\"] = \"1\"\n\ndef model_provider(args):\n    \"\"\"Build the model.\"\"\"\n\n    model = CodeGeeXModel(\n        args.hidden_size,\n        args.num_layers,\n        args.num_attention_heads,\n        args.padded_vocab_size,\n        args.max_position_embeddings\n    )\n    \n    return model\n\n\ndef add_code_generation_args(parser):\n    group = parser.add_argument_group(title=\"code generation\")\n    group.add_argument(\n        \"--num-layers\",\n        type=int,\n        default=39,\n    )\n    group.add_argument(\n        \"--hidden-size\",\n        type=int,\n        default=5120,\n    )\n    group.add_argument(\n        \"--num-attention-heads\",\n        type=int,\n        default=40,\n    )\n    group.add_argument(\n        \"--padded-vocab-size\",\n        type=int,\n        default=52224,\n    )\n    group.add_argument(\n        \"--max-position-embeddings\",\n        type=int,\n        default=2048,\n    )\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=2048,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--prompt-file\",\n        type=str,\n        default=\"./test_prompt.txt\",\n    )\n    group.add_argument(\n        \"--tokenizer-path\",\n        type=str,\n        default=\"./tokenizer\",\n    )\n    group.add_argument(\n        \"--load\",\n        type=str,\n    )\n    group.add_argument(\n        \"--state-dict-path\",\n        type=str,\n    )\n    group.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n    \n    return parser\n\n    \ndef main():\n    parser = argparse.ArgumentParser()\n    parser = add_code_generation_args(parser)\n    args, _ = parser.parse_known_args()\n    \n    print(\"Loading tokenizer ...\")\n    tokenizer = CodeGeeXTokenizer(\n        tokenizer_path=args.tokenizer_path, \n        mode=\"codegeex-13b\")\n\n    print(\"Loading state dict ...\")\n    state_dict = torch.load(args.load, map_location=\"cpu\")\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider(args)\n    model.load_state_dict(state_dict)\n    model.eval()\n    model.half()\n    if args.quantize:\n        model = quantize_oneflow(model, weight_bit_width=8)\n    model.cuda()\n    torch.cuda.synchronize()\n    with open(args.prompt_file, \"r\") as f:\n        prompt = f.readlines()\n        prompt = \"\".join(prompt)\n    \n    times = {}\n    out_seq_lengths = [args.out_seq_length]\n    micro_batch_size = args.micro_batch_size\n    seq_length = args.max_position_embeddings\n    for out_seq_length in out_seq_lengths:        \n        print(f\"Generating with out_seq_len {out_seq_length}...\")\n        \n        times[out_seq_length] = []\n        for prompt in [prompt]:\n            t0 = time.perf_counter()\n            tokens = tokenizer.encode_code(prompt)\n            print(tokens)\n            print(\"Current prompt:\")\n            print(prompt)\n            n_token_prompt = len(tokens)\n            print(\"N_token_prompt:\", n_token_prompt)\n            token_stream = get_token_stream(\n                model,\n                tokenizer,\n                seq_length,\n                out_seq_length,\n                [copy.deepcopy(tokens) for _ in range(micro_batch_size)],\n                micro_batch_size=micro_batch_size,\n                topk=args.top_k,\n                topp=args.top_p,\n                temperature=args.temperature,\n                greedy=args.greedy,\n            )\n            is_finished = [False for _ in range(micro_batch_size)]\n            for i, generated in enumerate(token_stream):\n                generated_tokens = generated[0]\n                for j in range(micro_batch_size):\n                    if is_finished[j]:\n                        continue\n                    generated_token_numpy = generated_tokens[j].numpy()\n                    if generated_token_numpy[-1] == tokenizer.eos_token_id or len(\n                            generated_tokens[j]) >= out_seq_length:\n                        is_finished[j] = True\n                        generated_tokens_ = generated_token_numpy.tolist()\n                        generated_code = tokenizer.decode_code(generated_tokens_[n_token_prompt:])\n                        generated_code = \"\".join(generated_code)\n                        t1 = time.perf_counter()\n                        print(\"Total generation time:\", t1 - t0, \"# Tokens:\", len(generated_tokens_) - n_token_prompt)\n                        print(f\"{(t1 - t0) / (len(generated_tokens_) - n_token_prompt)}s/token\")\n                        times[out_seq_length].append(t1 - t0)\n                        print(\"================================= Generated code:\")\n                        print(generated_code)\n                        \n                    if all(is_finished):\n                        break\n                    \n    print(times)\n    for out_seq_length in times.keys():\n        print(out_seq_length, np.mean(times[out_seq_length]))\n        \n    print(\"Generation finished.\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "tests/test_inference_paddle.py",
    "content": "\nimport os\nimport copy\nimport time\nimport paddle\nimport random\nimport argparse\nimport numpy as np\n\nfrom codegeex.paddle.inference import get_token_stream\nfrom codegeex.paddle import CodeGeeXModel\nfrom codegeex.tokenizer import CodeGeeXTokenizer\n\n\ndef model_provider(args):\n    \"\"\"Build the model.\"\"\"\n\n    old_dtype = paddle.get_default_dtype()\n    paddle.set_default_dtype(\"float16\")\n    model = CodeGeeXModel(\n        args.hidden_size,\n        args.num_layers,\n        args.num_attention_heads,\n        args.padded_vocab_size,\n        args.max_position_embeddings\n    )\n    model.language_model.embedding.word_embeddings.to(dtype=\"float32\")\n    model.language_model.embedding.position_embeddings.to(dtype=\"float32\")\n    model.language_model.topQueryEmbedding.top_query_embeddings.to(dtype=\"float32\")\n    for i in model.language_model.transformer.layers:\n        i.input_layernorm.to(dtype=\"float32\")\n        i.post_attention_layernorm.to(dtype=\"float32\")\n    model.language_model.transformer.topQueryLayer.input_layernorm.to(dtype=\"float32\")\n    model.language_model.transformer.topQueryLayer.post_attention_layernorm.to(dtype=\"float32\")\n    model.language_model.transformer.final_layernorm.to(dtype=\"float32\")\n    paddle.set_default_dtype(old_dtype)\n    \n    return model\n\n\ndef add_code_generation_args(parser):\n    group = parser.add_argument_group(title=\"code generation\")\n    group.add_argument(\n        \"--num-layers\",\n        type=int,\n        default=39,\n    )\n    group.add_argument(\n        \"--hidden-size\",\n        type=int,\n        default=5120,\n    )\n    group.add_argument(\n        \"--num-attention-heads\",\n        type=int,\n        default=40,\n    )\n    group.add_argument(\n        \"--padded-vocab-size\",\n        type=int,\n        default=52224,\n    )\n    group.add_argument(\n        \"--max-position-embeddings\",\n        type=int,\n        default=2048,\n    )\n    group.add_argument(\n        \"--temperature\",\n        type=float,\n        default=1.0,\n        help=\"Sampling temperature.\",\n    )\n    group.add_argument(\n        \"--greedy\",\n        action=\"store_true\",\n        default=False,\n        help=\"Use greedy sampling.\",\n    )\n    group.add_argument(\n        \"--top-p\",\n        type=float,\n        default=0.0,\n        help=\"Top p sampling.\",\n    )\n    group.add_argument(\n        \"--top-k\",\n        type=int,\n        default=0,\n        help=\"Top k sampling.\",\n    )\n    group.add_argument(\n        \"--out-seq-length\",\n        type=int,\n        default=2048,\n        help=\"Size of the output generated text.\",\n    )\n    group.add_argument(\n        \"--prompt-file\",\n        type=str,\n        default=\"./test_prompt.txt\",\n    )\n    group.add_argument(\n        \"--tokenizer-path\",\n        type=str,\n        default=\"./tokenizer\",\n    )\n    group.add_argument(\n        \"--load\",\n        type=str,\n    )\n    group.add_argument(\n        \"--state-dict-path\",\n        type=str,\n    )\n    group.add_argument(\n        \"--micro-batch-size\",\n        type=int,\n        default=1,\n    )\n    group.add_argument(\n        \"--quantize\",\n        action=\"store_true\",\n    )\n    \n    return parser\n\n    \ndef main():\n    parser = argparse.ArgumentParser()\n    parser = add_code_generation_args(parser)\n    args, _ = parser.parse_known_args()\n    \n    print(\"Loading tokenizer ...\")\n    tokenizer = CodeGeeXTokenizer(\n        tokenizer_path=args.tokenizer_path, \n        mode=\"codegeex-13b\")\n\n    print(\"Loading state dict ...\")\n    state_dict = paddle.load(args.load)\n    state_dict = state_dict[\"module\"]\n\n    print(\"Building CodeGeeX model ...\")\n    model = model_provider(args)\n    model.set_state_dict(state_dict)\n    model.eval()\n    model.to(dtype=\"float16\")\n    if args.quantize:\n        raise NotImplementedError(\"quantize\")\n    \n    with open(args.prompt_file, \"r\") as f:\n        prompt = f.readlines()\n        prompt = \"\".join(prompt)\n    \n    times = {}\n    out_seq_lengths = [args.out_seq_length]\n    micro_batch_size = args.micro_batch_size\n    seq_length = args.max_position_embeddings\n    for out_seq_length in out_seq_lengths:        \n        print(f\"Generating with out_seq_len {out_seq_length}...\")\n        \n        times[out_seq_length] = []\n        for prompt in [prompt]:\n            t0 = time.perf_counter()\n            tokens = tokenizer.encode_code(prompt)\n            print(tokens)\n            print(\"Current prompt:\")\n            print(prompt)\n            n_token_prompt = len(tokens)\n            print(\"N_token_prompt:\", n_token_prompt)\n            token_stream = get_token_stream(\n                model,\n                tokenizer,\n                seq_length,\n                out_seq_length,\n                [copy.deepcopy(tokens) for _ in range(micro_batch_size)],\n                micro_batch_size=micro_batch_size,\n                topk=args.top_k,\n                topp=args.top_p,\n                temperature=args.temperature,\n                greedy=args.greedy,\n            )\n            is_finished = [False for _ in range(micro_batch_size)]\n            for i, generated in enumerate(token_stream):\n                generated_tokens = generated[0]\n                for j in range(micro_batch_size):\n                    if is_finished[j]:\n                        continue\n                    if generated_tokens[j].cpu().numpy()[-1] == tokenizer.eos_token_id or len(\n                            generated_tokens[j]) >= out_seq_length:\n                        is_finished[j] = True\n                        generated_tokens_ = generated_tokens[j].cpu().numpy().tolist()\n                        generated_code = tokenizer.decode_code(generated_tokens_[n_token_prompt:])\n                        generated_code = \"\".join(generated_code)\n                        t1 = time.perf_counter()\n                        print(\"Total generation time:\", t1 - t0, \"# Tokens:\", len(generated_tokens_) - n_token_prompt)\n                        print(f\"{(t1 - t0) / (len(generated_tokens_) - n_token_prompt)}s/token\")\n                        times[out_seq_length].append(t1 - t0)\n                        print(\"================================= Generated code:\")\n                        print(generated_code)\n                        \n                    if all(is_finished):\n                        break\n                    \n    print(times)\n    for out_seq_length in times.keys():\n        print(out_seq_length, np.mean(times[out_seq_length]))\n        \n    print(\"Generation finished.\")\n\n\nif __name__ == \"__main__\":\n    main()\n"
  },
  {
    "path": "tests/test_prompt.txt",
    "content": "code translation\nJava:\npublic class Solution {\n    public static boolean hasCloseElements(int[] nums, int threshold) {\n        for (int i = 0; i < nums.length - 1; i++) {\n            for (int j = i + 1; j < nums.length; j++) {\n                if (Math.abs(nums[i] - nums[j]) < threshold) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    }\n}\nPython:\n"
  },
  {
    "path": "vscode-extension/README.md",
    "content": "![codegeex_logo](../resources/logo/codegeex_logo.png)\n\n🌐 <a href=\"https://github.com/THUDM/CodeGeeX/blob/main/vscode-extension/README_zh.md\" target=\"_blank\">中文</a>\n\n![CodeGeeX vscode extension version](https://img.shields.io/visual-studio-marketplace/v/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX vscode extension last update](https://img.shields.io/visual-studio-marketplace/last-updated/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX download](https://img.shields.io/visual-studio-marketplace/d/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX vscode extension rating](https://img.shields.io/visual-studio-marketplace/stars/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX github stars](https://img.shields.io/github/stars/THUDM/CodeGeeX?style=social)\n\nWe introduce CodeGeeX, a large-scale multilingual code generation model with 13 billion parameters, pretrained on a large code corpus of more than 20 programming languages. With CodeGeeX, we can generate codes by only providing natural language descriptions, complete any code snippet, or translate codes to other programming languages, etc. CodeGeeX also provides customizable features (**Prompt Mode**) to help you configure your own programming assistant. Happy coding!\n\nPlease search \"codegeex\" in VS Code Marketplace to download it for free (minimum version requirement of VS Code is 1.68.0). For more information, please check out our [Homepage](https://models.aminer.cn/codegeex/) and [GitHub repo](https://github.com/THUDM/CodeGeeX).\n\nPlease kindly let us know if you encounter any problem or have any suggestion, via [codegeex@aminer.cn](mailto:codegeex@aminer.cn).\n\n- [Basic Usage](#basic-usage)\n- [Privacy](#privacy)\n- [Guidance](#guidance)\n  - [Stealth mode](#stealth-mode)\n  - [Interactive mode](#interactive-mode)\n  - [Translation mode](#translation-mode)\n  - [Prompt mode (Experimental)](#prompt-mode-experimental)\n\n## Basic Usage\nMake sure vscode version is >= 1.68.0. Install the extension and enable it globally. There are four modes of usage:\n\n-   **Stealth mode**: Keep CodeGeeX activated, it will start generating codes when you stop writing (the icon at the bottom of VSCode starts spinning). When the generated code is shown in gray, just press ``Tab`` to insert the generated codes. \n-   **Interactive mode**: Press ``Ctrl+Enter`` to activate the interactive mode, CodeGeeX will generate ``X`` candidates and show them in the right panel (``X`` can be modified in extension settings ``Candidate Num``). Then, select the best candidate by clicking on it.\n-   **Translation mode**: Select code, and press ``Ctrl+Alt+T`` to activate the translation mode. Then, choose the language of the selected code. You will get the code translated into the same language as your current editor. Click on the ``use code`` button to insert the result. You can also configure in the settings whether to comment out the original code or to replace it.\n-   **Prompt mode (experimental)**: Select codes to be used as input, then press ``Alt/Option+t`` to trigger the prompt mode. It will show a list of pre-defined prompt templates and choose one to generate codes with your input. This mode is fully customizable, you can add your own templates in the extension settings ``Prompt Templates``. \n\n## Privacy\nWe highly respect the privacy of your code. The code is only used as the input of CodeGeeX to assist your programming. At the first time of usage, we will ask if you agree to share the generated code only for research purpose (**disabled** by default).\n\n## Guidance\nPlease see the details and examples for how to use the three modes in CodeGeeX:\n### Stealth mode\nIn this mode, CodeGeeX will start generating codes when you stop writing (the icon at the bottom of VSCode starts spinning). When the generated code is shown in gray, just press ``Tab`` to insert the generated codes. You can also press ``Alt/Option+[`` or ``]`` to change between candidates. If you are not satisfied with the current suggestions, you can also press ``Alt/Option+N`` to get new suggestions. Change the number of candidates in the extension settings ``Candidate Num`` (more candidates will slow down the generation speed). **Note**: The generation always starts at the current position of your cursor, thus if you modify the code before the generation is finished, it will probably cause bugs. We keep working on making the generation faster.\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/bubble_sort_go.gif)\n\n### Interactive mode\nIn this mode, press ``Ctrl+Enter`` to generate codes and visualize the candidates in another panel. Then, click on the best candidate to insert the generated codes to the current position of cursor. \n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/interactive_mode2.gif)\n\n### Translation mode\nIn this mode, paste or tape some code from another language to the current file, select the code, and press ``Ctrl+Alt+T``. Then, choose the language of the selected code. Wait for a few seconds, you will get the code translated into the same language as your current editor. Click on the ``use code`` button to insert the result into the current position of your cursor. You can also configure in the settings whether to comment out the original code or to replace it.\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/translation_cpp_to_python.gif)\n\n### Prompt mode (Experimental)\nIn this mode, you can add extra prompts to the input and implement some cool features, like code explanation, summarization, generation with specific coding style, and more. The principle behind is the few-shot ability of CodeGeeX. When you provide a few examples as extra prompts in the input, CodeGeeX will imitate what are done by these examples and generate codes accordingly. For example, you can give an example that explains each line of code. Select the code you want to explain, then press ``Alt/Option+t`` to trigger the prompt mode. It will show a list of pre-defined prompt templates and choose the ``explanation`` to generate codes with your input. Magically, the codes will be explained line by line.\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/explanation_python.gif)\n\nThe template of the above example looks like the following, which contains ``[Example code]``, ``<INPUT>``, ``[Example code with explanation]`` and ``[Explanation head]``. ``<INPUT>`` is where the selected code will be inserted. ``<INPUT0:1>`` means the first line of your input (which is used here to ensure the same function will be explained). When you use the prompt mode, CodeGeeX will combine your input with the template and use them all as the input to generate codes. \n\n```python\n# language: Python\n\ndef sum_squares(lst):\n    sum = 0\n    for i in range(len(lst)):\n        if i % 3 == 0:\n            lst[i] = lst[i]**2\n        elif i % 4 == 0:\n            lst[i] = lst[i]**3\n        sum += lst[i]\n    return sum\n\n<INPUT>\n\n# Explain the code line by line\ndef sum_squares(lst):\n    # initialize sum\n    sum = 0\n    # loop through the list\n    for i in range(len(lst)):\n        # if the index is a multiple of 3\n        if i % 3 == 0:\n            # square the entry\n            lst[i] = lst[i]**2\n        # if the index is a multiple of 4\n        elif i % 4 == 0:\n            # cube the entry\n            lst[i] = lst[i]**3\n        # add the entry to the sum\n        sum += lst[i]\n    # return the sum\n    return sum\n\n# Explain the code line by line\n<INPUT:0,1>\n```\n\nAnd here is another example for python docstring generation    \n```python\ndef add_binary(a, b):\n    '''\n    Returns the sum of two decimal numbers in binary digits.\n\n    Parameters:\n            a (int): A decimal integer\n            b (int): Another decimal integer\n\n    Returns:\n            binary_sum (str): Binary string of the sum of a and b\n    '''\n    binary_sum = bin(a+b)[2:]\n    return binary_sum\n\n<INPUT>\n```\n\nThe templates are fully customizable, you can add your own templates in the extension settings ``Prompt Templates``. ``key`` is the name that you want to show in the list of templates, ``value`` is the path to the template file (``.txt``, ``.py``, ``.h``, etc). Try this feature and write your own templates, you can make the generated codes follow your coding style, generate with a specific function name, or add a specific comment, etc.\n"
  },
  {
    "path": "vscode-extension/README_zh.md",
    "content": "![codegeex_logo](../resources/logo/codegeex_logo.png)\n\n🌐 <a href=\"https://github.com/THUDM/CodeGeeX/blob/main/vscode-extension/README.md\" target=\"_blank\">English</a>\n\n![CodeGeeX vscode extension version](https://img.shields.io/visual-studio-marketplace/v/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX vscode extension last update](https://img.shields.io/visual-studio-marketplace/last-updated/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX download](https://img.shields.io/visual-studio-marketplace/d/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX vscode extension rating](https://img.shields.io/visual-studio-marketplace/stars/aminer.codegeex?colorA=0B9FE0&colorB=brightgreen)\n![CodeGeeX github stars](https://img.shields.io/github/stars/THUDM/CodeGeeX?style=social)\n\nCodeGeeX是一个具有130亿参数的多编程语言代码生成预训练模型，使用超过二十种编程语言训练得到。基于CodeGeeX开发的插件可以实现通过描述生成代码、补全代码、代码翻译等一系列功能。CodeGeeX同样提供可以定制的**提示模式（Prompt Mode）**，构建专属的编程助手。Happy Coding！\n\nVS Code插件市场搜索\"codegeex\"即可免费使用(需要VS Code版本不低于1.68.0)，更多关于CodeGeeX信息请见我们的[主页](https://models.aminer.cn/codegeex/) and [GitHub仓库](https://github.com/THUDM/CodeGeeX)。\n\n如使用过程中遇到问题或有任何改进意见，欢迎发送邮件到[codegeex@aminer.cn](mailto:codegeex@aminer.cn)反馈！\n\n- [基本用法](#基本用法)\n- [隐私声明](#隐私声明)\n- [使用指南](#使用指南)\n  - [隐匿模式](#隐匿模式)\n  - [交互模式](#交互模式)\n  - [翻译模式](#翻译模式)\n  - [提示模式（实验功能）](#提示模式实验功能)\n\n## 基本用法\n需要保证VS Code版本 >= 1.68.0。安装插件并全局激活CodeGeeX，有以下四种使用模式：\n\n-   **隐匿模式**: 保持CodeGeeX处于激活状态，当您停止输入时，会从当前光标处开始生成（右下角CodeGeeX图标转圈表示正在生成）。 生成完毕之后会以灰色显示，按``Tab``即可插入生成结果。 \n-   **交互模式**: 按``Ctrl+Enter``激活交互模式，CodeGeeX将生成``X``个候选，并显示在右侧窗口中（``X`` 数量可以在设置的``Candidate Num``中修改）。 点击候选代码上方的``use code``即可插入。\n-   **翻译模式**: 选择代码，然后按下``Ctrl+Alt+T``激活翻译模式，CodeGeeX会把该代码翻译成匹配您当前编辑器语言的代码。点击翻译结果上方的``use code``插入。您还可以在设置中选择您希望插入的时候如何处理被翻译的代码，您可以选择注释它们或者覆盖它们。\n-   **提示模式（实验功能）**: 选择需要作为输入的代码，按``Alt/Option+t``触发提示模式，会显示预定义模板列表，选择其中一个模板，即可将代码插入到模板中进行生成。 这个模式高度自定义，可以在设置中 ``Prompt Templates``修改或添加模板内容，为模型加入额外的提示。 \n\n## 隐私声明\n\n我们高度尊重用户代码的隐私，代码仅用来辅助编程。在您第一次使用时，我们会询问您是否同意将生成的代码用于研究用途，帮助CodeGeeX变得更好（该选项默认**关闭**）。\n## 使用指南\n\n以下是CodeGeeX几种模式的详细用法：\n\n### 隐匿模式\n\n在该模式中，CodeGeeX将在您停止输入时，从光标处开始生成（右下角CodeGeeX图标转圈表示正在生成）。生成完毕之后会以灰色显示，按``Tab``即可插入生成结果。 在生成多个候选的情况下，可以使用``Alt/Option+[`` 或 ``]``在几个候选间进行切换。如果你对现有建议不满意，可以使用``Alt/Option+N``去获得新的候选。可以在设置中改变``Candidate Num``（增加个数会导致生成速度相对变慢）。**注意**：生成总是从当前光标位置开始，如果您在生成结束前移动光标位置，可能会导致一些bugs。我们正在努力使生成速度变得更快以提升用户体验。\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/bubble_sort_go.gif)\n\n### 交互模式\n\n在该模式中，按``Ctrl+Enter``激活交互模式，CodeGeeX将生成``X``个候选，并显示在右侧窗口中（``X`` 数量可以在设置的``Candidate Num``中修改）。 点击候选代码上方的``use code``即可插入结果到为当前光标位置。 \n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/interactive_mode2.gif)\n\n### 翻译模式\n\n在当前的语言的文本编辑器中输入或者粘贴其他语言的代码，您用鼠标选择这些代码，然后按下``Ctrl+Alt+T``激活翻译模式，您根据提示选择该代码的语言，然后CodeGeeX会帮您把该代码翻译成匹配您当前编辑器语言的代码。点击翻译结果上方的``use code``即可插入。您还可以在设置中选择您希望插入的时候如何处理被翻译的代码，您可以选择注释它们或者覆盖它们。\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/translation_cpp_to_python.gif)\n\n### 提示模式（实验功能）\n\n在该模式中，您可以在输入中添加额外的提示来实现一些有趣的功能，包括并不限于代码解释、概括、以特定风格生成等。该模式的原理是利用了CodeGeeX强大的少样本生成能力。当您在输入中提供一些例子时，CodeGeeX会模仿这些例子并实现相应的功能。比如，您可以自定义模板中提供一段逐行解释代码的例子。选择您想要解释的代码，按``Alt/Option+t``触发提示模式，选择您写好的模板（如``explanation``），CodeGeeX就会解释您输入的代码。以下我们会详细介绍如何制作模板。\n\n![image](https://lfs.aminer.cn/misc/wangshan/pretrain/codegeex/explanation_python.gif)\n\n上述例子中的模板如下图所示，由``[示例代码]``, ``<INPUT>``, ``[带解释的示例代码]`` and ``[输出函数头]`` 。``<INPUT>``表示您选中的代码将会插入的位置。 ``<INPUT0:1>`` 这一句用来保证模型解释的是同一个函数。当使用提示模式时，CodeGeeX会将您选择的代码（插入到<INPUT>部分）和模板代码相结合，一起作为模型的输入。 \n\n```python\n# language: Python\n\ndef sum_squares(lst):\n    sum = 0\n    for i in range(len(lst)):\n        if i % 3 == 0:\n            lst[i] = lst[i]**2\n        elif i % 4 == 0:\n            lst[i] = lst[i]**3\n        sum += lst[i]\n    return sum\n\n<INPUT>\n\n# Explain the code line by line\ndef sum_squares(lst):\n    # initialize sum\n    sum = 0\n    # loop through the list\n    for i in range(len(lst)):\n        # if the index is a multiple of 3\n        if i % 3 == 0:\n            # square the entry\n            lst[i] = lst[i]**2\n        # if the index is a multiple of 4\n        elif i % 4 == 0:\n            # cube the entry\n            lst[i] = lst[i]**3\n        # add the entry to the sum\n        sum += lst[i]\n    # return the sum\n    return sum\n\n# Explain the code line by line\n<INPUT:0,1>\n```\n\n以下是另一个Python文档字符串生成的例子，CodeGeeX在您写新函数时会模仿该注释的格式：\n```python\ndef add_binary(a, b):\n    '''\n    Returns the sum of two decimal numbers in binary digits.\n\n    Parameters:\n            a (int): A decimal integer\n            b (int): Another decimal integer\n\n    Returns:\n            binary_sum (str): Binary string of the sum of a and b\n    '''\n    binary_sum = bin(a+b)[2:]\n    return binary_sum\n\n<INPUT>\n```\n\n模板文件是高度自定义化的，您可以将自定义模板添加到插件设置中的``Prompt Templates``中。 ``key``表示模板的名字， ``value``是模板文件的路径（可以是您电脑上的任一路径，``.txt``, ``.py``, ``.h``, 等格式文件均可）。通过该功能，您可以让CodeGeeX生成具有特定风格或功能的代码，快尝试定义自己的专属模板吧！"
  }
]